Lift and shift is a strategy for moving an application or operation from one environment to another – without redesigning the app. In the lift-and-shift approach, certain workloads and tasks can be moved from on-premises storage to the cloud, or data operations might be transferred from one data center to another.
The complexity of an application is a key factor in the decision whether it should be lifted and shifted or re-architected. Commercial, off-the-shelf applications and apps with easily defined patterns are often good candidates for lifting and shifting. However, re-architecting might be a better option for resource-intensive apps, such as those used for big data analysis and image rendering. Resource-intensive apps may need to be redesigned to avoid performance and latency issues.
The lift-and-shift approach is a common option for replicating on-premises apps in the cloud while avoiding costly, time-consuming re-design. However, legacy colocation applications that are lifted and shifted to the cloud may not be able to take full advantage of the cost-efficiencies of native cloud features such as ephemeral compute and autoscaling.
Some companies might lift and shift an application to reduce on-premises infrastructure costs in the short term but then re-architect the app once it's in the cloud. In disaster recovery, rapidly moving an on-premise legacy app to the cloud to keep it going but then re-architecting it later might be a good option.
Lifting and shifting can be compared to moving a houseplant from one environment to another; being in a different habitat can affect whether the plant will thrive. Likewise, an IT project that started in an on-premises or original legacy system might not work as well in a new location.
Lifting and shifting isn’t just cutting and pasting. A lift-and-shift project that starts without sufficient documentation of requirements or operational design could go awry. Or the results may involve data that is mismatched to its handling systems or data sets that outgrow their environment. Problems with an application should be solved before it is migrated to a new environment.