系统管理员通常要执行重复的任务,如安装服务器、配置这些服务器等。当然可以通过编写脚本来使这些任务自动化,但是当有大量服务器时,这是一项非常繁琐的工作。
为了解决这个问题,引入了配置管理。配置管理是系统地处理配置变更的实践,确保系统的当前设计和构建状态是已知的、良好的和可信的,并且不依赖于开发团队的隐性知识。配置管理对于系统状态有准确的历史记录,是可追溯的。
配置管理解决了以下问题:
- 当需求发生变化时,确定要更改的组件。
- 根据配置重新部署组件。
- 回滚到组件的以前版本。
让我们举个例子来加深理解。
例如,有一个证券交易所,交易系统的一个软件“故障”导致股票交易中断近90分钟,造成了数百万美元的损失。故障原因是安装了有问题的新软件,该交易所的20个交易终端中,有8个安装了该新软件,所以有必要重新使用旧版软件,这时就需要使用配置管理进行回滚操作。
由于有了正确的配置管理流程,交易所在90分钟内就从这种情况中恢复过来,速度相当快。如果这个问题继续下去,损失会更严重。
配置管理工作可以看作是DevOps工作的主干,它我们可以以最安全、最可靠的方式更频繁地发布软件。