Chef is an open-source systems management and cloud infrastructure automation framework created by Opscode.
DevOps can use Chef to deploy and manage servers and applications in-house and in the cloud. Cookbooks and recipes tell Chef how each node in an organization should be configured. Opscode recipes describe the state a resource should be in at any given time. Chef stores these files in cookbooks along with other necessary configuration files. The chef client, which is installed on every node, does the actual configuration. Opscode cookbooks are available on the Chef site's wiki-style community pages and on GitHub.
Opscode did a complete overhaul of Chef's underlying code for Chef version 11, swapping out Apache CouchDB for the PostgreSQL relational database and the Ruby programming language for Erlang. The result is beefed-up scalability in which a single Chef server can be used to configure more than 10,000 nodes.
Chef is available in three different versions:
- Private chef - an enterprise version which supports multi-tenancy and runs in-house behind a firewall.
- Hosted Chef - a SaaS managed cloud service hosted by Opscode.
- open source Chef - a free download that requires that each instance of Chef to be configured and managed locally.