Date: January 31, 2013
By: Aaron Delp and Brian Gracely
Description: Brian talks with Doug Hairfield (@knucklesandwich, Manager of Systems Engineering and Continuous Integration @Bronto) about how he’s transformed the way they do continuous deployment and “manage hardware as code.” They talk about how they transformed their environment from two deployments a year to 10-20 deployments a day, to deliver advance marketing tools and analytics.
We met Doug throught the Triangle DevOps group, where he was giving a talk about how Bronto Software has evolved to use DevOps principles. He did an excellent job of explaining how both the development and ops/sysadmin/QA teams have all come together as the company has grown. He does a great job talking about the tools they use (Puppet, Jira, Cobbler, etc.) as well as a mix of in-house data centers, AWS and VMware. They have been able to move from an environment that deployed new updates twice a year, to one that now deploys 10-20 updates a day, and delivers 90M emails to their clients each day - as well as run real-time analytics.
Doug’s “Managing Hardware as Code” at Bronto - Presentation
Topic 1 - The ah-ha moment for me was when you discussed how you literally had to think about managing your hardware just like the developers managed their code (check-ins, bugs, service requests, tools, etc.). Can you walk us through that thinking and some examples of what you’re doing today?
Topic 2 - Can this realistically be extended to other elements of hardware / infrastructure, such as networking or security?
Topic 3 - What were the biggest lessons learned, or hurdles you had to overcome?
Topic 4 - You talked a little bit about the lifecycle of your apps and how the environments between Dev and Test and Staging and Prod were different (some virtualized, some AWS, some bare-metal). Can you talk about how to manage between the variations?
Topic 5 - Bronto’s technology is the business. Can you imagine these techniques working for companies that have more traditional IT, or is this mostly for specific business models or types of applications?