赵成的运维体系管理课
赵成
《进化: 运维技术变革与实践探索》作者
37829 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
开篇词 (1讲)
效率和稳定性最佳实践 (20讲)
赵成的运维体系管理课
15
15
1.0x
00:00/00:00
登录|注册

13 | 持续交付的第一关键点:配置管理

不同客户的独立运行
线上多机房环境
软件交付过程中的不同环境
分类
环境相关
不依赖周边环境
运行时配置
应用配置
代码配置
应用运行时与基础组件的关联关系
应用运行配置
应用部署配置
应用构建时配置
业务/技术开关
运行时参数
业务逻辑相关
版本控制、依赖管理、软件配置、环境配置
配置管理是持续交付的基础
环境配置管理
区别
应用配置
代码配置
实践经验
工具:Ant, Maven, Gradle
Java开发依赖
实践经验
Git
SVN
总结
软件配置
依赖管理
版本控制
持续交付的第一关键点:配置管理

该思维导图由 AI 生成,仅供参考

今天我们来看持续交付的第一个关键点:配置管理。按照持续交付的理念,这里所说的配置管理范围会更广,主要有以下几个部分。
版本控制
依赖配置
软件配置
环境配置
讲持续交付,一上来就先讲配置管理,主要还是想强调:配置管理是基础,是关键。我们后面将要讲的每一个持续交付环节,都对配置管理有很强的依赖。这个基础工作做不好,也就谈不上的持续交付的成功。勿在浮沙筑高台,我们做工具平台或系统,一定要重视基础的建设
同时,这里还有一个前提,就是一定要做到代码和配置的分离。不要让配置写死在代码里,需要依靠严格的规范和约束。同时,对于那些因历史原因遗留在代码中的配置,要多花些时间和精力把配置剥离出来,做这项工作没有什么好的方法或经验,只能多上心,多投入些精力。
配置管理中,对于版本控制和依赖配置目前都有比较成熟的工具体系支持,也有丰富的实践经验供我们参考学习,下面我会做一个简要的介绍。
对于软件配置和环境配置管理,这两项配置跟我们自身的业务软件特性强相关,是整个持续交付过程的关键,我会结合我们自身的实践经验进行重点介绍和分享。

版本控制

版本控制的主要作用是保证团队在交付软件的过程中能够高效协作,版本控制提供了一种保障机制。具体来说,就是团队在协作开发代码的情况下,记录下代码的每一次变更情况。
说到这里,你是不是想到了 SVN 和 Git 这样的版本管理工具?对,其实我们每天都在接触,每天都在不停地做这个事情,所以目前看来这是一件很平常的事情。
关于这一部分我在后面的文章里会介绍关于提交阶段的实践经验。这里我们只要知道,版本控制及其工具是必不可少的,因为这是开发团队协作最基础的工具。现在应该很少有团队不采用版本控制的管理机制吧?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

持续交付的关键点在于配置管理,包括版本控制、依赖配置、软件配置和环境配置。配置管理是持续交付成功的基础,对每个环节都有很强的依赖。在配置管理中,代码和配置的分离是前提,需要依靠严格的规范和约束。版本控制和依赖管理工具提供了仓库管理、依赖管理和构建打包等能力。Maven作为主力构建工具的实践经验也得到了分享。此外,文章还详细介绍了软件配置的两类:代码配置和应用配置,以及它们在持续交付过程中的重要性和区别。环境配置管理也被强调为持续交付过程中的重中之重。整体而言,本文为读者提供了对持续交付配置管理的概览,强调了配置管理在持续交付中的重要性和实践经验的分享。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《赵成的运维体系管理课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • 喜剧。
    看赵老师的文章学到很多,但是还是有个小期望,希望后续能出一份运维体系的思维拓扑图。这样我们的思路会更清晰。

    作者回复: 这个可以有,抽空搞一个

    2018-01-29
    2
    10
  • 付盼星
    看到这里下一步要干的事情就是把代码配置和环境配置分离,以前代码配置和环境配置都下放给开发了,现在看来把环境配置分给运维控制更合适,比如docker启动时的参数设置,尤其是jvm

    作者回复: 反过来会不会更好,开发要能够自助维护,尽量不依赖运维的人,运维可以制定标准和规范

    2018-03-06
    5
  • 技术修行者
    “二方包”是什么意思?听说过“三方包”。 区分代码配置和应用配置的区别很重要,两者混在一起的话,到了后面维护就成了噩梦了。

    作者回复: 二方包是指不同开发团队提供的jdk或sdk这样的包,比如交易会使用到商品团队提供的包,而三方包就是来自于公司之外的包了,比如各种开源组件的包

    2020-06-02
    3
  • haormj
    代码配置和环境配置混到一起确实存在问题,不同机房的同一个应用配置都不同,而且对于注册中心,数据库,缓存的依赖都直接作为代码配置,所以当修改应用的一个参数,需要修改好多次。

    作者回复: 还是要区分开,因为管理方式会有不同

    2018-01-27
    2
    2
  • haormj
    文章写的太好了,干货~就如作者说的,版本管理已经习惯了,依赖管理确实很关键,否则没办法对代码进行进行构建,不过我们这里都是编译成二进制,之后也可以直接构建为镜像,对于代码配置和环境配置,现在我们都是没有区分,都作为代码配置了,期待作者下一篇文章。

    作者回复: 对你有所帮助,很开心😃

    2018-01-27
    2
  • 技术修行者
    按照我自己的理解,对代码配置和应用配置做一个分类。 代码配置: - 数据库连接信息 - 数据库连接池配置信息 - 消息队列 - 服务发现 - 熔断配置 - 日志级别 - 缓存配置 - 功能开关 - 端口配置 应用配置: - JVM配置 - K8s资源配置(内存、CPU、GPU) - 代码路径 很粗略的说,以Java为例,能放到application.properties中的是代码配置,不能放到application.properties中的是应用配置。 不知道上面的理解是不是准确。
    2020-06-02
    4
  • Benjamin.wang
    收获很多知识,感谢赵总! 1.某项目,客户考察供应商的非功能特性时,就询问我们是否支持“在线修改日志级别”,这是属于“代码配置”。 2.私有化部署的平台软件,我们需要客户提供CentOS、Redhat的某几个版本,这是属于“应用配置” 3.第三方支付接口出现异常时(比如银联),业务上可能会将该接口下线,这是属于“代码配置” 4.依赖管理,本地源Maven和Cache/CDN原理类似,就近获取,没有就回源
    2021-11-07
  • Zane
    之前工作时频繁修改配置,隐约发觉应该区分环境的配置和业务逻辑的配置。感谢老师这篇文章提供了理论基础,坚定了我的想法。 请问老师有没有相关的课外资料供参考?想做一些扩展阅读,但没有搜索到相关信息。
    2019-01-08
  • 马天奇
    将配置从运行代码中剥离
    2018-06-23
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部