Cloud Migration

Mamta Singh
5 min readMay 20, 2021

Cloud migration is the process of moving digital assets and data from legacy infrastructure or on-premises data center to the cloud or from one cloud to another cloud. Now, the cloud is becoming essential for every enterprise strategy. Almost every organization increases its spending in IT and cloud. The cloud agile approach helps organizations to develop innovative ideas quickly without waiting for a long cycle of infrastructure.

Cloud Service Models

There are typical three service models in cloud i.e. SaaS, PaaS and IaaS.

SaaS (Software as a Service) is software provided over the internet where we need not to worry about underlying infrastructure setup and maintenance. Examples are Microsoft 365, Dropbox, G Suite applications.

PaaS (Platform as a Service) is a software building platform for the developers where they can create, deploy and scale their applications without worrying about networking, storage and OS. Examples are AWS Elastic Beanstalk and Google App Engine.

IaaS (Infrastructure as a Service) provides support for networking, storage and virtualization. When any organization thinks of moving to Cloud with their infrastructure, they pick this service model normally. Examples are AWS, Microsoft Azure and GCP.

Popular public Cloud choices

There are many cloud vendors available in the market but the major markets are captured by Amazon Web Services (AWS), Microsoft Azure and Google Cloud Platform (GCP). All these providers offer services on need basis over the internet with a pay as you go model.

Cloud Migration Strategy

There are typically three major patterns of cloud migration and often, migration projects adopt multiple strategies and utilize different tools accordingly.

  1. Lift & Shift
  2. Cloud Native
  3. Retain or Retire

Lift & Shift of the server or application from the source environment to the cloud, needs minimal changes and is the fastest mode of migration. Most common strategies are relocate, rehost and replatform to do Lift and Shift with minimal changes.

Relocate allows you to deploy your application using containers in your on-premises data center to the cloud with minimal effort and complexity. It does not require much upfront agile team effort.

Rehost is the quickest and preferred method of Lift and Shift migration where the need is only to upgrade underlying application platforms such as operating systems.

Replaftorm is preferred when upgrade is expected in database engine, operating system and in application. The old version goes to its end of life from providers.

Contrary, Cloud Native Approach is preferred when your business needs to replace the entire product with a ready-to-use SaaS offering or switching to digital transformation journey to upgrade old monoliths to micro-services based projects. This strategy is slower and requires upfront work.

Refactor involves rearchitecting and rewriting an application before migrating it to the cloud to make it cloud-native application. Cloud Native applications are designed, architected and built to perform efficiently in a cloud environment.

Repurchase is a kind of migration strategy where purchasing the SaaS product is better in terms of return on investment (ROI). For example, the current on-premises license is not valid in the cloud. In that case, a new license can be purchased to use it in the cloud. This replacement could be a SaaS offering of the same application.

Retain or Retire

When you are planning a cloud migration, it may not be necessary to move all the applications. Some applications may be retained due to technology constraints like operating system or application support is not available in the cloud or in another scenario where the customer does not see the benefit of moving to the cloud.

On the other hand, when your application is migrated completely to the cloud and you don’t see any dependency, the old application is no longer in use. These are the good candidates for the retirement strategy where some infrastructure components can be easily turned off without any decrease in productivity or value loss for the end consumers

Steps for cloud migration

1. Discover — Discovery of cloud migration portfolios and on-premises workloads

2. Analyze — Analyze discovered data and workloads

3. Plan — Plan migration to the cloud and define the migration strategy

4. Design — Design the application as per the migration strategy

5. Migrate — Execute the migration strategy

6. Integrate — Integrate with dependencies

7. Validate — Validate functionality after migration

8. Operate — Plan to operate in the cloud

9. Optimize — Optimize your workload for the cloud

Cloud Migration Tools

Amazon Web Services — AWS offers a wide range of solutions to kick off migration. Solutions are AWS Migration Hub, AWS Server Migration Service, AWS Application Delivery Service, AWS Database Migration Service and CloudEndure Migration

Microsoft Azure — Solutions are Azure Migrate, Data Migration Assistant, Azure Database Migration Service and Azure Data Box

Google Cloud Platform — Solutions are Transfer Service, Transfer Appliance, Migrate for Compute Engine and BigQuery Data Transfer Service

Use Case (Refactor Migration Strategy): Migrating Monoliths to Micro-Services

It is important to know that there is a high overall cost associated with decomposing an existing system to microservices and it may take many cycles. It is necessary for developers and architects to closely evaluate whether the decomposition of an existing monolith is the right path, and whether the microservices itself is the right decision. Start with domain driven design techniques to find the bounded contexts defining microservices boundaries.

Steps for migration strategy

  1. Identify logical components
  2. Flatten and refactor components
  3. Identify component dependencies
  4. Identify component groups
  5. Split database according to identified component groups #4
  6. Create repositories for each identified micro-service around component group #4 and start its implementation
  7. Refactor view to consume data from newly developed microservices
  8. Deployment and Testing
  9. Migrating the data from the legacy to the new microservice (Please refer Data Migration below)
  10. Run automation test to validate the deployment

Data Migration is the transfer of the existing data to a new storage, system, or file format. It involves a lot of preparation and post-migration activities including planning, creating backups, quality testing, and validation of results. Data migration is a one-way journey that ends once all the information is transported to a target location.

1. Storage Migration — Transportation of data from one physical storage to another.

2. Database Migration — This migration is tougher than the former, especially if target and source databases support different data structures. It requires ETL tools for successful migration

3. Application Migration — Moving data from one computing environment to another. The key challenge here is that old and new infrastructures may have unique data models and work with different data formats.

4. Data center Migration — Movement of application and data from one physical infrastructure to another

Summary

Migration strategies include the ability to rehost and replatform your application for Lift and Shift and take the cloud-native approach by refactoring and reachitecting your application to take advantage of cloud-native capabilities. We can pick a standalone or a mix of cloud migration strategies based on organization business needs and digital transformation aspirations. To develop a successful migration strategy, it is recommended looking at the migration progress from application-centric view rather than infrastructure-centric view.

--

--