Work · 03

Clusters and databases moved between AWS, Azure and Google Cloud, in production

Live production, database and Kubernetes cluster together, was moved from AWS to Azure in two weeks with about five minutes of downtime. Backups are verified automatically and the business no longer depends on a single vendor.

Cloud · Kubernetes

5 minof downtime moving live production from AWS to Azure
Context
Data-residency and single-tenant deployment requirements from large customers, plus costs that justified changing provider.
What we did
Live production moved from AWS to Azure, database and Kubernetes cluster together: manifests, regional replicas, dedicated single-tenant deployments. Later one environment was split into two, with separate databases and clusters, and a separate product that ran on Google Cloud was folded back into the main platform together with its customers. CI/CD moved from Bitbucket Pipelines to GitHub Actions, with build, unit, smoke, regression and E2E suites, backup and restore checks and production deploy workflows.
Result
AWS to Azure in two weeks, with about five minutes of downtime while DNS propagated. Infrastructure across three clouds, operated by a small team, with repeatable deploys and automatically verified backups.
Stack
Kubernetes (EKS, AKS, GKE), GitHub Actions, MySQL, Cloudflare

AWS to Azure in two weeks

The whole production environment moved: the database and the Kubernetes cluster, live, with customers on it. The move took two weeks from start to cutover. The cutover itself cost about five minutes of downtime, which is the time DNS took to propagate to the new environment.

One environment split into two

Later, a group of customers needed an environment of their own. The single production setup was split into two, each with its own database and its own Kubernetes cluster, and those customers were moved across.

A separate product folded back in

A separate product had grown next to the main platform, on Google Cloud, built around Kafka. When it made more sense as part of the main product, its functionality was merged back into the main repository and its customers were migrated with it. One codebase and one platform to operate instead of two.

What keeps it repeatable

None of this is safe to do by hand. CI/CD moved from Bitbucket Pipelines to GitHub Actions along the way, with build, unit, smoke, regression and end-to-end suites, production deploy workflows, and backup and restore checks that run automatically, because a backup that has never been restored is not a backup.

Contact

Let's talk

Tell us what you have, in your own words. You do not need to know which technology the system runs on; we will work that out. You get back questions and a written proposal.

Write to usor directly at [email protected]