A few weeks back, despite my busy late-summer schedule, I finally made it to Portland’s DevOps user group: pdxdevops. It’s been at the top of my "must check out" list for quite some time. Why? Well, a big game changer in software development over the last decade has been the commodification of hardware. We can now spin up dozens of Amazon EC2 web servers at a reasonable price, but who will configure them all? Traditionally someone from the Ops department would build a server or two, then install your company's web app. If you have to manage 50 servers, that could take hours of clicks and manual effort!
So, what can we do? Eventually, developers and operations folks started conspiring to automate this type of work. Some organizations historically separated these departments, but others have brought them back together, because automating this stuff requires expertise from both specialties: coding, scripting, network/server administration and monitoring. The hybrid role, dubbed "DevOps", is starting to appear in job postings. There are also tools and best practices emerging, and I’ve been curious to hear what local DevOps gurus think about the options available today.
The Event - PDX Dev Ops
The meet-up was hosted at Cloudability, a local start-up and PIE graduate that helps companies track their cloud spending. They use cloud servers (Heroku, AWS) to run their service, and use the DevOps tools and techniques to automate the provisioning of their servers. Being a new start-up, their office downtown is packed with cool stuff: shiny new iMacs, framed articles from the tech press (TechCrunch, WSJ, etc), and tasty beverages on tap in the kitchen (beer and Kombucha!).
Last month’s topic was Ansible, a new DevOps framework that Cloudability had been evaluating. Carl Hall presented and compared Ansible to the other popular infrastructure orchestration tools: Puppet, Chef, Salt, and custom scripts. Carl posted his slides up here, which include great comparison charts that explain the different approaches and features of each platform.
Who I Met
I met Brad Heller and Carl Hall from Cloudability’s dev team. Both had fun cloud-management war stories from the trenches of the start-up battle. Their summer intern, Colby Aley, showed me his awesome "company dashboard" project. My team’s summer intern also made a corporate dashboard, so apparently it’s the new hot side-project. I also met Lindsay Smith, a fellow PDX tech meet-up enthusiast, and we compared notes on the most interesting local user groups.
What I Learned
The two main styles of DevOps platforms are Imperative (listing out each step for building a new server) and Declarative (say what you want on the new server, the tool will figure out how to make it happen). Some tools like Puppet and Chef have a custom DSL (domain specific language) and a steep learning curve, but are very powerful once mastered. Other tools, like Ansible, are helpful additions to existing custom scripts. They do a few things well, and are easy to integrate if you already have scripts that automate your deployment.
One example of how these tools are different was the management of secret passwords (SSH keys). The more mature tools like Puppet and Chef had solutions for moving around private keys, which ensure access security on your brand new servers. For the more light-weight tools like Ansible, they had to use "Sneakernet" to walk the keys over to a co-workers workstation.
Wrap Up
I’m a DevOps novice, so I learned a ton. Most of the tools discussed helped with automating deployment on Linux. Even though my company develops mainly for Windows server, the high-level DevOps concepts are applicable to any OS. Also, I noticed that Puppet and Chef both offer Windows support.
It’s nice that Puppet Labs, another local company, is such a major player in the emerging DevOps tool market. Several employees from Puppet attended and offered their insider perspective on various tools and features. If you’re a DevOps newbie like me, I highly recommend swinging by pdxdevops. Their monthly meetings are listed on Calagator, and they announce the agenda on their Google Group. They also mentioned that the upcoming DevOps Day conference (Nov. 4-5th) will be a great place to learn more.
Next Month
I’m presently touring around Romania, but right after I return to the states TAO is hosting Ignite Health at OHSU. All the lightning talks will be related to healthcare software. I’m definitely planning to attend and several of my Kryptiq co-workers will be there too.