SAAS & CLOUD INFRASTRUCTURE

Zero-Downtime Cloud Migration to Multi-Region AWS

Executed a live database and microservices migration from co-located data centres to AWS EKS with zero service interruption for 500,000+ active users.

Zero DowntimeMulti-Region Failover45% Cost Reduction

The Challenge

A B2B SaaS company with 500,000+ active users was running its entire platform on co-located bare-metal servers in a single data centre. The infrastructure had no redundancy — a single hardware failure in 2022 caused a 6-hour outage that resulted in $2.1M in SLA credits. The company was also paying $180K/month for hardware leases, bandwidth, and on-site engineering staff.

The board mandated a cloud migration with two non-negotiable constraints: zero downtime during migration and multi-region failover capability within 6 months.

Our Approach

We executed the migration in three phases over 5 months, maintaining full service availability throughout.

Phase 1 — Containerisation (6 weeks): We containerised the existing 14-service application using Docker, preserving the exact runtime environment. Each service was validated in a staging EKS cluster against production traffic replayed via GoReplay. This phase changed nothing about where the services ran — only how they were packaged.

Phase 2 — Database Migration (8 weeks): The PostgreSQL database was migrated using AWS DMS with continuous replication. We ran the on-premise and RDS instances in parallel for 3 weeks, validating data consistency with a custom row-count and checksum verification tool that compared random samples every 5 minutes. Session state was migrated to DynamoDB Global Tables, enabling multi-region session persistence.

Phase 3 — Traffic Cutover (4 weeks): Using Route 53 weighted routing, we gradually shifted traffic from the co-located data centre to AWS. Week 1: 5% of traffic. Week 2: 25%. Week 3: 75%. Week 4: 100%. At each stage, we monitored error rates, latency, and business metrics (login success, transaction completion) before increasing the weight.

Post-migration, we right-sized all instances using AWS Compute Optimizer recommendations, purchased 1-year reserved instances for baseline capacity, and implemented Karpenter for burst scaling. Monthly infrastructure cost dropped from $180K to $99K.

Results

MetricBeforeAfter
Monthly infrastructure cost$180K$99K (−45%)
Service downtime during migrationTarget: zeroAchieved: zero
Failover capabilityNone (single DC)Multi-region (us-east-1 + us-west-2)
Deployment frequencyWeeklyMultiple daily
Mean time to recovery (MTTR)4+ hours< 15 minutes