Recently, I published my first book, The Kubernetes Operator Framework Book from Packt Publishing. Writing a book has always been a personal goal of mine, and so it seems fitting that I was able to check that off by writing about one of my favorite topics: Kubernetes.
My journey with Kubernetes began in 2016, as a software engineer for Red Hat OpenShift. There, I had the opportunity to work with (and learn from) some of the smartest folks in the open source community. I learned first-hand some of the best practices for Kubernetes development as they were applied to broad enterprise use cases. And as I watched the development of OpenShift 4 take shape, I got to witness the functionality of Kubernetes Operators cranked to the max as the platform was built almost entirely around the Operator pattern. There, Operators were not just minor automation or deployment controllers; they were literally powering an entire Kubernetes distribution. I just happened to be lucky enough to have front-row seats to a transformative display of Operators in action.
Unfortunately, I still meet people in the community who are confused about Operators, how they work, and the benefits they can bring to cloud developers and customers. It seems that Operators are a topic about which many are curious, but few have the resources to truly invest in exploring.
That's why I wanted to write this book: to provide a high-level introductory overview of Operators and the breadth of possibilities that their use offers, so that more people can learn and benefit from running them in their clusters. I felt that my experience gave me a novel perspective on Operator development and use cases such that I could explain them through a unique narrative.
That narrative builds a storyline for The Kubernetes Operator Framework Book that gives readers a holistic, big-picture guide through the development lifecycle of an Operator. The book begins by introducing the fundamental topics of Operators broken into three pillars: the Operator SDK, OLM, and OperatorHub. These pillars respectively represent the three main phases of an Operator's lifecycle: coding, deployment, and distribution.
Following the introduction, the book goes on to explore some of the technical capabilities of Operators and identifies a sample use case for a basic Operator, which serves as the single example threaded throughout the rest of the book. That example strings together the different pillars of the Operator Framework into a unified tutorial for developing, running, and publishing an Operator (written in Go). Along the way, this includes topics like designing CRDs, using the Operator SDK tools, and implementing additional functionality like metrics reporting with Prometheus to add observability insights to your Operator. Finally, Operator developers' roles and responsibilities for ongoing maintenance are explored, such as when and how to release new versions and keep your dependencies in sync with the broader Kubernetes ecosystem of projects. All of these topics are then summarized with a few case studies of third-party Operators, which are clinically dissected to demonstrate the concepts learned through the book's tutorial in a real-world application.
The goal of the book is not to provide all the answers for building an Operator, but instead to provoke ideas about how Operators can best serve you and your users. By framing common software development concepts (such as understanding the specific needs of your users and tackling challenges such as deprecation) through the lens of Operator development, The Kubernetes Operator Framework Book reads differently than many textbooks which focus on deep technical details and advanced topics. It is a conversational introduction for the reader who is familiar with Kubernetes, has heard of Operators, and is curious to learn what kind of impact Operator development can have for their organization.
Researching and writing this book was an incredibly rewarding experience that would not have been possible without the countless mentors in the Kubernetes community who took the time to teach me about this wonderful technology. The Kubernetes Operator Framework Book is my attempt at paying that forward, and hopefully passing on some of what I have learned to all of the other eager learners who make this community so great. I hope you enjoy reading it as much as I enjoyed writing it.