The existing application relied heavily on over 100 Azure resources including VMs, Functions, Application Gateways, SQL Databases and Redis Cache. The goal was to migrate all these resources from one Azure tenant to another and set up new IaC (infrastructure as code) with Terraform. Our team started with a discovery phase to understand the interactions between the Azure resources and external dependencies. We created a detailed discovery report with our initial observations, migration goals, a plan, and cost optimization recommendations. With the discovery phase complete, we began migrating resources in phases. First we obtained access to the destination subscriptions and broke down the infrastructure into reusable Terraform modules. We defined relationships between the modules and created a Terraform development environment. We deployed the infrastructure code using CI/CD. With the core infrastructure in place, we started moving the applications and databases, performing testing with the client throughout. Finally, we set up logging, monitoring and alerting for the new infrastructure.
The existing application relied heavily on over 100 Azure resources including VMs, Functions, Application Gateways, SQL Databases and Redis Cache. The goal was to migrate all these resources from one Azure tenant to another and set up new IaC (infrastructure as code) with Terraform. Our team started with a discovery phase to understand the interactions between the Azure resources and external dependencies. We created a detailed discovery report with our initial observations, migration goals, a plan, and cost optimization recommendations. With the discovery phase complete, we began migrating resources in phases. First we obtained access to the destination subscriptions and broke down the infrastructure into reusable Terraform modules. We defined relationships between the modules and created a Terraform development environment. We deployed the infrastructure code using CI/CD. With the core infrastructure in place, we started moving the applications and databases, performing testing with the client throughout. Finally, we set up logging, monitoring and alerting for the new infrastructure.