Our client needed us to migrate two containerised full-stack, and mission-critical, monitoring and data visualisation tools from Google Cloud services to Microsoft Azure. The applications served as mission-critical monitoring and data-visualisation tools for the client’s core business.
Keeping in line with the client’s existing practices, their destination infrastructure had to be built from code using Terraform before the two applications in question could be migrated. Our team leveraged the features offered specifically by the paid-for Terraform Enterprise web interface, using it to manage multiple environments and deployments of the infrastructure by a number of engineers from both Lola Tech and the client’s in-house team. AzureRM and AzureAD were used as Terraform providers to describe resources, while popular Terraform modules (virtual-network, key-vault, among others) were leveraged in an effort to standardise the implementation and achieve brevity. Our aim was to create clean, pared-back infrastructure to ensure the scalability and maintainability of the applications.
The idea was simple: Branches in the infrastructure’s repository would behave as the single source of absolute truth for each respective environment. Commits to a branch would trigger a Terraform plan in the appropriate environment’s infrastructure, so the code and changes could be inspected and peer-reviewed before they were applied. An effort was also made by our team to keep the branches in sync as much as possible, enabling testing to take place in controlled and production-ready environments.
Azure proved to be a mature and feature-rich ecosystem that offered the client all the right capabilities for their applications. To get there, we worked alongside the client for 10 weeks, from discovery to implementation. The initial discovery phase took seven days and allowed us, among other things, to take stock of existing security policies and practices which would ensure the eventual infrastructure configuration would be compliant with industry and client standards. The delivery phase included in-code implementation of App Services, Gateways, Key-Vaults, Virtual Networking and App Registration, involving research, analysis and debugging work. To finish the engagement, our team laid the foundations for efficient deployment: UAT was rigorously prepared to ensure minimal delays to the ultimate adoption across the business. Assistance was provided for the initial infrastructure deployment to the client’s production environment and, lastly, the handover included clear documentation.
In our experience, any business can benefit from the versatility and relative simplicity of using cloud services like Microsoft Azure to streamline their IT processes. The key to a successful migration or even initial build to the cloud is a dedicated team that brings together the full skill set: DevOps and Cloud-native architecture expertise, strong focus on everything-as-code, agile way of working, mastery of cloud solutions, analytic and problem-solving skills. This ensures consistency in the delivery and, importantly, a complete product without the need for later revisions which can lead to legacy issues.