Cloud · DevOps · Migration Strategy
Cloud Migration Checklist: What Not to Overlook
Most cloud migrations run into trouble not because of the technology, but because of what got skipped. A workload nobody mapped. A cost nobody modelled. A dependency that broke something else. This checklist covers the full migration lifecycle, what to verify before you start, what to watch during the move, and what most teams forget after go-live.
|
August 27, 2026
|
Technical guide
|
14 min read
Why cloud migrations go wrong
Cloud migration has a surprisingly high failure rate for something that's become standard practice. Research from McKinsey found that around 70% of cloud migrations experience delays, cost overruns, or performance issues. And most of those problems share a common pattern: they were foreseeable.
The root cause is almost never the cloud provider. AWS, Azure, and Google Cloud are mature, well-documented platforms. The root cause is almost always the same thing: teams underestimated the complexity of what they were moving and overestimated how straightforward the transition would be.
A database migrates successfully. But the reporting tool that reads from that database was not updated to point to the new endpoint. A workload moves to the cloud with identical specs to the on-premises server, but the cloud storage tier behaves differently under peak load. An application goes live in production, but nobody modelled the egress costs during the hybrid transition period when the app is in the cloud but the data is still on-premises.
These are not edge cases. They are the most common failure modes, and they are all preventable with the right checklist.
Phase 1
Before you start
Discovery, dependency mapping, cost modelling, compliance checks, strategy selection
Phase 2
During the move
Pilot testing, data validation, performance monitoring, rollback planning, access controls
Phase 3
After go-live
Right-sizing, FinOps, post-migration audit, team training, continuous optimisation
Choosing the right migration strategy before anything else
One of the most consequential decisions in any cloud migration is one that gets made too quickly: which migration strategy to use. Most teams default to lift-and-shift because it's the fastest. It's often the most expensive choice in the long run.
There are three main strategies. Each one is right for a different situation.
Rehost
Lift and shift
Move the workload to the cloud as-is, without any changes to the application or database architecture. Fast to execute. Does not take advantage of cloud-native capabilities.
Best for: deadline-driven migrations where modernisation follows later
Replatform
Lift, tinker, and shift
Make targeted optimisations during the move. Switch from self-managed databases to managed cloud database services, for example. More work upfront, better performance and lower maintenance cost after.
Best for: teams ready to take on slightly more complexity for meaningfully better outcomes
Refactor
Re-architect
Redesign the application to be cloud-native. Takes the most time and skill, but unlocks the full value of cloud computing: auto-scaling, serverless, microservices, and managed services.
Best for: applications where long-term performance and cost matter more than speed of migration
The lift-and-shift trap
Lift-and-shift is not a migration strategy. It's a delay strategy. Moving a poorly-optimised, heavily indexed database to the cloud doesn't fix the underlying problems. It can actually make them worse, because cloud storage tiers have different IOPS and throughput characteristics than on-premises SAN storage. If your current system has performance issues, a lift-and-shift migration will bring those issues to the cloud with it. Plan for a modernisation phase immediately after rehosting if that's the route you choose.
Before you start: the pre-migration checklist
This is where most migrations succeed or fail before a single byte moves. The decisions made in this phase determine everything downstream.
🔍
Phase 1
Pre-migration, what to verify before the move begins
⚠ Most overlooked
Map every dependency, not just the primary workload
List every application, API, reporting tool, analytics pipeline, and integration that connects to what you're migrating. Moving a database without updating every downstream system is one of the most common causes of post-migration failures. The database went up fine. Everything that reads from it broke quietly.
Baseline your current performance metrics
Capture CPU, memory, storage IOPS, and network throughput over a 30-day period that includes your peak load. This baseline is how you'll size cloud instances correctly and how you'll know whether the migration improved or degraded performance. Teams that skip this have no benchmark to compare against after go-live.
⚠ Common budget failure
Model your full cost, including egress and hybrid-state costs
On-premises and cloud cost structures are completely different. Cloud storage is cheap. Egress (moving data out) is expensive. During the hybrid period when your app is in the cloud but your data is still on-premises, or vice versa, you'll pay egress costs on every transaction. Use AWS Cost Explorer, Azure Cost Management, or Google Cloud Billing Reports to model this before the migration begins, not after the first invoice arrives.
Identify compliance and data sovereignty requirements
If you operate in a regulated industry (healthcare, financial services, legal), or if you store customer data from the EU or other regions with data residency laws, you need to know which cloud regions your data is allowed to live in before you choose your hosting configuration. Discovering a compliance gap after migration is far more expensive than addressing it before.
Conduct a security risk assessment
Map your current access controls and identify how they'll translate to the cloud environment. Define your VPC subnets, security groups, and IAM roles before any data moves. The cloud provider secures the physical infrastructure. You're responsible for securing the data and access to it. This split, often called the shared responsibility model, catches many teams off-guard.
Choose your migration tools deliberately, not by default
Generic all-in-one migration tools can miss database-specific metadata, triggers, and schema features. For SQL Server or Oracle migrations, database-native tools (like Transactional Replication or Oracle Data Guard) reduce the risk of data loss and minimise downtime during cutover. Know what your tool handles and what it doesn't before you rely on it for a production migration.
Define your rollback plan explicitly
Before the migration starts, document clearly: if something goes wrong at any stage, what does rolling back look like? How long will it take? Who makes the call? A rollback plan that exists only in someone's head is not a rollback plan. Write it down, review it with the team, and make sure everyone knows their role if you need to use it.
During the move: what to monitor
The migration window is where careful planning pays off. This phase should feel mostly like executing a plan, not making decisions under pressure. If you're making significant decisions during the migration window, something in Phase 1 was skipped.
⚙️
Phase 2
During migration, what to watch and verify as you move
⚠ Do this first
Start with a non-critical pilot workload
Move a reporting replica or a staging environment first. This tests your network throughput, validates your tools, confirms your monitoring works in the new environment, and catches any surprises before they affect production. Teams that go straight to migrating production systems have no safety net when something unexpected happens.
Validate data integrity before and after every phase
For every workload that moves, verify row counts, checksums, and business-critical data points in the new environment before decommissioning the old one. Do not assume the migration tool handled everything correctly. Check. Then check again for anything business-critical.
Monitor latency between the old environment and the new one
During the hybrid period, your application will be making cross-environment calls. Network latency between your on-premises systems and the cloud VPC can significantly degrade performance. If you need a dedicated connection (AWS Direct Connect or Azure ExpressRoute), that needs to be provisioned before migration day, not after performance starts to suffer.
Confirm monitoring and alerting tools are live in the new environment
Your existing monitoring tools (Datadog, New Relic, Grafana, CloudWatch) need to be configured for the new environment before cutover, not after. If a problem occurs in the first 48 hours after go-live and your monitoring hasn't been set up yet, you're flying blind during the highest-risk window of the entire migration.
Test every downstream integration before go-live
Every API, webhook, reporting connection, and analytics pipeline that depends on the migrated workload needs to be tested end-to-end before the migration window closes. Not spot-checked. Tested properly. A siloed migration approach that fixes the database but breaks the reporting pipeline is a very common outcome for migrations that treat dependencies as an afterthought.
Migrate in phases, not all at once
Migrating everything simultaneously makes troubleshooting exponentially harder. If ten workloads move at once and something breaks, you have ten places to look. Phased migration reduces risk, makes testing more thorough, and keeps the scope of any individual failure manageable.
Planning a cloud migration?
Find cloud migration agencies verified on real delivery outcomes
TechRadiant verifies DevOps and cloud consultants on documented migration outcomes, not just certifications. Find a team who has completed migrations in your industry and at your scale.
After go-live: what most teams skip
This is the phase that causes the most budget overruns. Many teams treat go-live as the finish line. It isn't. It's the starting line for a cloud environment that needs to be tuned, optimised, and managed differently from the on-premises infrastructure it replaced.
📈
Phase 3
Post-migration, what needs to happen after go-live
⚠ Most common oversight
Right-size your instances based on real usage, not estimated usage
Cloud instances are provisioned based on estimates made before migration. Real-world usage rarely matches those estimates precisely. In the first 30 days, review your actual CPU, memory, and storage usage against what you provisioned. Over-provisioned instances waste money every day they run. Under-provisioned instances cause performance problems. A formal right-sizing review within the first month is one of the highest-ROI activities in any cloud migration.
Implement a FinOps practice from day one
The pay-as-you-go model is the cloud's biggest advantage and its most common source of budget shock. Without active cost management, idle resources accumulate, storage costs grow silently, and the first invoice is a surprise. Set up cost alerts, review usage weekly in the first month, and identify unused or underutilised resources immediately. Teams that implement basic FinOps practices consistently reduce their cloud bills significantly in the first 90 days.
Decommission on-premises infrastructure deliberately
Running both environments in parallel costs money. But decommissioning on-premises too quickly, before you're confident the cloud environment is stable, creates risk. Set a formal decommission date, confirm stability first, then turn off the old systems. Don't let parallel running extend indefinitely because nobody made the decision to shut the old systems down.
Audit your access controls and remove excess permissions
Migration projects often grant broad temporary access to move things quickly. After go-live, those broad permissions should be reviewed and narrowed. Every account with "Master Admin" access that doesn't genuinely need it is a security exposure. Run a formal access audit in the first two weeks after migration and apply least-privilege principles to all ongoing access.
Train the team on operating the new environment
Cloud operations are meaningfully different from on-premises operations. Scaling, monitoring, cost management, access control, and incident response all work differently. If your team is operating the cloud environment the same way they operated the old servers, you're likely leaving performance on the table and exposing yourself to avoidable incidents. Invest in cloud operations training after the migration completes, not before you need it in an emergency.
Review your backup and disaster recovery setup in the new environment
Backup configurations don't migrate themselves. Verify that backups are running correctly, that recovery points meet your RTO and RPO requirements, and that restoring from backup actually works. A backup that's never been tested is not a backup. Run a test restore in the first month after migration, before you need it in a real incident.
The hidden costs nobody budgets for
Cloud migration costs almost always come in higher than the initial estimate. The reasons are predictable. Here are the specific costs that get missed most often, and what to do about each one.
| Hidden cost |
Why it gets missed |
How to address it |
| Data egress fees |
Inbound data transfer is usually free. Outbound is not. Teams budget for storage, not for the cost of moving data out. |
Model egress costs as part of your TCO. During hybrid operation, every cross-environment call may incur egress charges. |
| Parallel environment running costs |
Most migrations run old and new environments in parallel for a period. Both environments cost money during this window. |
Budget explicitly for parallel running time. Set a firm decommission date and stick to it. |
| Unused or over-provisioned resources |
Instances provisioned for migration tasks or peak load estimates often sit idle after go-live. |
Schedule a right-sizing review at 30 days. Set up cost alerts and review unused resources weekly in month one. |
| Staff retraining and productivity dip |
Teams operating a new cloud environment take time to reach their previous productivity level. This cost rarely appears in migration budgets. |
Budget for training time and a productivity dip period of 4-8 weeks. Plan accordingly for team capacity during this window. |
| Licensing changes |
Software licences valid on-premises may not cover cloud deployments. Database licences in particular can become expensive in cloud environments. |
Audit every software licence before migration and confirm cloud coverage. Consider managed cloud-native alternatives where licensing costs are prohibitive. |
| Post-migration optimisation work |
A rehost migration that needs to be followed by a modernisation phase carries the cost of two projects, not one. |
If you're choosing lift-and-shift as a first phase, budget and plan the optimisation phase before the migration starts, not after you've seen the performance results. |
Cloud migration done well is genuinely transformative. Teams that go through the preparation phases carefully, monitor throughout the migration, and invest in post-migration optimisation consistently report better performance, lower costs over time, and higher team confidence in the new environment. The teams that struggle are almost always the ones who treated migration as a technical event rather than a business project with multiple phases.
For cloud consultants and DevOps agencies who have completed migrations at your scale and in your industry, TechRadiant's verified DevOps agency index covers teams evaluated on real delivery outcomes.
Common questions answered
What is the most common reason cloud migrations fail?
The most common cause is hidden technical debt and missed dependencies. Teams move a primary workload successfully but fail to update downstream systems that depend on it. Reporting tools, analytics pipelines, and integrations break quietly because nobody mapped them before the migration began. The second most common cause is poor cost modelling: teams budget for the cloud environment but don't account for egress fees, parallel running costs, or post-migration right-sizing.
Should I do a lift-and-shift migration or refactor my applications?
It depends on your timeline and your goals. Lift-and-shift is faster but delivers less value and can actually cause performance problems if your current workloads have issues that don't translate well to cloud storage tiers. Refactoring takes longer but delivers meaningfully better performance, cost efficiency, and scalability. A common approach is to rehost first when facing a deadline (like a data centre lease expiring), then plan a modernisation phase immediately after. The critical thing is not to treat lift-and-shift as the end state.
How do I estimate the true cost of a cloud migration?
A realistic cost estimate for cloud migration should include: the cloud infrastructure itself (use native cost estimation tools from your chosen provider), data transfer and egress fees during the hybrid period, any dedicated connectivity costs (Direct Connect or ExpressRoute if needed), parallel environment running costs during the transition window, licensing review and any changes, staff training, productivity dip allowance during the adjustment period, and the cost of post-migration optimisation work. Most budget overruns come from missing one or more of these categories, not from the core infrastructure cost being wrong.
What is the shared responsibility model in cloud security?
The shared responsibility model defines who is responsible for what in a cloud environment. The cloud provider (AWS, Azure, Google Cloud) is responsible for the security of the physical infrastructure: the data centres, the hardware, and the underlying network. You and your team are responsible for the security of everything you put on that infrastructure: your data, your access controls, your application configuration, your encryption, and your compliance. Many teams assume the cloud provider handles more of the security responsibility than it actually does. This misunderstanding is behind a significant proportion of cloud security incidents.
How long does a cloud migration typically take?
Migration timelines vary significantly based on the size of the environment, the complexity of the workloads, and the strategy chosen. A simple rehost migration for a small environment can complete in weeks. A large enterprise replatform or refactor migration for a complex environment with many dependencies can take 12-18 months or more. The planning and discovery phase alone typically takes four to eight weeks for any migration of meaningful complexity. Teams that compress the planning phase to move faster almost always pay for it in execution problems.