Reduce Provisioning from 5 Hours to 5 Minutes: Infrastructure as Code as a Service
I built my career on IT infrastructure. About a year ago, I was given the opportunity to lead software development too. I love infrastructure. I love code. I really love Infrastructure as Code (IaC). IaC is this end-state nirvana where all of your infrastructure can be provisioned, configured, and maintained programmatically, rather than manually through interactive consoles.
It’s only been a recent phenomenon that this is even possible. Infrastructure administrators and engineers all learned how to do their jobs via management consoles, and most of them never wrote a line of code in their life. Now, almost all infrastructure is configurable via API or at least a scripting interface. Today, it’s becoming commonplace for the best infrastructure engineers to be scripting gurus adhering to software development best practices.
We’ve been on our DevOps journey for a little while now. We’ve made some progress in IaC, but it’s been admittedly slow. The success stories exist, but we need many more.
Enter Team Tangent
One of the benefits of leading both infrastructure and development teams is that I can organize people any way I want. So, we started an experiment. What happens if you put two application engineers and two systems engineers on a team and set them loose? We decided to find out. They decided to call themselves “Team Tangent.”
The team decided that the first workload to automate would be SQL server builds. This was something that was taking about 5 hours of labor on average to complete manually. The team used Scrum to organize. They used distributed version control, value stream maps, and telemetry as core non-functional requirements. The end result was a process that took 5 minutes.
A Catalyst, Not an Owner
From inception, we wanted Team Tangent to be a catalyst for IaC and DevOps acceleration, but not the sole practitioners. It’s typical in IT for a group to own whatever it builds forever going forward. That’s not the model we wanted for this team. Our success criteria includes knowledge transfer to the owning team (in this case, the DBAs). Team Tangent worked with the DBA team to run a couple of enhancements through the process end-to-end so they could successfully own it going forward.
Starting the Flywheel
The cool thing about flywheels is that they are really hard to start, but once they are running, they are hard to stop. Tremendous momentum carries them forward with little effort required to maintain. That’s what we are trying to accomplish. DevOps and IaC everywhere. Team Tangent is an internal service to start the flywheel spinning. This is IaC-as-a-Service or IaCaaS. Yes, I am coining this new term. Will it catch on? Probably not.
Recognition
A core part of how we work is through transparency. Success and failures. Visible work. Visible metrics. In the spirit of that, I’d like to acknowledge that while I wrote this blog article, I didn’t come up with the ideas that made this possible. My team did that. Jeff Bellus, Andy Stacy, Nate Wolf, Edgar Wright, Jason Brisbin, and Ryan Boyer, thanks for going on this journey.