Chapter 76. Automate or Not-o-Mate?

Judy Johnson

Ask a group of engineers how to DevOps, and many will say, “Automate all the things!” That’s a great answer that definitely covers a lot of the DevOps process, but it is not all DevOps is about. Here, I discuss why automation is important, how it relates to DevOps, and when automation may or may not be the right tool for the job.

Let’s take a step back and concentrate on automation. Why automate? There are many reasons; among them are to save time, ensure consistency, reduce the chances of human error, save the cost of a human performing the task, or allow the process to be part of a larger automated process (i.e., CI/CD). What do we automate? We automate tasks that are repeated often, are error prone, or need metrics and status collection, as well as ongoing processes such as testing and deployment. How do we automate? We use scripting or computing languages; configuration management tools such as Puppet, Chef, Salt, and Ansible; continuous integration frameworks such as GitLab CI/CD, Jenkins, and Travis; cron jobs; APIs; and variations on these themes.

Now let’s talk about the DevOps phases: plan, code, build, test, release, deploy, operate, monitor. Many of us are automating most of those phases already. In my opinion, the cool thing about DevOps is that if you have completed any phase, you have ...

Get 97 Things Every Cloud Engineer Should Know now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.