SDLC for Terraform at scale
Our DevOps resources impact
Unified development experience of infrastructure code for hundreds of clients developers
Automated development staging and production release processes
Defined Change Management process approval gates for production releases
Considerably improved security, repeatability and consistency of new deployments
The Challenge
Mobile and fixed network operators in Europe, managing thousands of projects in Google Cloud had started moving their on-premise infrastructure into the cloud. With a large amount of solutions being transferred they required a solid solution to provide common framework to streamline development, review, testing, sign-off and release processes in an agile paradigm introducing DevOps culture.
The Solution
Solid Potential DevOps Engineers created a development framework for infrastructure code unifying the release process. Previously existing solutions were refactored while developers still used their manual processes. Development was split into stages with each of those bringing new functionalities gradually.
Every step of the transformation was documented and introduced into a community of developers with the hands-on overview announcements and question surgery sessions.
We started with blending existing disjoint tools and repositories into a single CLI-like experience. This was an important step allowing us to streamline later automation efforts but also put focus on the process right at the start. As this step simplified existing processes considerably it improved developers trust and thus accelerated later transformation.
We moved on to integrate gitflow based release strategy adapted to customers existing processes. That required us redesigning the configuration and modularisation of customer infrastructure code. Engineers had to become fluent with all the migrated and ongoing coding efforts in order to be able to start using semantic versioning while still supporting all of the legacy release processes.
As an outcome of the release process work we developed a configuration management framework based on git, terraform and existing legacy tools where we introduced patterns for dealing with updates and releases as well as core common modules to serve as an base for any new infrastructure work.
Having solid base in form of the code lifecycle, we moved on to automation and change management process design. As the customer had already existing process for change management we had to make sure that the future process of evidence gathering complies with their standards. SDLC automation allowed code release process to be unified.
As a result Engineers have created continues delivery solutions that allowed flexibility, repeatability and coherence of deployments over time, regulated developers access through auditable role-based access controls that were quickly adopted by the existing developers’ community.
The flexibility of the solution allowed us to additionally automate some of the processes by introducing the gitops paradigm for shared infrastructure. As a side effect of the approach we have taken, not only access to the automation tools became auditable but also any development or staging work was much easier to cooperate within, which in turn helped troubleshooting and investigation in diverse remote teams.