Puppet has undergone a lot of changes in code management since its beginnings. Even the general workflow has changed drastically. This section will help you to understand some of the history of code management in Puppet, some of the challenges, and, most importantly, some of the solutions for designing and working with a strong Puppet workflow.
Originally, we wrote Puppet manifests directly to the disk. We logged on to the Puppet Master via SSH and edited our manifests directly, treating most of our code like configuration files for remote machines. This model required custom backups and recovery for code applied to agents, and did not provide easy rollbacks. If something went wrong in a deployment, you were forced to take snippets of code from a backup manually and deploy it to a system. Some members of the community took to storing their...