How to succeed at infrastructure automation

Update (March 2016): There’s now an updated and revised version of this article.

Readers of this blog know that I care a lot about infrastructure automation and the art of turning infrastructure into code. I find pleasure in using and developing build, test, and provisioning systems. It’s what I get paid to do every day and can’t stop doing after work.

For an engineer like me, the questions of what to automate and how to go about it are of particular interest. Alas, I don’t always have the right answer to those questions. That’s when things go wrong and mistakes happen. Fortunately, mistakes are also a wonderful opportunity to learn – and to eventually succeed.

Screwing up

I’ve been automating infrastructure of one kind or another for a couple years now. It goes without saying that I made some rookie mistakes along the way. (In fact, I still struggle from time to time, but who doesn’t?) I don’t mean technical mistakes like bugs, which are unavoidable. I mean more fundamental problems that go beyond mere writing of code.

Here are three things I know I did wrong:

The three rules of infrastructure automation

It goes without saying that I don’t want to repeat any of those mistakes. To achieve that, I’ve turned the lessons I learned over the years into three simple rules. I call them, appropriately, The three rules of infrastructure automation. I’m convinced that by following these rules, I’ve been able to improve my work and, in particular, be more successful at infrastructure automation. The rules are:

  1. Don’t blindly automate all the things. It’s better to take a step back and evaluate if the task is actually worth the effort. Always be willing to adjust and, more importantly, have the courage to stop what you’re doing and move on.

  2. Use whatever tool works for you or your company. Don’t fight over tools or programming languages. In the end, it’s all about creating (business) value. Remember that tools are only a means to that end.

  3. Care about your work. First and foremost, ship it! Get both the interesting and the boring tasks done (yes, automation isn’t always fun). Equally important: keep caring. Fix bugs. Help others relying on your work. Don’t automate and forget.

I’ve learned to live my professional life by the above rules. They were and continue to be a tremendous help to me. I’m sure there are other strategies that work for you. Feel free to share them in the comments below. Thank you.

Update: Hacker News thread

Tagged under: Infrastructure automation