Infrastructure as Code – A Hit at re:Invent 2015
The Stelligent contingent had a great time at AWS re:Invent 2015 and there’s a lot of things we want to talk about!
This year, Dave Winter from AWS planned a Part Deux of his Infrastructure as Code presentation from last year and invited Stelligent’s CTO Paul Duvall to present how we manifest “IaC” in Stelligentland, along with one of Stelligent’s customers, Soofi Safavi, CTO of Radian Guaranty. If you missed re:Invent, or the session itself, you can view the video on YouTube, the slides on SlideShare, and even download the demo source code from GitHub.
[youtube https://www.youtube.com/watch?v=WL2xSMVXy5w&w=560&h=315] This topic is clearly interesting to a lot of people. The room size was capped at 1,000 people, and many more had expressed an interest (you can’t actually reserve a seat at re:Invent sessions), so after this session, a repeat session was added the following day. Unfortunately, the repeat probably won’t be published to YouTube. All three presenters were even more on fire the next day.
Dave opened up and gave some great core reasons why infrastructure as code is important and how AWS presents us with all the tools we need to completely codify our infrastructures. By simply moving to codified infrastructures, organizations can apply all the best practices we’ve learned from software engineering over the years. Truly codified infrastructures are versioned, tested, documented, monitorable, and repeatable.
He then passed the mic to Paul, who proceeded to walk through a complete end-to-end live demo that invited the active participation of the more than 1,000 people in attendance. The demo successfully illustrated and validated Dave’s points. Along the way, we got to see AWS CodePipeline, CloudFormation, and several other tools commonly used by enterprises, such as Jenkins, Chef, and ServerSpec. The essential scenario was introducing changes at a variety of levels, including application and infrastructure, and then witnessing the effect of those changes, both on the deployment pipeline, but also on our devices, as the demo was made accessible to all of us in the audience.
The demo application was a single-page application designed to engage audience members to vote for their favorite color. Since we expected 1,000 or so attendees, and everyone who goes to re:Invent has at least a mobile phone when in sessions, the app was designed to be responsive so it would look and behave nicely on the small screen, and more importantly, was architected to handle that sort of load in scale and to govern those who might deliberately try to overwhelm it.
Paul showed something we all know very well at Stelligent. Following the simple act of committing a change to an application’s Git repo, the continuous delivery pipeline behind that app immediately sprang into action and moved those changes, and the entire body of related software, through a series of stages, each with increasing levels of confidence, and a few minutes later, the resulting deployment had manifested itself in the hands of each of the audience members.
During the course of the demo, Paul actually made two production releases and illustrated a blue/green deployment strategy. With the first release, we see an application level change (a new color is added on which the audience can vote) and an infrastructure change (a previously insecure CIDR block definition is made secure). With the second release, Paul introduced SSL to the app. Along the way, we saw solid engineering practices, as Paul updated the automated tests, both for the application level code as well as the infrastructure!
Dave then introduced Soofi, who gave an inspiring presentation on the reality of introducing Infrastructure as Code to a mature enterprise. He did not pull any punches about both the gains and the pains of doing so. This part of the presentation had several key takeaways, and as such will be getting its own post to follow this one.
Infrastructure as Code (ARC307):