Servers can be physical hardware, or virtualized/cloud instances.
Groups are a way to organize servers into collections. You may choose to create groups based on server role or location.
Recipes are containers of commands that are fully versioned. Recipes can be written in pure shell, bash, perl, python, or node.js.
Files is a centralized place to store text or binary files and then SCP transfer them to groups of servers via recipes.