我将开始一个新项目,该项目将部分需要部署大约三个不同类的许多相同节点:
- 数据节点,它将运行MongoDB的分片实例。
- 应用程序节点,它将运行Ruby on Rails应用程序和较旧的ASP.NET MVC应用程序的实例。
- 处理节点,它将运行应用程序节点请求的作业。
所有节点将在Ubuntu 10.04实例上运行,尽管它们将安装不同的软件包。
尽管我不认为自己是专家,但我对以前项目中的Chef有所了解。为了尽职调查,我一直在研究其他可能性。我们内部有很多人是Puppet的长期用户,所以他们鼓励我看看。
我在评估这两种选择时遇到了麻烦。Chef和Puppet共享许多相同的领域术语- 包,资源,属性等,它们有着共同的历史,源于对同一问题采用不同的方法。因此从某种意义上说它们非常相似。但是,像本文一样,我发现的许多比较信息都有些过时。
如果您今天开始这个项目,您会问自己哪些问题来决定应该使用Chef还是Puppet进行配置管理?(注:我不想要回答这个问题:“我应该用厨师或木偶?”)