By Wolfgang Unger
Lets have a look on the 7 R's, the 7 cloud migration strategies.
If you plan to migrate your On Premise workloads to the cloud, it is essential to know the
options and choose the best one for your use case.
The 7 R's are:
1. Retire
2. Retain
3. Relocate
4. Rehost
5. Repurchase
6. Replatform
7. Refactor
1. Retire
Turn it off
The first one is also the most easy to handle.
If you have a redundant or no longer needed legacy app, you don't have to migrate to the cloud, you
will simply turn it off in the moment you switch to the cloud.
Of course this will be only possible in a few use cases, where the application or service is indeed
no longer
required.
This means a minimal effort in time and money.
2. Retain
Don't migrate the application and revisit later
Sometimes it will just not be possible ( at least at reasonable time and effort) to migrate
a application to the cloud. Just think of mainframe applications.
In this case you keep your On Premise application until it will be finally shut down.
This also means a minimal effort in time and money. But will not allow you to completly turn off
your On Premise physical resources.
3. Relocate
Switching locations.
This is often done on hypervisor level, running a VM in the cloud instead of your OnPremise
servers.
Advantage : Minimal downtime. No Code changes required. No functionality changes . Functional tests
not neccessary. Almost no training for your staff required.
This also means a minimal effort in time and money.
4. Rehost
Lift and shift.
Lifting the application as it is from on-premises to cloud environment.
It’s required to scale quickly to meet business requirement
servers.
On AWS you can use the Server Migration Service (SMS) for this approach.
Example : Migrate a Postgres DB On Premise to a Postgres DB on EC2 on AWS.
This also means a minimal effort in time and money.
5. Repurchase
Choose a different solution or version of your application
For example if a software vendor now offers a cloud ready SaaS platform and you don't have no
longer to run this software on your own servers.
Or you choose a different solution, but when bringing it live, you set it up in your cloud
environment.
This might bring some efforts on testing the new solution
6. Replatform
Lift and reshape. Small adaptions on your software
Optimizing and adapting an application while migrating it to a cloud
in order to take full advantage of its features to improve performance or reduce costs.
Examples: Migrating a On Premise DB to RDS ( Managed Relational Database Service) on AWS.
Migrating VM's into Containers and run it on Fargate or EKS, K8.
Advantage: Less code changes required as for refactor.
7. Refactor
Refactor your application.
The re-architecture of applications in order to gain cloud-native capabilities
that allow for greater performance, agility, and scalability. Medium adaptions on your software
The functional code will probably not change too much, but non-functional code.
This can also mean moving from a monolith application to microservices or move from an application
to smaller
Lambda functions.
This is the most expensive and time consuming approach but it will be neccessary for some use
cases.
You might save a lot of money on hardware costs if you refactore your application into smaller
serverless
functions or resources which don't have to run 24/7 ( like AWS Batch or Fargate).