Each guide is designed as series of tutorials and examples that build from a simple “Minimum” version that gets you started with just enough automation to perform a task, or series of tasks in a reputable way. These are then expanded in the “Viable” version which focus on making them more useful and adds some of the optional extras into the process. The final “Production” guide in each series adds examples of how take advantage of some of the more advanced use cases.
By splitting up into three levels the aim is to avoid readers ending up in that frustrating situation where the information you need is either too detailed to make it useful to get started with. Or, leaving a basic example where there isn’t a helpful next step to build on the newly found knowledge.
Balancing Useful Automation with Complexity
All the examples aim to pick the right balance of simplicity and functionality. For instance, Ansible is used for a lot of the server management tasks because while shell scripts could be seen as more portable, the extra features you get over rolling your own solution means for a minimal amount of effort to get started you end up with a much more useful tool in the end. On the other hand none of the examples use the Ansible Enterprise offering Ansible Tower, or the Open Source AWX. They are tools that are far beyond what most developers and small teams need and just adds several layers of extra complexity.