'Chef' is an open-source (and enterprise) automation platform created by Opscode that configures and manages your infrastructure (local or cloud). It is generally used to speed up application deployment, create a continuous delivery pipeline, and monitor infrastructure. By converting infrastructure to code, Chef makes infrastructure configuration versionable, testable, and repeatable.
This competency area includes exploring and working with the Ohai service, using roles to configure a group of nodes, understanding Multi-Tenancy, exploring the ChefSpec framework, using Data bags, usage of Chef for Continuous Deployment, among others.
- The function of Ohai service - Exploring and working with the Ohai service, which is responsible for checking the current system state on a Chef client.
- Roles - Roles are a way to group nodes in clusters based on some logic. It is often used when we need to configure only a particular group in a cluster. The ability to be setting roles for a node(s) and using roles to configure a group of nodes in the cluster[creation and application) are included in this competency.
- Understanding Multi-Tenancy - Understanding of the chef-server supporting multi-tenancy, that is, through the usage of roles and organizations, a chef server can serve many organizations with a single server.
- Exploring ChefSpec - Chef provides ChefSpec a framework that enables Test Driven Development. A user can define ChefSpecs and test any new Recipes before pushing them to the server.
- Using Data bags - Data Bags are just an arbitrary collection of data that one can use in cookbooks in Chef. They are often used in conjunction with templates to allow for dynamically configuring the cluster.
- Continuous deployment - Continuous deployment is a practice of automating build, testing, and deployment of changes made to a software application. The ability to draw out a pipeline and using Chef for Continuous Deployment using all the features effectively noted in this skill, are included in this competency.