Application Modernization and Cloud Migration are often used interchangeably, but they do not mean the same thing. Both are about executing in "The Cloud" and both try to leverage the benefits of "cloud" such as Scalability, Flexibility & Agility, Reliability & Availability, but they are inherently different.
Cloud Migration is the physical action of moving services, data sources, applications or any digital asset from the enterprise to the "Cloud". More often, then not, these assets are not really changed or updated. A poorly designed architecture is still poorly designed when running in the cloud.
Application Modernization is specifically about applications, but modernization can be utilized for other digital assets. App Modernization is the process of optimizing existing applications to leverage features in the cloud as well as updating to modern architectures using industry best practices.
You can see that there is a distinct differences between Cloud Migration and Application Modernization even among their similarities. A migration strategy and ongoing management plan is required to ultimately realize the benefits of the cloud. Both Cloud Migration and Application Modernizations are strategies for moving to the cloud.
AWS (Amazon) has fortunately detailed the different migration strategies known as the 7-R(s). The AWS Migration Strategies are as follows:
- Retire
- Retain
- Rehost (Cloud Migration)
- Relocate
- Repurchase
- Replatform (Cloud Migration & Modernization hybrid)
- Refactor-Rearchitect (App Modernization)
Notice how Cloud Migration and App Modernization are on different ends of the migration strategy scale.
There are many challenges and risks when planning a migration strategy and choosing which strategy best fits your needs. Security, staff training, performance expectations, cloud vendors, and cost management are some of the considerations needed when selecting a migration strategy.
My experience has shown me that applications that are migrated via "Lift & Shift" are easily recognized or have specific characteristic that tag them for a straight Cloud Migration. App Modernization is a different animal and comes with a huge amount of risk as you start talking about modernizations.
My developer side of me wants to go full-throttle and decide to "Refactor/Rearchitect." Experience has taught me differently and to consider a hybrid approach or "Replatform". This is really true when dealing with large enterprise and business critical applications. Customers will likely require cloud training and fundamental acceptance of a new development paradigm that includes DevOps.
"Replatforming" lets us get to the cloud quickly and allow the customer to transition while small pieces and parts of the application can be refactored to take advantage of the cloud. I believe this strategy has far less risks then trying to refactor the entire application in a single instance.
No two applications or customers are the same and we must always do the proper investigation and make all the necessary considerations. It is about strategic partnerships, communication, and consistent value delivery.