Chef infra 使用一个chef server实例可以管理多少个节点?

Chef infra 使用一个chef server实例可以管理多少个节点?,chef-infra,Chef Infra,我正在配置一个chef服务器,希望通过该服务器管理500多个节点,可能接近1000个。这是我可以期望在EC2上的一个超大实例上有效工作的东西吗?我应该考虑在不同的服务器上运行RabBMQ、SOLR等吗?是否可以在分布式设置中运行chef server本身?更新 Chef 11于今年早些时候发布。与此同时发布的还有Opscode为进行可伸缩性测试而与之合作的几家公司的新闻稿/案例研究。值得注意的是,Facebook和Cycle Computing通过一台Chef服务器管理了10000多个节点集群。

我正在配置一个chef服务器,希望通过该服务器管理500多个节点,可能接近1000个。这是我可以期望在EC2上的一个超大实例上有效工作的东西吗?我应该考虑在不同的服务器上运行RabBMQ、SOLR等吗?是否可以在分布式设置中运行chef server本身?

更新

Chef 11于今年早些时候发布。与此同时发布的还有Opscode为进行可伸缩性测试而与之合作的几家公司的新闻稿/案例研究。值得注意的是,Facebook和Cycle Computing通过一台Chef服务器管理了10000多个节点集群。Chef服务器的规格是适中的,但没有透露。有关更多信息,请访问:

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

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

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

需要考虑的几点:

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

  • Chef服务器被设计为一个分布式系统,因此组件可以在单独的节点上运行。这正是服务和工作的方式——各种服务在不同的系统上运行,以分配负载。如果您希望有很多节点经常运行Chef,那么绝对应该在单独的系统上运行服务。wiki上的页面描述了服务的配置选项

  • 高可用性和可扩展性不是一回事,需要不同的方法。两者之间的差异完全超出了厨师的范围。不过,“”页面应该会有所帮助

  • Chef 10.x或0.10.x版本使用基于Ruby的API服务,CouchDB作为后端数据存储。在Hosted Chef的规模上,Opscode发现了可伸缩性问题,如中所述。虽然这篇演讲主要是关于客户数据的实时迁移,但有几点是关于wrt CouchDB的可伸缩性的。另外,还有SQL(MySQL或PostgreSQL)作为后端数据存储

  • 如前所述,更新开源Chef服务器的Chef 11版本需要在Erlang中完全重写服务器API服务。本答案顶部的信息通过案例研究和谈话,提供了更多关于这一切意味着什么的见解


  • @jtimberman总结得非常好,通过将Chef服务拆分到多个单独的节点上并向其投入更多资源,您确实可以将事情扩展到某一点


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

    Facebook最近发布了有关其Chef服务器设置的详细信息: