Do Best Practices Apply to Us?
This question was posed by a manager not certain that Puppet best practices were something in which his team should invest:
We dont make Puppet. We use Puppet to provide our business services. We have our own best practices in our field. Do Puppets best practices apply to us?
Best practices dont tell you how to operate your business or provide your product. That function is provided by the regulatory, legal, and competitive environment in which the business operates.
Best practices inform you how to safely use the tool in your hand. Best practices on power tools arent just for carpenters: theyre for everyone who uses a power saw. In fact, they are essential guidance for people who arent using it every day and need to avoid costly mistakes.
A best practice does not tell you why to use a tool, it informs you how to use the tool safely and effectively.
There isnt always an objectively correct best practice for every conceivable tool or use case. Worse yet, there can be conflicting best practices that apply to a given usage. This book provides criteria to judge what makes a solution effective, and how to apply that understanding for the best possible results.
Tip
Best practices dont come in a manualthey come from years of burned hands and deep scars from using the tools in anger...uh, sorry! We mean practical, hands-on experience using the tools. Of course we did!
Who Should Read This Book
This book explores concepts, designs, and practices useful for Puppet novices and experts alike. It specifically aims to provide the following benefits for Puppet users:
Identify alternate design approaches and their benefits for experienced DevOps or SRE engineers developing infrastructure as code today.
Emphasize best-practice code patterns for system administrators and developers. Enumerate useful structures for organization of code and data.
Review solution evaluation criteria and iterative improvement suggestions for architects and infrastructure engineers.
Demonstrate declarative coding practices for Puppet novices of any type. Provide warnings about pitalls to avoid during the learning process.
We do intend for this book to be valuable for all professionals working with Puppet. if youre interested in improving your understanding of configuration management (CM), continuous integration (CI), continuous delivery (CD), automation tools, and infrastructure as code, you should find the concepts and designs in this book useful and practical. Even if you are only peripherally related to the usage of Puppet in your organization, you will find the following here:
The design principles and major components of a working Puppet ecosystem
Best-practice implementations of Puppet architecture that you should consider
Guidelines to implement or upgrade Puppet effectively in your organization
Strategies to get the most value out of Puppet with the least effort
Whether you are an expert responsible for designing large-scale Puppet infrastructure, or a novice learning to deploy a single application, we intend for this book to be valuable to you. The content should be immediately useful if you work with Puppet today, but it also can provide a conceptual foundation if youre just learning about Puppet, taking Puppet training courses, or migrating from other configuration management tools.
Tip
This book is not intended to train you in how to use Puppet; rather, it complements existing Puppet books, documentation, and training courses. Learning Puppet 4 (OReilly, 2016) provides an in-depth training guide to using and deploying Puppet, making it a useful introduction to the concepts discussed in this book.
The concepts and strategies presented are applicable to both green field (new build) and brown field (update in place) deployments of Puppet. We present concepts key to a stable foundation design that provides flexibility to grow and change. We explore strategies to eliminate pain points in existing environments, and make improvements that accelerate change velocity while reducing risk and minimizing impact.
Why We Wrote This Book
Our objective for this book is to share our professional experience to help IT, operations, security, and developer professionals solve problems and improve the overall quality of code and infrastructure deployed in the real world.