学习 Chef(一) - lifuzu/cafe GitHub Wiki

chef1

什么是 Chef?

Chef 是一个开源的系统集成框架,可以用来自动化部署服务器,特别是云端部署的虚拟机。做过系统配置管理的人可能会用过puppet,或者较早的cfengine。对!Chef就是这一类的配置工具。和puppet相同,Chef的宿主语言也是Ruby。

在Chef的主页上,开发人员宣称“无论多么复杂的商业环境,Chef都可以很容易地在整个基础架构上部署服务器,伸缩应用环境!” 因为Chef结合了配置管理的基本元素和Ruby强大的面向服务架构设计!

值得一提的是Chef的开发者是Amazon的灾难处理大师Jesse Robbins,他现在本人担任Opscode(Chef的母公司)的首席社区官。

Chef是怎么工作的呢?

你需要写一些“清单”,来描述你想让服务器的一部分(例如 Apache,MySQL 或者Hadoop)怎么样配置。这些清单描述了一系列的资源,这些资源应该处于一种特定的环境,例如要安装的安装包,正在运行的服务,或者要写的一些文件。Chef 确保每个资源被正确的配置,提供一个安全,灵活,易复用的机制,来保证所有的服务都准确地运行在你想让它们运行的状态。

为什么Chef这样工作?

大多数基础设施配置解决方案都是强迫你适应他们定义的“统一”方法,即使每一个基础架构都是不同的。这是不对的。这也就是Chef为什么选择直接基于Ruby之上的确切原因。Ruby是一种动态的、开源的编程语言,和云平台,例如Rackspace和EC2结合的很好,也可以和你的现有的环境无缝结合。

Chef的模块化意味着什么?

Chef可以帮你创建QA环境的克隆,预生产环境,互相阅览环境等等。一旦完成自动化,你就有了一个你自己基础架构的蓝图,你可以创建,或者重新创建环境,自动化的,几分钟,几个小时搞定,不需要象以前一样,几个星期或者几个月!而且,Chef还会提供无穷无尽的灵活性,你可以很方便、没有影响地调整优化。商业就是“一系列的管理灾难”的科学,Chef可以帮你更快、更准确、更智能处理问题!

当然,每个人的问题都不一样,你的问题,应该有一个你的解决方案。因为没有人比你更了解你的问题!Chef可以帮你自动化你现在的流程。

未完待续