A project to initially set up a QA environment with infrastructure as code which in turn delivered a wider infrastructure as code capability to the business.
QA Environment
The QA environment had to bear resemblance to what was currently live in production and as such was virtual machine based in Azure. To create the infrastructure OpenTofu (Terraform) was used along with Terragrunt for environment and remote state management. The infrastructure as code had to be flexible enough to gradually assume management of an existing production environment as well as allow the scalability of being able to provision many other kinds of environments on demand. The architecture of the OpenTofu code was in such a way that different groups of people could have different levels of access to different projects, increasing overall security and allowing for self-serve in the future.
Wider Infrastructure as Code Capability
In creating the QA environment, a fully documented infrastructure as code capability had been given to the business.
Microsoft SQL Server Updates
The ability to rapidly deploy and configure short lived environments played a significant part in speeding up a major Microsoft SQL server upgrade.
Linux Based Image Bakery
To ease management of some Linux based services, Hashicorp Packer was introduced. This allowed the creation of secure, up to date images for these services that could then be rolled out in a controlled manner with OpenTofu. This also helps the business become familiar with an image build and promotion approach which will help as they take steps towards containerisation later on.
Configuration Management with Ansible
Where Linux could not yet be used, Ansible was used to configure Windows based machines. The idea was to lean less on fully managed “pet” approaches such as domain membership and group policy and more into “cattle” approaches where a service can be rebuilt rapidly from code.
