Infrastructure automation by example

I’m pleased to announce that our article Infrastructure automation by example is now publicly available! If you haven’t already read it, now is the perfect time to do so.

This piece was a collaboration between Gregory Brown (author of Ruby Best Practices, owner of Practicing Ruby, and overall awesome guy) and my humble self. We designed the article to help you learn about the core concepts of infrastructure automation by examining a handful of Chef recipes from the Practicing Ruby cookbook. I built that cookbook to completely automate the process of setting up an environment suitable for running Practicing Ruby’s Rails app.

Since the project was great in so many ways, I thought it would be interesting to share some additional content with you here. I hope you enjoy it as well.

Behind the scenes

The first commit I made in the cookbook’s repository dates back to September 16, 2013. We shipped the article on November 12, 2013, about two months and 200 commits later. I’ll never forget the satisfying moment Greg posted this tweet:

Although it nearly ended up killing both @mlafeldt and myself from exhaustion, our article on infrastructure automation has shipped! — Gregory Brown (@practicingruby)

Getting there was hard work (but still a lot of fun). When I started working on the project, I had little to no idea about Rails. In fact, I wasn’t familiar with most of the infrastructure that powers practicingruby.com. So for the cookbook to become reality, I had to learn a great deal about deploying Rails applications, in particular in the context of Chef and Vagrant. After all, I agreed to develop a first-class Chef cookbook for a special audience: the smart readers of Practicing Ruby who know more about Ruby and Rails than I do. I had no choice but to level up. I had to deliver.

In the end everything turned out well. We managed to ship both the article and the cookbook in time. I was able to stretch my comfort zone and learned a ton along the way (I guess the same is true for Greg). The collaboration also made me some money ($600), but what is more important is the fact that it felt like contributing meaningful work.

In case you still want to know more: In Telling people about chef-runner I wrote about my positive experience of giving a talk about chef-runner. This tool might be the most useful byproduct of working on the Practicing Ruby cookbook. The slides of my talk also contain more information on how the cookbook came to be in the first place, including my original email pitch.

Blog series. Not.

To be honest, I was planning to expand on the material presented in our article and turn it into a longer blog series. The project was such a wonderful experience, I wanted to keep pushing it forward. In the article, we gave an introduction to infrastructure automation – its principles, benefits, and costs – and skipped most of the finer details on purpose. My plan was to take a second, much deeper look at the guts of the cookbook and the tooling around it. I even had a catchy name for the series: “Bits from the Practicing Ruby cookbook”.

Unfortunately, I only managed to write a couple hundreds words (basically an introduction) before losing interest. I think the problem was that I didn’t start working on the series right away after shipping the article. Three months later, when I finally gave it a try, I wasn’t really into the topic anymore and my motivation was gone. Lesson learned: seize the moment.

While I missed this particular opportunity – and happily share my failure with you – I’m still planning to publish more posts on infrastructure automation in the future (hint: I’m currently very interested in the Go programming language). So stay tuned!


One more thing. It’s worth mentioning that all of Practicing Ruby’s articles have been released behind the paywall. They’re freely available here. I’ve read dozens of the almost 100 (!) issues and enjoyed every single one.

And by the way, you can support Practicing Ruby’s work by becoming a subscriber.

Update: Our article on infrastructure automation was featured in Devops Weekly #195 and made it to the front page of Hacker News.

Tagged under: Infrastructure automation, Chef, Practicing Ruby