Chapter 2. Introduction to Chef

Chef is an open source tool and framework that provides system administrators and developers with a foundation of APIs and libraries with which to build tools for managing infrastructure at scale. Let’s explore this a little further—Chef is a framework, a tool, and an API.

The Chef Framework

As the discipline of software development has matured, frameworks have emerged, with the aim of reducing development time by minimizing the overhead of having to implement or manage low-level details that support the development effort. This allows developers to concentrate on rapid delivery of software that meets customer requirements.

The common use of the word framework is to describe a supporting structure composed of parts fitted and joined together. The same is true in the software world. Frameworks tie together discrete components into a useful organic whole, to provide structural support to the building of a software project. Frameworks also provide a consistent and simple access to complex technologies, by making wrappers available which simplify the interface between the programmer and underlying libraries.

Frameworks bring with them numerous benefits. In addition to increasing the speed of development, they can improve the quality of the software that is produced. Software frameworks provide conventions and design approaches which, if adhered to, encourage consistency across a team. Their modular design encourages code reuse and they frequently provide ...

Get Test-Driven Infrastructure with Chef now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.