Do some google-research on DevOps and you will soon find plenty of references to continuous integration and continuous delivery/deployment (CI/CD Pipeline). These concepts are close to the heart of what it takes to support DevOps culture. If you study these topics, you will find yourself being confronted with a massive variety of tools. So, what does it take to “do” DevOps? Is it just a matter of learning how to use a bunch of tools?
If you poke around the web, you’re sure to find people scoffing at the concept that DevOps is something that you do. Similarly, you’ll find people balking at the concept that DevOps can be included in a job title or an industry certification. These people are right because DevOps is not a set of tools or skills or even a particular set of best practices. DevOps is a culture.
Let’s get Practical…
With that being said, however, from a practical perspective, there are certain ways that DevOps culture had manifested itself in the IT industry. Certain goals and practices have arisen from the DevOps community, along with a set of tools that enable and support them.
This quarter, I wanted to design a course centered around the concept of a CI/CD Pipeline, and I wanted to focus on the practical aspects of that. My previous course, DevOps Essentials, addresses the high-level concerns of DevOps culture and practice, but it does not go very far in showing you how to implement any of that in practice. I wanted to build upon that foundation by creating a course that would guide you through building out a CI/CD Pipeline. I wanted it to cover the whole thing, from start to finish, with a major focus on hands-on interaction with the tools.
From Git to Kubernetes
Suffice it to say that designing such a course was a challenge. After all, there is no one way to build a CI/CD Pipeline. There are so many tools available I could never teach them all in a single course. So, I decided to focus on the major stages of a CI/CD Pipeline, the entire pipeline starting with source control and ending with orchestration, and pick a solution for each part. The result is my latest course, Implementing a Full CI/CD Pipeline.
This course is designed to be approachable for novices as well as instructive for old hands. It goes somewhat beyond the scope of the traditional dev and ops roles. Plenty of competent operations engineers know next to nothing about build automation, but I decided that it was best to show both sides of the DevOps equation as much as possible. What is build automation?
As a result, this DevOps course shows you how to implement and use each piece of the CI/CD Pipeline, all the way from code being committed in git to automated deployment to a Kubernetes cluster, complete with self-healing, autoscaling, canary testing, and monitoring. If you’re wondering what canary testing is..
This is certainly a tall order in terms of content, and in reality this course can only take a very shallow dip into any one tool, but my hope is that such a shallow dip into such a variety of tools will still inspire you to go and learn more about Git, or Gradle, or Kubernetes, etc. Even greater is my hope that it will inspire you to think more like a DevOps practitioner by giving you some insight into what it really looks like to “do” DevOps day-to-day.