Building more flexible and maintainable infrastructure
The Mission
Mode came to Test Double in need of a more flexible and maintainable infrastructure, especially when it came to managing deployments. Mode was using Salt which required all development teams to funnel deployments and infrastructure changes through a single infrastructure team.
Mode’s goal was to enable development teams to work more independently. Doing so would support Mode’s evolving business by providing the ability for teams to self-manage their application infrastructure using reliable and repeatable processes. They had their eye on migrating to use Terraform modules and we confirmed this was the right solution for their goals.
The Fix
With Test Double’s help, Mode constructed a series of infrastructure components that could be combined to meet each team’s unique needs. Modules were created using Terraform and ustomized Circle CI orbs.
With this new tooling, teams got the building blocks they needed to run services without managing all the underlying parts individually. This enabled standardized and streamlined deployment practices across development teams, while maintaining the ability to serve the varying needs of every team.
Building blocks in place, Test Double helped Mode migrate multiple services to the new tooling by working directly with the teams that own services. We helped them build out the necessary infrastructure—moving applications off the more fragile legacy system that relied on centralized management and onto AWS terraform modules. App teams could then focus on delivering great software to their customers, not the tooling configurations.
The Results
Development teams are now able to quickly and easily deliver both their own infrastructure needs, and software to production in a consistent way—allowing them to work more autonomously and lessening the constraints imposed by a centralized infrastructure team. Mode teams can now choose strategies for scaling compute needs, common add-ons for observability, service discovery, or load balancing.
By developing the necessary building blocks, and working with service owners to move their services onto a new platform we’ve grown the number of people who are able to manage services, and enabled teams to have deeper ownership of the services they’re responsible for running.
- Dramatically increased throughput for infrastructure changes and deployment by minimizing reliance on a single infrastructure team
- Enabled autonomous teams with reliable, repeatable processes for daily deployments aross multiple production services
- Dozens of infrastructure modules allowing teams to choose the right set of tools to meet their needs
- Supporting 5+ development teams deploying more than 15 services