在软件开发和 CI/CD 的上下文中,配置管理是指记录特定基础架构设置的详细信息,以便您可以确定更改何时引入。
CI/CD 管道包括多个用于在发布前测试和暂存软件的环境。 为了使管道和测试有效运行,预生产环境需要尽可能地复制生产并在测试运行之间保持一致。
为此,您可以设置一系列物理计算机或虚拟机来托管这些环境。 然而,随着时间的推移,需要应用补丁、安装新软件包或修改网络设置来排除特定问题,这些服务器开始以不同的方式偏离原始配置。
结果是一系列的 Snowflake 服务器。 更糟糕的是,假设每个更改的详细信息都没有记录下来。 在这种情况下,当服务器出现故障或者需要复制以扩大测试操作的规模时,重新创建相同的环境变得更加困难。 配置管理试图解决这一问题。
在您的版本控制系统中存储配置详细信息让任何更改一目了然,这样在出现问题时,可以更轻松地将它们撤消并将相同的更改应用于其他计算机,从而保持一致性。
如果这些配置详细信息以 YAML 或 XML 文件等结构化格式存储,那么您可以进一步进行配置管理并自动执行服务器配置。
将更改提交到版本控制后,它们会自动应用于相关的环境。
采用基础架构即代码方法可以自动拆除和重新创建虚拟机,这样您就可以设置 CI/CD 管道来刷新部署之间的环境。 这样便能够处理大量计算机,并且允许您在测试需求增加时轻松复制环境。
如果您使用容器来部署软件,则某些配置元素(例如软件依赖项)将移动至容器镜像。 但是,仍然需要配置托管容器的服务器。 将这些环境的创建编写为代码并实现自动化仍然会带来许多好处。