AWS Builder Center
The 7 Rs of Cloud Migration: A Practical Guide

The 7 Rs of Cloud Migration: A Practical Guide

This article explains the concept of cloud migration and the 7 Rs strategies using simple terms. It includes brief definitions, a practical house-moving analogy, and real-world backend architecture examples to help developers understand when to use strategies like Rehost, Refactor, or Retire.

Backend Developer
Cloud migration is the process of moving digital operations, databases, and applications from a local environment into the cloud. This process helps organizations save money, improve security, and scale operations faster. However, moving complex software is not always simple. For this reason, cloud providers use the "7 Rs" to define different migration strategies.

Brief Definition of Each Strategy

  1. Relocate: Changing the hosting location to the cloud when applications are already virtual machines (VMs) or containers running on-premises.
  2. Rehost: Moving applications to the cloud exactly as they are, without making changes.
  3. Replatform: Making small optimizations in the cloud to achieve a tangible benefit, without changing the application's core architecture.
  4. Refactor: Rethinking how an application is designed and developed by using cloud-native features.
  5. Repurchase: Moving from a traditional software license to a Software as a Service (SaaS) model.
  6. Retain: Keeping business-critical applications in their original source environment.
  7. Retire: The process of eliminating applications that are no longer necessary.

The House-Moving Analogy

Understanding cloud migration is similar to moving to a new house.
It is possible to take the furniture exactly as it is and put it in the new house (Rehost).
It is also possible to paint the old furniture before moving it (Replatform).
Sometimes, it is better to buy completely new furniture (Repurchase).
Finally, the move is a good opportunity to throw away old things that are not useful anymore (Retire).

Group 1: Move without touching the code (Quick Migration Strategies)

These strategies are fast and require minimal development effort.

Relocate

This strategy is used when applications are already virtual machines or containers running on-premises, and they are simply moved to the cloud.
Practical Example: Taking a local Kubernetes cluster and moving it directly to a managed cloud service.

Rehost (Lift and Shift)

This involves moving applications without changes. In large legacy migration scenarios where it is necessary to scale quickly to meet a business case, most applications are rehosted.
Practical Example: Taking an old monolithic backend application running on a physical server in an office basement and copying it into a virtual server in the cloud.
The Difference: Relocate moves modern virtualized environments directly, while Rehost usually moves traditional on-premise servers to cloud virtual machines.

Group 2: Improve the code (Developer Strategies)

These strategies require technical work to take advantage of cloud features.

Replatform (Lift, tinker, and move)

This involves making optimizations in the cloud without changing the core architecture of the application.
Practical Example: Moving a self-managed local database to a managed cloud service, such as migrating a traditional database to Azure Database for PostgreSQL Flexible Server. The backend code remains the same, but the database maintenance is now automated.

Refactor (Re-architect)

This strategy is driven by a strong business need to add features, scale, or improve performance that would be difficult to achieve in the application's current environment. It implies rethinking how the application is designed.
Practical Example: Breaking a large monolithic loan origination system into modular microservices using Java and Spring Boot, integrating Apache Kafka for event-driven communication, and deploying them to the cloud.

Group 3: Business Decisions and Cleaning (Administrative Options)

Sometimes, the best technical decision is not related to writing code.

Repurchase

This strategy involves moving from a traditional license to a Software as a Service (SaaS) model.
Practical Example: A company migrating from an old customer relationship management (CRM) system to a new sales force software.

Retain

This consists of keeping business-critical applications in the source environment. This strategy is used for applications that require major refactoring to be migrated or for work that can be postponed until later.
Practical Example: Keeping a highly sensitive financial application on a local server because strict government regulations do not allow cloud hosting yet.

Retire

This is the process of eliminating applications that are no longer necessary.
Practical Example: Turning off an old "Gestión de Becas" (Scholarship Management) system that no one has used for two years because the institution already implemented a more modern platform.

Visual Summary (Cheat Sheet)

StrategyTechnical EffortMain Action
RelocateLowMove containers or VMs directly.
RehostLowCopy servers exactly as they are.
ReplatformMediumMake small infrastructure optimizations.
RefactorHighRedesign the code and architecture completely.
RepurchaseLowBuy a SaaS product.
RetainZeroLeave the application where it is.
RetireZeroDelete the application permanently.

What do you think?
Feel free to share your thoughts, suggestions, or corrections in the comments below so we can keep learning about cloud migration together!
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article