In this post I am sharing my reflections about the opportunity that a Cloud Migration program provides for an organization to re-evaluate their apps and decide about how to migrate their applications.
I'm not focusing on strategy here, but rather on scratching the surface of the viable options to us.
A slew of strategies has been released, ranging from Gartner to Fujitsu to CSPs (and you count it). Basically, they're all trying to communicate that when it comes to application migration, you have a few options to choose from, which I like this categorization better:
- Rehost
- Revise
- Rearchitect
- Rebuild
- Replace
Which is why I'd like to add "Retain" to the list! Let's do some quick visual mapping on those options.
Rehost

This approach is so called a “lift & shift”. Lift applications from existing environment to Cloud environment in form of IaaS or CaaS. The applications should not be altered with in this scenario, and they must function as-is.
As you may think, this is the simplest way to get to the cloud! Yes, this is not a Cloud Native solution, which has no value other than freeing up local resources (on-premises or local datacenters), in which case one organization may result in decommissioning or vacating local environment.
Revise

Essentially, this is an alternative for modifying the edges of applications so that they can benefit from cloud features such as elasticity and resource consumptions. The key accomplishment of this strategy may be reduced operation overhead. PaaS, CaaS, and IaaS are the hosting models available, or a combination of them for this practice. Typically, the source code in this model will be untouched.
Assume you have a ReactJs Web Application that consumes a NodeJs set of REST APIs that use MySQL as a database; in this scenario, if you want to opt for this option (Revise), you can start using RDS (a PaaS database) and migrate front-end code to a blob or any sort of cloud storage, and so on, but we don't even need to recompile the code!
Rearchitect

Choosing this option entails significantly altering the applications so that we can have a cloud optimized version of them by utilizing cloud native services extensively. Nevertheless, this is no mean feat!
The hosting model, in my opinion, is more focused on FaaS, HCA, and Serverless, which is a more appropriate manner of migrating and necessitates more than technical knowledge! Yes, a spectrum of change is required from Culture to Platform.
Rebuild

This is radical! The approach here is to rebuild apps from the ground up, which involves sacrificing your existing code and starting from scratch to design and develop based on the capabilities and availability of cloud native resources. (you probably will opt for one or combination of HCA, HPA, FaaS, PaaS, and Serverless).
This may pay off technical debts, and architectural baselines will be embraced naturally as a result. Some analyses claim that it will also simplify the applications, which I agree to disagree with because my experience suggests different.
Replace

I like this one a lot even though it is intimately linked to your organization's strategy concerning Buy vs. Build and requires a lot of business and technical level study and evaluation before deciding whether this option is ideal for migration.
In practice, this alternative means abandoning the present homegrown or COTS (Commercial Off The Shelf) application in favor of a SaaS commodity.
Retain

Sometimes you're dealing with an application that delivers a set of niche functions for specific critical business capabilities, or you're dealing with a situation where data sovereignty must be followed yet there are no CSP data centers in your region.
You have no choice but to go with the last R, Retain, since believe it or not, this is a decision that you will encounter in Cloud Migrations initiatives.
Last Words and Some Resources
There are hell lot of recommendations and strategies for migration, adopting one maybe is the easiest option but not necessarily best fit for purpose. My experience suggests shaping up a Cloud Strategy prior to jumping into Migration Ocean. I possibly will share some thoughts about how a Cloud Strategy paper shall be framed soon.
https://www.gartner.com/document/code/361356?ref=dochist
https://corporate-blog.global.fujitsu.com/oceania/2020-06-23/agile-cloud-migrations-50-people-40-process-10-technology/
https://aws.amazon.com/cloud-migration/how-to-migrate/
Cheers,
Mohammad Malekmakan
Disclaimer:
All opinions and content published in my blog and my social networks are solely my own, not those of my employer(s) and the communities I am contributing in.