DevOps training from QA

Introducing Chef - an innovative DevOps tool

This is the first in a series of blogs looking at DevOps and its key tools. This blog focuses on
Chef - a tool that streamlines the task of configuring and maintaining a company's servers.


QA | 2 September 2015

Chef training course

Helping you to adopt DevOps

In the DevOps model, developers and system operators work closely together throughout the software development process to deploy software more frequently and more reliably. Many new third party and proprietary tools have been developed to support automation, measurement and sharing.

Chef - IT automation for speed and awesomeness

Chef is a configuration management tool for dealing with machine setup on physical servers, virtual machines and in the cloud.

But what does that really mean?

Configuration management is all about trying to ensure that the files and software you are expecting to be on a machine are present, configured correctly, and working as intended. When you have only a single machine this is fairly simple. When you have five or ten servers, it is still possible to do this manually, but it may take all day. However, when your infrastructure scales up into the thousands we need a better way of doing things.

Infrastructure as code

Chef helps solve this problem by treating infrastructure as code. Rather than manually changing anything, the machine setup is described in a chef recipe. Collections of recipes are stored in a cookbook. One cookbook should relate to a single task, but can have a number of different server configurations involved (for example a web application with a database, will have two recipes, one for each part, stored together in a cookbook).

There is a chef server which stores each of these cookbooks and as a new chef client node checks in with the server, recipes are sent to tell the node how to configure itself. The client will then check in every now and again to make sure that no changes have occurred, and nothing needs to change. If it does, then the client deals with it. Patches and updates can be rolled out over your entire infrastructure by changing the recipe. No need to interact with each machine individually!

Chef configuration

Chef Configuration

Figure 1 - Chef Configuration from https://www.chef.io/solutions/cloud-management/





Recipes and cookbooks are the heart of the configuration management. They are written using the ruby programming language, however, the domain specific language used by chef is designed to be able to be understood by everyone. As the configuration is just code it can be tested and it can be version controlled. This means that there is less downtime, more reliable services and less stressed people on both the dev and ops sides.

Chef Configuration

Chef Configuration

Figure 2: Chef config files to install apache and add a hello world html page





So why is it awesome?

You want more? How about Chef Analytics - the ability to visualise everything going on in real time. It will check if something is going wrong and notify you before the problem becomes noticeable to your clients.

The Chef development kit allows you to write and manage your chef infrastructure from any machine and any operating system.

Chef's Knife allows you to manage the interface between your chef bookshelf (the repository) and your chef server. The high availability and replication feature allows you to ensure that even if something goes wrong, the chef server is able to adapt and recreate your infrastructure as required, without outside help.

Many companies use Chef to control and manage their infrastructure including Facebook, Etsy, Cheezburger, and Indiegogo. See the Chef website for more success stories.

Training and development

QA are uniquely positioned to help – as the sole UK partner for Chef training delivery, Chef is part of our DevOps curriculum. Check out our Chef Essentials training course.



Talk to our learning experts

Talk to our team of learning experts

Every business has different learning needs. QA has over 30 years of experience in combining the highest quality training with the most comprehensive range of learning services, ensuring the very best fit for your organisation.

Get in touch with our learning experts to talk about how we can help.