Opscode released Chef 11 early this month with enhancements to its scalability to meet the demands of hyperscale web operations. Opscode rewrote the entire server core API in Erlang and at the same time kept it backward compatible. Opscode renamed the core server API "Erchef" to complement the rewrite in Erlang. They have also separated the server source code from the client and have decomposed the server into multiple component projects, each written in Erlang.
Seth Falcon wrote a follow-up blog post where he provided additional background on Chef 11 including:
The features of Erlang which make it a good fit for high volume web services are its share-nothing memory and process model, multi-core scalability, and the soft-realtime performance resulting from Erlang’s per-process garbage collection model.
Chef 11 has an order of magnitude reduction in memory footprint compared to the Ruby version in Chef 10.
Chef 11 can manage up to 10,000 nodes from a single server, which is a factor of four more than the Chef 10 server could handle.
- Knife command line tool now includes knife-essentials.
- Knife ssh returns an exit code based on remote command execution.
- Shef has been renamed "chef-shell".
- A new tool "chef-apply" is included for running single cookbooks.