8 Services. 2 Tenants. Zero Downtime Migration. Q4 Peak. No Room for Error.
Eight services. Two Azure tenants. 500+ users. Q4 peak traffic. Revenue on the line. Zero tolerance for downtime. 241 Terraform modules managed through Terragrunt. OIDC authentication. Workload Identity Federation. Phased traffic shifting with automated validation gates. Migrating a revenue-critical enterprise application between Azure tenants without anyone noticing - during the busiest quarter of the year. The core application is a revenue-critical enterprise platform - budgets, client data, operational workflows - with 500+ active users and Q4 as peak traffic. Every minute of downtime is real money lost. The migration order mattered: data layer first, identity services second, business logic third, core application last. You cannot lift and shift when dependencies run eight layers deep. The IaC backbone: 241 Terraform modules through Terragrunt, OIDC and Workload Identity Federation replacing every service principal secret, zero credentials stored anywhere. Execution ran in parallel environments with continuous data sync, then traffic shifted in controlled increments - 10%, 25%, 50%, 100% - with automated validation gates at every stage. Any check failed? Traffic rolled…