Sequenced migration replaces a single high-risk cutover with a series of reversible steps: assess dependencies, establish the landing zone, move the lowest-risk workload first, dual-run where correctness matters, and decommission only once nothing depends on the source.
The short answer
Do not move everything at once. Map dependencies, establish the target environment fully, then move workloads one at a time starting with the lowest-risk one — keeping the source available and a rollback tested at every step.
The weekend cutover exists because it feels decisive. In practice it concentrates all the risk into the hours when the fewest people are available and the pressure to proceed is highest.
Most of the work is discovery
Before anything moves, you need to know what calls what. Scheduled jobs nobody documented, a report that reads directly from a production replica, an integration that depends on a fixed outbound IP address, a file drop that a partner has been using for six years.
These are not edge cases. They are the normal condition of any system that has been running for a decade, and discovering them during cutover is precisely how migrations fail publicly.
Choose a strategy per workload
Rehost — move as-is — is fastest and delivers the least. It makes sense for workloads about to be retired, or where a hosting contract is expiring imminently.
Replatform — adopt managed services for the database, queue or runtime without changing application code — usually gives the best return, removing operational burden without a rewrite.
Refactor is justified where the application genuinely cannot run acceptably without change. Replace is worth considering where a commercial product now covers the requirement adequately.
A single strategy applied to an entire estate is nearly always wrong. Decide per workload and record why.
Build the landing zone first
Networking, identity, governance, monitoring and cost tagging should exist before the first workload arrives. Retrofitting network segmentation or access policy to a populated environment is significantly harder than establishing it empty.
This is also where infrastructure as code earns its cost. If the landing zone is defined in Terraform or Bicep, the second environment takes hours rather than weeks, and the two do not drift.
Data is the part that needs dual-run
Stateless applications move easily — run both, shift traffic, shift it back if needed. Databases are harder, because the state is changing while you migrate it.
The general pattern is a bulk load followed by change data capture to keep the target current, then a brief pause in writes, a final catch-up, and a switch. Reconcile row counts and checksums on key tables before switching, not after.
Where correctness is critical, run both systems against the same inputs and compare outputs for a period before retiring the source.
Expect costs to rise before they fall
During migration you are paying for both environments. After a straight rehost you are paying cloud rates for the same over-provisioned capacity you previously owned outright.
Savings come afterwards, from right-sizing against observed usage, autoscaling, replacing self-managed services with managed equivalents, shutting down non-production environments outside working hours, and applying storage lifecycle policies. Plan that optimisation phase as part of the programme rather than hoping it happens.
Decommission deliberately
A source system left running "just in case" for two years is a cost and a security liability, and its continued existence undermines the migration by giving people somewhere to fall back to.
Verify nothing still calls it — through logs and network traffic, not through asking around — archive the data in a readable form, document where it went, and switch it off on a planned date.
Written by the Webnatrix engineering team. This is evergreen technical writing, maintained as our practice changes rather than published to a date.
