Test-Driven Infrastructure with Chef (2011)
Chapter 8. Epilogue
This is a substantial book, covering a large and rapidly expanding subject area. Constraints have been imposed at various stages for purely practical reasons. In this final section, I want to enumerate very briefly what some of these constraints are, what has been specifically left out of scope, what I hope to be able to include in further incarnations, and where additional guidance, documentation, and support may be found.
An immediate constraint is that while I had every intention of making this book 100% compatible with Microsoft Windows, doing so would have expanded the examples and setup by a significant factor. It’s not that Windows is in any way a less supported citizen, it’s just that there are nuances involved, both in terms of its automation as a server platform and its use as a development platform, which led me to focus my attentions on Linux as the primary use case in this text. As a technologist, I am very enthusiastic about the Microsoft technology stack, and as a consultant and trainer, I have worked extensively with Windows infrastructure automation. As an area of interest, it is something I intend to devote more dedicated time and material to in the near future.
An explicit and hopefully obvious constraint is that this is a practical and philosophical book about the process by which we develop infrastructure code. It’s not a complete introduction or tutorial for Chef, nor is it an advanced or comprehensive discussion of the framework. That said, I have explicitly assumed absolutely no familiarity with the framework, and the reader who works her way through the book will find herself rapidly able to be effective in Chef. In that respect, the present volume serves admirably well as an introduction to Chef when used alongside the existing documentation and materials provided by both Opscode and the community.
There are areas to which, owing to the constraints of time and space, I was unable to devote attention. The whole process by which we automate the running of tests and their feedback—the building of a continuous integration system, and the path towards a build pipeline for infrastructure code—is a highly relevant and most fascinating subject. Opscode is increasingly positioning itself as a specialist in the field of continuous delivery, and its consultants have valuable and unique insights to share. This is certainly an area where I intend to focus time in both research and writing, and I would not be surprised to see contributions to the discussions and literature on the subject coming from Opscode—either formally or informally.
Similarly, I feel some of the social aspects of agile and lean development are very highly relevant to the discipline of infrastructure as code. I would love to have been able to discuss and demonstrate code review processes using, for example, Gerrit or Reviewboard, and to explore some of the principles around which I feel effective teams organize, such as pair programming and flow-based workflow management.
The publishing industry has changed beyond all recognition in the last 20 years. The emergence of digital delivery and multimedia-enriched content has made the task of an author somewhat different. In my heart, I believe that writing (and publishing) exists because there are problems to be solved, and people who want to help solve them. The fact that we can’t solve all these problems in a single book, and the fact that the present problem domain is so volatile, should not discourage us. As an author, I am committed to continue to educate, entertain, and synthesize, so where I’ve been unable to cover all that I would have liked to, I am confident that content on these subjects will, nevertheless, be forthcoming.
This book includes a comprehensive bibliography and has referenced and encouraged the user to make use of the excellent community in which the Chef framework is developed. I would urge the reader to engage with the community, via the mailing lists, IRC, the frequent conferences and user groups, and by creating and consuming online content. It’s my sincere hope that this book has whet your appetite, and that you will add your voice to the conversation.