《持续交付》(第二章)——配置管理

这一章作者详细的讲解了应该怎样管理你的配置信息和在哪些情况下对你的配置信息进行修改以及怎样的配置信息是最好的状态。

配置管理初探

配置管理是指一个过程,通过该过程,所有与项目相关的产物,以及它们之间的关系都被唯一定义、修改、存储和检索。
配置管理决策将决定如何管理项目中发生的一切变化。因此,它记录了你的系统以及应用程序的演进过程。另外,它也是对团队成员协作方式的管理。

使用版本控制

版本控制系统是保存文件对歌版本的一种机制。
版本控制的目的有两个。首先,它要保留每个文件的所有版本的历史信息,并使之易于查找。其次,它让分布式团队可以愉快的工作。

1.对所有内容进行版本控制
版本控制不仅仅针对源代码,每个与所开发的软件相关的产物都应被置于版本控制之下。
为了重新大件测试环境和生产环境,将所有必需的信息保存起来也是很重要的。

2.频繁提交代码到主干
首先,只有频繁提交代码,你才能享受版本控制所带来的众多好处,比如能够轻松的回滚到最近某个无错误的版本。其次,一旦将变更提交到版本控制中,那么团队的所有人都能看到这些变更,也能签出它。

3.使用意义明显的提交注释
当构建失败后,你知道是谁破坏了构建,以及他为什么破坏了构建。
我们喜欢的注释风格是这样的:第一段是简短的总结性描述,接下来的几段描述更多的细节。

依赖管理

依赖管理最常见的就是使用的第三方库文件,以及该软件需要用到的正由其他团队开发的模块或组件间的关系。库一般是以二进制文件的形式部署,不能被更改。

软件配置管理

配置信息与产品代码及其数据共同组成了应用程序。
我们应该以对待代码的方式来对待系统配置,使其在应用的整个生命周期都可以获得正确的管理和测试。
我们要对配置信息进行妥善的管理,因为配置信息的错误一般不便于被检查出来,很多错误只有在运行的时候才会显示出来。
将哪些特定于测试环境或生产环境的实际配置信息存放于与源代码分离的单独代码库中是非常有必要的。因为这些信息与源代码的变更频率是不同的。

环境管理

每个应用程序都依赖于硬件、软件、基础设施以及外部系统才能正常工作。我们把这些内容称为应用程序的环境。
环境管理的关键在于通过一个全自动过程来创建环境,使创建全新的环境总是要比修复已受损的旧环境容易得多。
任何变更在上线之前都必须经过测试,因而要将其编成脚本,放在版本控制系统中。

我的收获&疑问

收获

  • 将代码频繁的提交到主干上,使每次做的合并的工作量较小。
  • 在完成一个小的功能或是重购后,首先进行测试,然后提交一次代码。
  • 注释语句的详细描述是很有必要的。
  • 应尽量减少环境配置信息
  • 环境配置所需要的信息

疑问

  • 软件的配置信息都包括什么?
  • 什么样的注释是最好的?
  • 外部依赖文件库因该放在版本控制库中吗?
  • 软件配置应该在什么时候进行?构建、部署、测试还是发布?
  • 冒烟测试是什么?

你可能感兴趣的:(《持续交付》(第二章)——配置管理)