Most applications can be modernized in some way due to continuous technolgogy evolution. It could simply be improving the deployment process or it could be a larger effort to redesign the entire software architecture.
There are prerequisite activities that organizations should complete prior to completing actual application modernization practices.
Assess the infrastructure and application environments.
Complete an accurate inventory of their workloads. Ensure this includes how they are related and where applications are dependent on another.
Modernizing your data center can be broken down into discrete decisions about the applications that power your organization. With the application and workload inventory properly cataloged and dependencies identified, your organization now must decide the speed at which you will address your modernization efforts. The time needed does not always equal the allotted time to complete a modernization project. These business constraints must be identified and will influence which method of modernization you can take.
Let’s revisit the different application modernization methods:
Retain means leaving workloads in a private cloud environment.
Retire means decommissioning workloads and/or converting to SaaS.
Rehost / Migrate involves either changing the hypervisor. (e.g., migrate applications from one virtualized environment to another) which is known as Rehost or moving an application without changing the underlying hypervisor or application at a source code level (e.g., migrate VMs from one virtualized environment to another without requiring changes) which is known as Relocate.
Refactor / Build involves changing the application at the source code level. Typically, applications are rewritten to take advantage of cloud microservices architecture and incorporate new services such as IoT, machine learning, and others.
Replatform involves changing the operating system, such as going from Windows to Linux, modifying the application middleware, such as going from a self-managed database to a cloud provider-managed database or from a virtual machine to a container image.