我可以使用一个厨师服务器实例管理多少个节点?

时间:2012-10-16 23:23:35

标签: chef

我正在配置一个厨师服务器,并期望通过这个服务器管理超过500个节点 - 可能接近1000个。这是否可以让我有效地工作在EC2上说一个超大的实例?我应该考虑在不同的服务器上运行rabbitmq,solr等吗?是否可以在分布式设置中运行厨师服务器?

2 个答案:

答案 0 :(得分:10)

更新

Chef 11于今年早些时候发布。除了发布之外,还有一些针对Opscode与可扩展性测试合作的公司的新闻稿/案例研究。值得注意的是,Facebook和Cycle Computing通过一台Chef服务器管理了10,000多个节点集群。 Chef服务器的规格适中,但未公开。更多信息请点击此处:

需要注意的是,这适用于Open Source Chef Server和Enterprise Chef。 Opscode的托管企业厨师服务本质上是一个巨大的企业厨师实例,因为它基本上运行"相同"代码库。

(不是正好相同,因为Opscode具有运行允许多个客户付费和使用的可公开访问的SaaS平台所需的自定义和附加服务。)

Chef Wiki上的这个页面有很多很好的链接和信息:

需要考虑的一些要点:

  1. 重要的指标不是节点的数量,而是节点的数量会随着时间的推移而收敛。例如,每天运行Chef一次的500个节点在服务器上的负载低于每10分钟运行Chef的50个节点。当然,每10分钟(甚至30分钟,一个常见的间隔时间)运行Chef的500个节点对系统来说是很大的负担。

  2. Chef Server被设计为分布式系统,因此组件可以在不同的节点上运行。这正是Opscode Hosted ChefOpscode Private Chef的工作原理 - 各种服务在不同的系统上运行以分配负载。如果您经常期望很多节点运行Chef,那么绝对应该在不同的系统上运行这些服务。维基上的Chef Configuration Settings页面描述了服务的配置选项。

  3. 高度可用和可扩展性不是一回事,需要不同的方法。这些之间的差异完全超出了Chef的范围。 " Scalability and High Availability"不过,页面应该会有所帮助。

  4. Chef 10.x或0.10.x版本使用基于Ruby的API服务,CouchDB作为后端数据存储。在Hosted Chef的规模上,Opscode发现了可伸缩性的问题,这在Seth Falcon's talk at ChefConf 2012中有所描述。虽然这个讨论主要是关于客户数据的真实迁移,但有关CouchDB可扩展性的几点意见。此外,Chef 11 will be migrated to an Erlang-based API service和SQL(MySQL PostgreSQL)作为后端数据存储。

  5. 更新如前所述,开源Chef服务器的Chef 11版本需要在Erlang中完全重写服务器API服务。通过案例研究和谈话,本答案顶部的信息可以更深入地了解这一切的含义。

答案 1 :(得分:1)

@jtimberman总结得很好,你可以通过将Chef服务分成多个单独的节点并为其投入更多资源来扩展到某一点。

通过数据点,我看到大约700个客户端由单个(开源)Chef 10.x服务器管理,solr和couchdb位于不同的节点上。