1. What is Cloud Migration?

Cloud migration is the process of moving applications and related data from on-premise infrastructure to any of the cloud Infrastructures like AWS, Azure, Google Cloud, etc. Cloud migration is focused on achieving better efficiency and attaining maximum results with the least expenditure at a fundamental level. Organizations that successfully migrate to the cloud have multiple benefits such as greater scalability, availability, resiliency, cost savings, and security. 

2. Cloud Migration Strategies 

The following sections will give you a brief overview of the different cloud migration strategies followed by the industry today:

2.1 Lift & Shift (Rehosting)

It is one of the simplest and fastest cloud migration solutions because it does not require any code changes, re-writes, or re-factoring. Meaning you can transfer on-premise applications running of servers or virtual machines in various operating systems directly from your current on-premise hosting environment to a public cloud infrastructure. The goal is to move the application “as is” with minimal or no modifications.

2.2 Replatforming 

The re-platforming strategy is a hybrid of basic lift-and-shift and a more extensive application re-architecture. In this approach, you can make a few cloud optimizations during migration to shape the application to make it cloud-native. However, Replatforming requires more effort, time, and cost compared to lift and shift.

2.3 Refactor

This strategy entails completely redesigning your applications to make them completely cloud-native. This method enables you to fully utilize and benefit from cloud-native technologies such as microservices architecture, serverless computing, containerization, function-as-a-service, containers, Kubernetes, and load balancers. However, Refactoring is much more time-consuming and costly.

2.4 Repurchase

This method involves switching from a proprietary program to a cloud-based platform or service while moving to the cloud. Typically, this entails migrating to a SaaS (Software as a Service) solution that provides the same functionality.

For example:- you can swap an internally administered email server for an online email-as-a-service offering or move an on-premise SQL database to an RDS service in the cloud.

2.5 Retire

As there is no migration, this is a very passive technique. Instead, retiring is accomplished by decommissioning or archiving obsolete components and substituting other services and components for their functionality.

2.6 Retain

Due to security concerns, compliance requirements, or other constraints, a company may retain some stand-alone workloads and databases. As a result, these workloads may need to go through a significant amount of refactoring before migrating to the cloud

3. Process of Lift and Shift Migration

3.1 Initial examinations

First, identify the applications and related data to be migrated, identify their dependencies, list out the applications resource requirements like compute, memory, storage, etc. Next, evaluate and select the cloud platform to which you desire to migrate and conduct an examination of the cloud provider’s terms and conditions, charges, SLA, etc.

3.2 Budget and Resource Allocation

Allocate necessary human resources, budget, tools, and other resources for the migration.

3.3 Planning

Plan each step in detail and document the steps. For example- If you’re lifting and shifting several applications, explore automating the migration process. Define clear backup procedures and roll-back strategies in case of any failure. Assign clear responsibilities to the people involved in the migration. Plan to engage an external service provider with previous experience in cloud migration if you do not have in-house expertise in the migration processes or managing cloud environments. 

3.4 Backup files

Before starting the migration, the first step is to back up the application code, binaries, file data, and databases from the existing system. Then, test the restore process of these back-ups using some test environments before the final migration. In some cases, applications and data are set up in the cloud environment beforehand, and only a delta-backup needs to be applied during the final migration. This strategy can reduce system downtime to a minimum.

3.5 Setup Cloud Environment

The next step is to create a cloud account, create VPCs, VMs, set up landing zones, define role-based access controls, security groups, policies, etc. Follow the best practices advised by the cloud provider and other industry experts. Engage an external vendor if you need assistance.

3.6 Migrate and Test

Execute the migration during the pre-planned maintenance window. Once the application and all related data have been transferred, make sure to test each part carefully. Do your standard validation checks on the freshly moved application. Do not introduce new features during the migration. This can result in numerous hours of additional testing to ensure you haven’t introduced any new bugs.

3.7 Monitoring & Maintenance

Once the migrated applications are up and running, monitor the infrastructure and applications for proper functionality, efficiency, and resource consumption. Review the log files for any errors or alerts. You should also use the cloud dashboards and monitors to review infrastructure resource (CPU, Memory, Disk) utilization and make any optimizations required.

3.8 Retire

Once your testing is complete and everything is working fine, you can retire your old systems.

4. Lift and Shift – Merits & Demerits

Merits Demerits
Relatively Simple Process. No optimization happens during the migration, resulting in a sub-optimal environment and resultant inefficiencies/higher costs.
Faster Migrations There are chances of unexpected network usage (egress) bills since the applications are not cloud-optimized.
Requires No Changes Inability to use cloud-native features and miss the real advantages of cloud-like, agility, scalability, and resilience
Less expensive Initial savings may end up in failures, losses, or larger cloud bills in the long run.
Less Disruptive Potential challenges in operating and managing the new cloud environment

5. When Is It Appropriate To Lift And Shift?

5.1 When You’re Short on Time

When you do not have enough time to optimize or re-architect your applications to make it more cloud-native, or other reasons like the aging of your existing hardware, or immediate need for more resiliency, availability, scalability, etc., you may choose to do a lift and shift to save time and money.

5.2 When the Budget is Limited

Lift and shift migrations are the simplest and least expensive cloud migration strategy. Since applications are migrated as-is, it doesn’t involve any code changes, optimizations, or re-architecting, which considerably reduces time, effort, and costs.

5.3 Use it as a short-term approach

While the other migration strategies take more time, cost, and effort, lift and shift can be used as short-term intermediary approaches to move the workloads to the cloud-first and get some benefits of the cloud. Parallelly, you can optimize or re-architect your applications to a more cloud-native one.

5.4 When applications have inherent limitations

Some of the legacy applications have inherent limitations to modify or re-engineer. It is better to move those applications as-is to a cloud environment in such cases.

6. Conclusion

Lift and shift migration is the simplest, quickest, and least expensive approach accessible. If you lift and relocate things, you are not examining and learning your entire environment – and this will remain unchanged in the cloud. As a result, you extract more value from a legacy workload and achieve some cloud benefits such as scalability, resiliency, availability, and security.

If you really want to use the benefits of cloud computing, then applications need to be redesigned to run efficiently in the cloud using cloud-native features, without which the results will be sub-optimal. Also re-architecting the applications and migrating to the cloud using a tool accelerated approach along with modernization of on-prem VMs to container/Kubernetes based technologies can bring in more efficiency and benefits in long term.

About the Author

Dr. Anil Kumar

VP Engineering, Cloud Control

Founder | Architect | Consultant | Mentor | Advisor | Faculty

Solution Architect and IT Consultant with more than 25 years of IT Experience. Served in various roles with both national and international institutions. Expertise in working with both legacy and advanced technology stacks and business domains.