Configuration management tool
Puppet sucks...apparently
Chef server has node objects and cookbooks
Nodes are chef clients: VMs, cloud instances, and physical servers
Administrator's workstation has knife, which reads settings and cookbooks, which are kept in a repo. These are pushed to the chef server.
Chef recipes are written in Ruby
Developers can use vagrant to develop sites and use the same cookbook