A mentee I meet up with asked me to give an overview of DevOps this month, so I set to task trying to uncover how I could give an overview of DevOps in just a couple of hours. After thinking back on the articles I've read introducing DevOps, I realized that many of them come at DevOps with a lot of baggage. That is to say, they assume that someone has been working in the world of Development and Operations being separate. Knowing the mentee in question doesn't have that experience, I wanted to write something a little more targeted towards existing developers, ones who haven't seen the Ops side of things, but aren't already working on the deployment side of things.
Think about your first time working on a new project, or better yet, think about your first time working on a new project on a new computer. You probably had to go through several steps to get everything up and running. Something similar to the following.
The point of calling all of this out is that the environment an application runs in can depend on a lot, and this is before getting into things like networking considerations (firewalls, DNS, routing), authentication, hardware requirements, and operating systems. Historically, all of these steps and more were performed manually, but that introduces risk of small configuration tweaks getting lost, long restore times in the case of failure, and a general lack of resiliency. And resiliency is an Ops person's favorite word.
Here's a list of common tool types, and a few examples of tools that serve that purpose. In general, a tool can serve many purposes, in which case I might not put it under the same "Type" as someone else would. This is just a rough guide.
It's probably not prudent of me to put CI/CD into one category of tools, but most tools in this space serve a dual role, or can be made to server a dual role. So in order to not get caught up on categorization, they'll all go under here.
Okay, here's another place where things get... messy. I'm including both containerization and container orchestration here, as well as general deployment platforms. Categorization is a messy business, okay?