Case Study: Eating Our Own Devops Dog Food

by Pete Carapetyan

 

No More Excuses For The Dev

DevOps means servers are so easy to set up, you can have development servers right on your own machine, otherwise identical, but instead - running on VMs. 

This takes a bit of getting used to. No more excuses, no more delays. Run the code, your dev box is ready AND virtually identical to test and prod.

Infrastructure as Code

Using Chef, we modularized the installations we would need on typical servers for our standard deployments. With a cookbook for each, we may now mix and match installations, configuring servers as required. 

Please see github.com/datafundamentals for the cookbooks we use to build our servers. All Chef work by Jeff.

Vagrant VMs

Vagrant VMs were also built, as code. These Centos based VMs were then loaded up from the Chef recipes as above

Git Launches Jenkins

Jeff built a Jenkins CI server running in our local network, using Chef for repeatability in case it ever craps out.

When we post changes to our Chef recipes on github, Jenkins detects the changes and re-runs the KitchenCI tests, to make sure the latest version of the recipe passes all it's tests.

Result

It is now a single command to build a VM for the specific type of server that a dev might need to run his latest code against. Since it is all Infrastructure As Code, this setup can be identical to the way the production servers are set up, as they can be built with the same code.