Introduction
Every cloud migration involves a critical strategic choice for each application in your portfolio: move it quickly to the cloud with minimal changes, or invest in re-architecting it to take full advantage of cloud-native capabilities. This lift-and-shift versus refactor decision is one of the most important you will make in your migration program. The wrong choice can result in either higher costs and missed opportunities on one hand, or significant delays and budget overruns on the other.
Understanding Lift-and-Shift
Lift-and-shift migration, also called rehosting, moves an application from on-premise infrastructure to cloud virtual machines with minimal or no code changes. The application continues to run exactly as it did on-premise, just on cloud infrastructure instead of physical servers. This approach is fast and predictable. It gets applications to the cloud quickly and eliminates the on-premise infrastructure they were running on. However, it does not take advantage of cloud-native capabilities like auto-scaling, managed services, or serverless computing.
The Case for Refactoring
Cloud-native refactoring redesigns applications to leverage cloud-native architecture patterns — microservices, managed databases, serverless functions, and container orchestration. Refactored applications are typically more scalable, more resilient, and more cost-efficient than their lifted-and-shifted equivalents at scale. They can take advantage of cloud elasticity to handle variable workloads efficiently. The trade-off is time and cost. Refactoring a complex application can take months or years and requires significant engineering investment.
Decision Framework
The right choice for each application depends on several factors. Applications that are strategic, have high scalability requirements, are actively being developed, or have significant infrastructure costs are strong candidates for refactoring. Applications that are stable and rarely changed, have regulatory requirements that limit modification, are scheduled for retirement within a few years, or have complex legacy dependencies are better candidates for lift-and-shift. Most migration programs use lift-and-shift as the default and reserve refactoring for applications where the investment is clearly justified.
The Replatform Middle Ground
Between lift-and-shift and full refactoring lies replatforming, which makes limited optimizations to take advantage of cloud capabilities without redesigning the application. A common example is migrating a self-managed database to a cloud-managed database service like Amazon RDS. The application code changes minimally, but the operational burden of managing the database shifts to the cloud provider. Replatforming often delivers significant cost and operational benefits for a fraction of the refactoring investment.
Post-Migration Optimization
A pragmatic approach is to lift-and-shift applications quickly and then optimize them after migration. Getting to the cloud first reduces on-premise infrastructure costs and eliminates data center contracts. Then, with more time and information about how applications behave in the cloud, you can make targeted optimizations. Many organizations find that post-migration optimization delivers 80 percent of the value of full refactoring at a fraction of the cost.
Conclusion
The lift-and-shift versus refactor decision requires pragmatic analysis of each application’s value, complexity, and future trajectory. Neither approach is universally superior — the right choice depends on your specific context. Our cloud application modernization and migration experts help organizations make informed decisions and execute them successfully. Visit our application modernization and migration blog for more.