Azure Migration with Terraform

Period
Domain
Team
Tech
2023
IT
2 engineers
Terraform, Azure VMs, Azure Functions, Azure Application Gateway, Azure SQL Databases, Azure Cache for Redis

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.

> Next Case
Azure Migration with Terraform
Azure Migration with Terraform
period 2023 team 2 engineers
domain IT tech Terraform, Azure VMs, Azure Functions, Azure Application Gateway, Azure SQL Databases, Azure Cache for Redis
Azure Migration with Terraform

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.