配置管理的四个要点

配置管理是基础,是关键。做工具平台或系统,一定要重视基础的建设。一定要做到代码和配置的分离。不要让配置写死在代码里,需要依靠严格的规范和约束。同时,对于那些因历史原因遗留在代码中的配置,要多花些时间和精力把配置剥离出来,做这项工作没有什么好的方法或经验,只能多上心,多投入些精力。

1、版本控制

版本控制的主要作用是保证团队在交付软件的过程中能够高效协作,版本控制提供了一种保障机制。具体来说,就是团队在协作开发代码的情况下,记录下代码的每一次变更情况。版本控制及其工具是必不可少的,因为这是开发团队协作最基础的工具。

2、依赖管理

以 Java 为例,我们使用 Java 进行开发,必然会依赖各种第三方的开源软件包。同时,内部还会有不同组件的二方包。这些三方包和二方包就是一个应用编译和运行时所依赖的部分。

对于 Java 来说,我们熟知的依赖管理工具有 Ant、Maven 和 Gradle。当然这些工具不仅仅提供依赖管理这样单一的能力,一般都具备以下几个能力:二方包、三方包的仓库(Repository)管理;依赖管理;构建打包。

3、软件配置

1.代码配置

代码配置是跟代码运行时的业务逻辑相关的。比如应用的服务接口、并发线程数、超时时间等这些运行时参数;还有类似于业务或技术上的开关,比如商品评论是否开放、优惠时间段设置等等。

2.应用配置

应用配置就是应用这个对象的属性和关系信息。把应用配置放到持续交付这个场景中进行分析,对于这个配置可以细分为:

  • 应用构建时配置,比如它的编程语言、Git 地址以及构建方式等;
  • 应用的部署配置,源代码目录、应用日志目录、Web 日志目录、临时目录、脚本目录等;
  • 应用的运行配置,应用启停、服务上下线方式、健康监测方式等;
  • 应用运行时与基础组件的关联关系,比如其依赖的 DB、缓存、消息以及存储的 IP 地址、域名、端口、用户名或 Token 等。

从上面这种分类方式中,可以体会到,对于配置的分类,也是基于应用生命周期的不同阶段进行分解和分析的。所以,标准化的过程也是一个持续迭代的过程。不同的场景下,一个应用可能会具备不同的属性。这个时候,如果我们无法在一开始就把这些属性梳理得清清楚楚,具备标准化的意识和思路就显得更为重要。这样,当我们遇到新场景的时候,随时可以对它做标准化分析和建模。

3. 代码配置和应用配置的区别

从区别上讲,我们可以认为代码配置是跟业务或代码逻辑相关的,动一下就会改变系统执行状态,是运行时的配置,但不依赖周边环境。而应用配置,是跟业务和代码逻辑无关的,不管你怎么动,业务逻辑是不会改变的,但是它跟环境相关。

4、环境配置

环境配置在持续交付过程中要关注的重中之重,也是最为复杂的一部分。很多的团队在做多环境发布和管理的时候,遇到最头疼的问题就是环境配置管理。

此文章为3月Day21 学习笔记,内容来源于极客时间《赵成的运维体系管理课》,推荐该课程。

猜你喜欢

转载自blog.csdn.net/key_3_feng/article/details/129699132