The 6 R's Of Cloud Migration
Tags: aws, cloud, architecture, awscommunity
Published: 2021-06-13 08:07:41

Nowadays, a lot of companies are investing towards the migration of their on-premises applications towards the cloud.

In this article, we will learn about the 6 **R** that will guide  your cloud migration journey.

The **6 R's** Of Cloud Migration are set of strategies for migrating things into the cloud, by understanding the pros and cons of each you'll be able to plan on what **R** is appropriate for your application. 

## Re-host
Also known as *lift and shift*. 
Migrate your application as is. This is the easiest path to get your on-premises application migrated to the cloud. Using this strategy, you *copy* your application infrastructure to your cloud provider. 

You can use tools such as [AWS Cloud Endure](https://www.cloudendure.com/) and [VM Import/Export](https://aws.amazon.com/ec2/vm-import/) to automate this strategy.

![Rehost](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mzz7i5e2ih78hwz7jgz0.png)

### Pros
- Reduced management overhead as your cloud provider will managed the physical infrastructure on where your application be hosted also known as *Infrastructure as a Service* (IAAS).
- Easier to optimize, when your application is deployed in your cloud provider it can now easily transformed to fully adopt the benefits of the cloud.
- Still offers cost savings as your physical infrastructure is managed.

### Cons
- Not taking the full advantage of the cloud.
- It can delay things that you could do better.

### When to choose this strategy?
This fits well if you want to migrate your application without the need of code or infrastructure changes, just implement the same thing you did on-premises and if you're new in the cloud and want try things out.

## Re-platform 
Also known as *lift, tinker, and shift*. 
Has similarities with Re-hosting but it gradually take the advantage of the cloud offerings without having to change the core infrastructure of your application.

Take this strategy as a safe point for your application. It's moving your database from *Infrastructure as a Service* to a *Database as a Service*.

![Replatform](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/scwfaqwk5r9vohewc7xi.png)

### Pros
- Reduced management overhead - better than rehosting.
- Increased resiliency.
- Reduced cost.

### Cons
- No real negatives as you only allow your cloud service provider to manage more parts of your infrastructure.

### Examples
- Provisioning [Amazon Relational Database Service](https://aws.amazon.com/rds/) instead of managed database instance in [Elastic Compute Cloud](https://aws.amazon.com/ec2/?ec2-whats-new.sort-by=item.additionalFields.postDateTime&ec2-whats-new.sort-order=desc).

### When to choose this strategy?
This suits your application migration if you want to gradually adapt on cloud functionalities such as auto-scaling, managed services, etc. without committing to a large migration effort, and by doing these you can achieve benefits than rehosting can offer.

## Re-factor or Re-architect
Review the architecture of an application and adopt to a *cloud-native* architectures and products, such as:

- Service Oriented or Microservices
- Serverless Architecture 
- Event-Driven Architecture

This strategy is offers the best long term benefits but comes with stiff price and time consuming process. 

![Refactor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4nc8lim9xrrrcrcy8vzk.png)

### Pros
- Takes the full advantages of using the cloud.
- Produce a much more scalable, better high availability and fault tolerant infrastructure
- Cost is aligned according the usage. *Pay as you use* model.

### Cons
- Initially, it is expensive and time-consuming.

### When to choose this strategy?
This strategy is for those who really knows what are the full advantages of using cloud and make the most out of it. This will require you to drastically modify your application core infrastructure to be suited base on the cloud-native model, although this entails a lot of work this strategy will produce more value to your business in the long run.

## Re-purchase
Move from managing installed applications on-premise and consume a *Software as a Service* (SaaS) model. Many of the common applications nowadays are available and offered as a SaaS. 

![Re-purchase](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gzxz1wsgymxuvaod436e.png)

### Example
Move from a Customer Relationship Management (CRM) to Salesforce.com, from Microsoft Exchange to Microsoft 365, an HR system to Workday, or a content management system (CMS) to Drupal. 

### When to choose this strategy?
This is for the applications that already exist with SaaS offerings that you can subscribe base on your needs. 

## Retire
In other words *If you don't need the application, switch it off*. Remove the applications that are no longer needed, applications that are no longer produce value to you or your business. These applications are often running for no reason.

![Retire](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cyhvrdca9c3401oz6qwx.png)

### Pros
- Often provides 10% - 20% cost savings.

### When to choose this strategy?
You'll know, after your initial cloud migration assessment and base on the data you gathered, *"Does this application benefit me?"* 

## Retain
Also known as *re-visit* or *do nothing, for now*. 
Commonly, applications fall on this criteria are:

- Old application that has some usage but not worth the move.
- Complex application that need to leave till later.
- Super important application and it's to risky. 

![Retain](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ssrmij0x5dmte5o905y.png)

### When to choose this strategy?
This strategy is used when most of the applications were deployed and working properly in the cloud, you'll look back and start to plan the migration for the application that falls in this category.

Using these **6 R's** you'll be able to produce a table that contains your on-premises application together with the **R** that fits it. This detailed assessment per application will serve as your guidebook when it's time to migrate to the cloud.

__You can reach me at__:
[Dev.to](https://dev.to/edwardmercado)
[Twitter](https://twitter.com/edwardmercado_)