Chef vs Puppet

Puppet

  • 历史 : 有一些
  • 用户 : 多,有名的公司也在用
  • 开发的活跃度 : 中等
  • 文档 : 多
  • 设定文件 : 用专用的文法书写(外部DSL),不需要懂Ruby语言。
  • 设定的构成 : 有点难懂
  • 依存关系的处理 : 运行次序是根据状况由系统端决定的。
  • 必要的中间软件 : 没有
  • 安装 : 简单,用gem的安装就可以
  • 和其他系统的协作 : 感觉基本上没有

Chef

  • 历史 : 还年轻
  • 用户 : 37signals(BaseCampe)/ IBM /Facebook/Youtube / Twitter / Linkedin 等
  • 开发的活跃度 : 活跃(感觉正在旺季
  • 文档 : 也足够了
  • 设定文件 : 用Ruby书写(内部DSL)
  • 设定的构成 : 相对容易理解,命名等很合适
  • 依存关系的处理 : 好像Makefile 基本上是书写顺序。相比Puppet更具脚本风格
  • 必要的中间软件 : 服务端需要有CouchDB、RabbitMQ
  • 安装 : 服务端容易死。没有加入包中的话比较困难。客户端的话简单,只要gem就可以
  • 和其他系统的协作 : 因为使用RESTful的服务API,用JSON可以取值,所以好像能做许多事

现在puppet社区也比较火,大多是运维出身的IT人员在使用, 而倾向于Chef的人,更偏向于开发人员多一些,像我本人,就倾向于Chef。