This Chef tutorial will help you understand why Chef is needed, what is Chef, what is configuration management, infrastructure as code, components of Chef, Chef architecture & how it works, and you will also see a demo on Chef. Chef is an open source tool developed by Opscode. It is written in Ruby and Erlang. It automates the configuration and maintenance of multiple servers. Configuration management is a collection of engineering practices that provides a systematic way to manage entities for efficient deployment. These entities include code, infrastructure and people.
source