Chef uses Ruby-based recipes to define configurations. Like Puppet, it traditionally uses agents, though agentless modes exist.
Recipes. Ruby code defining configuration resources. More flexible than YAML but requires programming knowledge.
Cookbooks. Collections of recipes, templates, and metadata for specific applications.
Nodes. Managed systems that run the Chef client.
Chef Server. Central repository for cookbooks and node information.
Trade-offs: More powerful than YAML-based tools, but steeper learning curve. If your organization already uses Chef for servers, extending it to networks makes sense.