Chef is an open source configuration management tool that uses recipes and cookbooks to automate infrastructure. It follows a client-server architecture where cookbooks are developed on a workstation, uploaded to a Chef server, and used to configure nodes. Setting up Chef involves installing the Chef development kit (ChefDK) on a workstation, initializing a Git repository, and registering nodes with the Chef server to allow management via recipes and cookbooks.