Udhyam Labs AI

Cloud to cloud migration

This practice moves a production estate from one hyperscaler to another, or into a sovereign or private cloud. The plan is built from what the estate is observed to do. The move is made in waves, each of which can be reversed up to a point of no return that the wave plan states and you sign off. The work is planned through to the decommissioning of the source estate.

Moving production from one cloud provider to another

Virtual machines and containers usually move with little change. Sign-in and permissions, network design, the provider's own database services, and the operating procedures written around one provider's behaviour have to be rebuilt. We move the estate, meaning everything you run on the provider, in waves. Each wave is a group of services small enough to be moved back within one maintenance window, and the wave plan states the point after which a service can no longer be moved back.

What the work is planned to deliver

  • The estate running on the target provider, with every wave verified
  • Infrastructure code for each environment covered, in your repository
  • The source estate decommissioned, with a reconciled final bill
  • Terraform
  • AWS
  • Azure
  • Google Cloud
  • Sovereign cloud
  • Identity re-mapping
  • Replication
  • Parallel run
Estate cutover, wave 3 of 4 rollback tested before each wave Sourcecurrent provider 10 of 20 services moved Targetnew provider 10 verified, 2 more in parallel wave 1wave 2wave 3, in flightwave 4, planned IdentityfederatedNetworktransit liveDatareplicatingComputewave 3 of 4

The drawing shows a move part way through: ten services verified on the new provider, two running on both, and eight still to move.

The first step

What the assessment examines, what you provide, and where the risk is

The assessment has a fixed fee and a fixed length, and it ends with written findings that are yours. You can stop there.

The assessment

We take a named slice of the estate and read its billing export, network flow logs, load balancer logs, DNS query logs, the provider's API audit log and traces. You receive a dependency map, a classification of each workload, a wave plan for that slice, an estimate for the rest of the estate, and a model of what running two estates in parallel will cost.

What you provide

You provide read-only access to those sources, one engineer who knows the estate, and a named owner for each service when its wave is planned.

Where the risk is

Stateful services carry the risk. Once a service has taken writes on the target, returning it to the source is a data operation and no longer a traffic change, so each wave states its point of no return and who signs it.

The method

How the work is done

The work has five stages, shown in the diagram below. The first three are described here. First we build a dependency map from observed network traffic and API calls, because the architecture diagram is rarely current. Then we classify each workload as re-host, re-platform, re-architect, replace, retire or retain according to what it depends on, including the workloads that will cost more than the plan assumed. Then we move the estate in waves, each with a period of parallel running and a rollback that has been run before the cutover.

A plan that counts virtual machines moves the stateless workloads and then stalls on the ones that depend on identity, managed databases, key management, private circuits to partners, and partner allowlists tied to fixed addresses. We classify those first, because they set the order of the waves. The wave plan also states how audit logs and control evidence are kept continuous across the move, and what the recovery position of each service is while the estate is split between two providers.

A service and the datastore it writes to move in the same wave. Where that is not possible, we count the round trips between providers for each request and the egress they generate before the wave is drawn, and the wave plan states the response time it adds.

For a stateless service, DNS answers are divided by weight between a source record and a target record, so traffic follows the weights approximately, and it is returned by setting the target weight to zero. Cached answers and open connections drain over the record lifetime and the connection lifetime, and the rollback test measures that drain time.

For a stateful service the source stays the only writer while it replicates to the target. At cutover we stop writes, wait until the target has applied the source's final position, recheck the chunks that changed since the last full parity run, start the reverse stream from that position, and only then move write authority to the target in one step. Until sign-off the service can be returned to the source by the same procedure in the other direction. At sign-off the reverse stream is removed, and from then the service can only be corrected forwards. Where the target engine differs from the source engine and no tested reverse mapping exists, the point of no return is the cutover itself, and the wave plan says so.

The wave plan comes with a cost model for the move itself. It covers the cost of running both estates in parallel for each wave, data egress, and any committed spend that remains on the source. It also gives the month, if there is one, in which total spend falls below what you pay today.

Migration into a sovereign or private cloud carries its own constraints: residency, audit, and the absence of several managed services you may have been depending on. Those gaps are listed in the assessment, each with the replacement we propose.

On a large estate we build the dependency map, the wave tooling and the rollback tests, and we run the first waves ourselves. Your engineers then run later waves to the same pattern while ours review each one. For a wave your engineers run, we are accountable for the wave plan, the tooling and the rollback test, one of our engineers is present for the cutover, and your engineers are accountable for following the runbook.

assessment assessment each wave each wave after the last wave Dependency map Built from observed traffic and API calls Classify Re-host, re-platform, re-architect or retire Wave cutover Parallel run, traffic shifted incrementally Verify Data parity and behaviour parity Decommission Source estate off, final bill reconciled rollback tested before each wave A common failure mode is a programme that classified everything as re-host and discovered the managed services partway through.
Waves are sized so that any single one can be reversed inside a maintenance window, up to the point of no return stated in the wave plan. The stages are shown in order, and their length depends on the number of services and on how many of them depend on managed data services.
Questions we expect

Questions about cloud to cloud migration

The Working with us page answers the rest. If yours is not there, ask it on the contact page and an engineer will reply.

We have several hundred services. Can a small firm move them?

We do not try to staff every wave ourselves. The Services page sets out how the work divides between our engineers and yours. The assessment gives a wave plan for the slice it examined and an estimate, stated as an estimate, for the rest of the estate. We tell you if the estate is more than we can take on at the time.

How do you work inside a regulated estate from another country?

We work inside your tenant under named identities that you issue and can revoke, through your own workstations or virtual desktops if you require it. We do not copy production data out of your environment, and your change approval applies to our changes. Remote access from another country can still count as a transfer under your rules, so tell us what your privacy team and your regulator require, and we will answer it in writing.

How is the work priced?

The assessment has a fixed fee and a fixed length, and both are quoted before it starts. The price of the build is set out in the proposal that follows the assessment. We do not publish rates, because the fee follows the scope.

All ten questions

Describe the problem, and an engineer will reply within one working day

Tell us in general terms what you are trying to do and what has stopped it. If it is not ours to take on, we will say so.

Start a conversation An NDA, yours or ours, is signed before you share any detail of your systems.