我们已经理解了什么是Chef,接下来我们将用一个用例来解释Chef如何实现配置管理。
Gannett是一家美国媒体控股上市公司。按每日总发行量计算,它是美国最大的报纸出版商。
问题
Gannett的传统部署工作流程是手工部署,在这个过程中遇到了很多问题:
- 维护准确的、可重复的构建是困难的。
- 有许多构建失败,测试经常在错误的环境中运行。
- 部署和配置时间可能从几天到几周不等。
- 运维团队无法访问云或开发环境。
- 每个小组都使用自己的工具集,无法控制费用,无法维护信息安全。
解决方案
Gannett公司准备改变。开发人员希望快速部署他们的应用程序。运营需要一个稳定的基础设施,在那里他们可以以可重复的方式构建和部署。财务部门想知道应用程序的真实成本。信息安全部门希望检查和跟踪公司使用的软件栈。
Gannett认为云服务提供了很多优势。开发人员可以访问标准化的资源。由于云的按需计算模型,处理峰值流量更容易。
Chef允许你根据需要动态地添加和减少基础设施,以匹配用户流量变化。它支持更频繁地部署和更新服务,停机风险很小。有了Chef,可以利用云提供的所有灵活性,节约成本。
让我们看一下Gannett公司使用chef完成的工作:
- Gannett公司开始为开发环境构建VPC(虚拟私有云),以模拟生产环境。他们已经使用的工具没有一个是合适的。但是他们发现Chef可以很好地处理云以及Linux和Windows环境。他们使用Chef来构建一个与生产环境完美匹配的开发环境。
- 要将应用程序迁移到VPC,必须使用Chef部署。
- chef内置了信息安全功能。
效果
Gannett公司使用chef完成的这些工作,达到了以下效果:
- Gannett公司的部署变得更加迅速和可靠。应用程序的配置和部署,曾经需要几周的时间,而使用Chef之后只需要几分钟。
- 所有新的应用程序都与Chef一起部署在云上。这些应用程序以与部署到生产环境相同的方式部署到所有环境。此外,在每个环境中都进行了测试,因此部署是可靠的。
- 所有基础结构都被视为代码,这极大地增加了变更的透明性。开发、业务、安全和财务各部门都从中受益。