There are several mature, tested approaches to migrating workloads to the cloud. We’ll follow the five approaches in Gartner’s “5 Rs” cloud migration strategy model—rehost (lift and shift), refactor, replatform, rebuild and replace—with a special focus on the first three approaches.
In this post, we’ll review the five cloud migration approaches and explain the lift and shift, refactor and rebuild approaches, with a detailed review of their pros and cons, to help you select the most appropriate approach for each workload. In addition, we’ll show how NetApp Cloud Volumes ONTAP can help with data and storage aspects of your migration.
In this article, you will learn:
- What Is Cloud Migration?
- The Lift and Shift Migration Approach and its Pros and Cons
- The Refactoring Migration Approach and its Pros and Cons
What Is Cloud Migration?
Cloud migration is the process of moving some or all your digital operations to your cloud. There are three main types of cloud migration you can perform — on-premises to cloud, cloud to cloud, or cloud to on-premises. When performing any of these three migration types, there are five methods and strategies you can use. The strategies were first defined in the Gartner “5 Rs” model in 2011.These strategies are:
- Lift and shift—moving applications to the cloud as-is. This is also sometimes referred to as rehosting.
- Refactor—modifying applications to better support the cloud environment.
- Replatform—moving applications to the cloud without major changes, but taking advantage of benefits of the cloud environment.
- Rebuild—rewrite the application from scratch.
- Replace—retire the application and replace it with a new cloud-native application.
In the following sections we’ll explain the first three strategies in depth, with their pros and cons.
Also refer to our in-depth article on cloud migration tools that can help you automate and simplify your migration.
1. The Lift and Shift Migration Approach and its Pros and Cons
The “Lift and shift” approach involves dropping the application into the cloud as-is and hoping that it works. Lift and shift is possible for many workloads, and cloud vendors like AWS and Azure are working to make it as easy as possible.
One of the critical steps to ensuring lift and shift actually works is to ensure the application, which until recently operated in the local data center, still has access to the same documents and data once it is in the cloud.
An example is the Microsoft Azure Files service. Azure Files allows cloud VMs to mount file shares that are identical to those in the on-premise environment. This makes lift and shift possible, because you can move workloads from the data center to the cloud, and they still have access to the same shared folders.
Advantages of Lift and Shift Migration
Lift and shift has the following advantages:
- No code or architecture changes—applications are rehosted to the cloud with no significant application or infrastructure changes, eliminating costly development and testing.
- Migrate core services easily—you can move critical core services like Active Directory quickly and directly. This presents minimal risk and disruption to business activity.
- Easier compliance and security management—since applications aren’t changing security and compliance properties also stay largely the same and just need to be mapped to new resources.
Disadvantages of Lift and Shift Migration
Lift and shift has the following disadvantages:
- Does not take full advantage of the cloud—legacy applications are not scalable and do not allow for distributed workloads like cloud-native applications do.
- Latency and performance—on-premise applications might suffer from latency or performance issues after migration, because they were not optimized or modified to suit the cloud environment.
- Increased risk—migrating an application with known problems may result in increased risks after migration.
- Migration failures—the migration process might fail if the organization doesn't accurately map application requirements to the corresponding cloud configuration.
2. The Refactoring Migration Approach and its Pros and Cons
Refactoring is the process of moving applications to cloud infrastructure, while re-architecting them to better suit the cloud environment. This strategy involves modifying your existing software, or a large chunk of the code base, to take advantage of cloud-based features and the flexibility and elasticity that comes with them.
Refactoring is much more complex than other cloud migration approaches, because it requires application code changes, and needs to be tested carefully to avoid regressions in functionality. You also need to ensure that the application is built for better resource utilization in the cloud, to avoid incurring high costs.
While the refactoring approach is the most time-consuming and resource-intensive, it can provide the highest return on investment once you are running in the cloud.
Advantages of Refactoring
The advantages of refactoring are mainly long-term benefits:
- Long-term cost savings—can reduce costs by matching actual resource requirements with cloud infrastructure. The ability to scale as needed reduces resource consumption and provides long lasting ROI of your refactoring efforts.
- Adapting to changing requirements—cloud-native and microservices architectures allow applications to rapidly change to adapt to new customer requirements, by adding new features or modifying existing functionality.
- Increased resilience—by decoupling application components and wiring together managed solutions that provide high availability, the application inherits the durability of this cloud.
Disadvantages of Refactoring
The disadvantages of refactoring are:
- Vendor lock-in—the more cloud-native your application is, the more cloud features it is likely to consume. This makes applications tightly coupled to the public cloud you are using.
- Time—refactoring is resource-intensive and much more complex than a lift-and-shift migration, meaning projects take much longer to start showing business value.
- Skills—refactoring isn't for beginners. It requires advanced coding, automation, and DevOps skills.
- Getting it wrong—refactoring means changing many aspects of the application, so there is a high risk of errors at the code, configuration, and infrastructure level. Each mistake can cause delays, cost escalations, and possible outages.
3. The Replatforming Migration Approach and its Pros and Cons
A replatform migration is the middle ground between the two strategies we covered above. It’s similar to rehosting applications on the cloud, but it does involve some modification of the application to take advantage of the new cloud infrastructure.
There are some common modifications that are typically performed during replatforming. For example:
- Changing the way the program interacts with the database to benefit from automation and an elastic database infrastructure.
- Enabling better scaling and leveraging reserved resources in the cloud environment with minimal code changes.
Advantages of Replatforming
Advantages of replatforming include:
- Cost-efficient—this approach is cost effective and does not require a major development project.
- Start small and scale as needed—replatforming lets you move some workloads to the cloud, experiment with the cloud environment, learn lessons and then move on to other workloads, without committing to a large migration effort.
- Cloud-native functionality—re-platforming allows applications to leverage cloud capabilities like auto-scaling, managed storage and data processing services, infrastructure as code (IaC), and more.
Disadvantages of Replatforming
Disadvantages of replatforming include:
- Work scope can grow—“scope creep” can turn a replatforming project into a full-blown refactoring project. Managing scope and preventing unnecessary changes is essential to mitigate this problem.
- Aggressive changes—to minimize work, you need to stick to common, well known cloud components. Specialized components often require dramatic changes to the application, and may not be worthwhile unless they provide high business value or use is unavoidable.
- Automation is required—re-platforming is extremely limited if the resulting workload in the cloud is managed manually. This means you are required to invest in basic automation that provides some level of flexibility when operating the system in the cloud.
Take Your Cloud Migration Approach with Cloud Volumes ONTAP
Migrating to the cloud is a major undertaking. But part of it also involves understanding how your new environment will operate once you get your data to the cloud. Fortunately, NetApp Cloud Volumes ONTAP can help with both.
NetApp Cloud Volumes ONTAP, the leading enterprise-grade storage management solution, delivers secure, proven storage management services on AWS, Azure and Google Cloud. Cloud Volumes ONTAP supports up to a capacity of 368TB, and supports various use cases such as file services, databases, DevOps or any other enterprise workload.