Most organizations realize that application modernization is essential in order to thrive in the digital age, but the process of modernizing can be highly complex and difficult to execute. Factors such as rapidly growing application volume, diversity of app styles and architectures, and siloed infrastructure can all contribute to the challenging nature of modernization. To add to this complexity, there are multiple ways to go about modernizing each individual application. Depending on business and technical goals, you may opt to lift-and-shift some apps, while containerizing or even refactoring others. Either path then results in varying degrees of time commitments, app performance, and ultimately, comparing the level of effort needed to meet an organization’s anticipated return on investment.
The Five R's
The Five R's are a set of common modernization strategies that organizations can use when moving applications to modern infrastructure and cloud native application platforms. The first step to efficiently modernizing your application portfolio is to determine the best strategy for each app based on business needs and technical considerations (e.g., how much effort will be involved in modernizing the application and the target infrastructure platform for the app).
Refactoring refers to making significant source code changes to the application (rewriting the application or service), typically using cloud native technologies such as microservices and application programming interfaces (APIs)s. While the process can be complex and laborious, this strategy actually provides the most benefit for high-value systems and applications that require frequent updates and innovation.
Replatforming involves containerizing an application and moving it to a Kubernetes-based platform. There may be small code changes needed to take advantage of the new environment. This strategy is commonly implemented when moving applications running on virtual machines (VMs) to container-based apps running on a modern app platform or public cloud infrastructure.
Rehosting refers to changing the infrastructure or operation of an application without changing the application itself. This is often done to gain the cost benefits of the cloud when the rate of change to an application is low and wouldn’t benefit from refactoring or replatforming.
Retaining involves optimizing and retaining an application as-is. This strategy might be used when there is data that can’t be moved, or a modernization that can be postponed.
Retiring is when a traditional application is no longer used or replaced with an off-the-shelf software-as-a-service (SaaS) offering.
The relationship between time and value in your app modernization strategy
In most cases, the higher the business value of an application, the greater potential benefit there is to undergo more change. By refactoring primarily business-critical and high-value apps, you can maximize your team’s precious time while prioritizing the applications that have the most to gain from more flexible architectures and scalable infrastructure. Applications that remain unchanged for long periods of time and don’t hinder your company’s ability to innovate don’t need to be rewritten. When the goal is to increase IT efficiencies and decrease IT costs for apps requiring infrequent updates, you’ll be better off rehosting or replatforming these applications.
How to assess and disposition your portfolio
The main factors that play a critical role in a successful and actionable modernization strategy fall into three categories: technical, business, and organization/people. VMware helps organizations jumpstart app portfolio modernization by analyzing and prioritizing these considerations and more through service engagements like VMware App Navigator in our Rapid Portfolio Modernization program. By assessing and dispositioning your application portfolio, you can determine which of the Five R's will be the best course of action for each of your apps.
For technical factors, consider variables such as application framework and runtime, architecture design, dependencies, and integrations. Tools such as Application Transformer for VMware Tanzu and our Cloud Suitability Analyzer can help streamline this discovery and analysis. For business factors, consider elements like business criticality, licensing costs, and time-to-market factors. For organizational and people factors, consider domain expert availability, organizational and team structure, and calendar dependencies.
Ultimately, there are lots of facets to consider when deciding the best course of action for each application in your portfolio. But, by leveraging this framework with VMware as your partner, you can standardize and simplify your strategy to efficiently assess and disposition your portfolio.
Once you have determined which apps you want to refactor, replatform, and rehost, where do these apps go after they’re modernized? We call the new target infrastructure “landing zones,” which may include some combination of on-premises, public cloud(s), Kubernetes, VMs, platform as a service (PaaS), and bare metal. Because of the dynamic nature of applications and the complexities of enterprise IT budgets, choosing the right landing zones is rarely as simple as just identifying the least expensive option.
To determine the best landing zones for your apps, consider factors like data gravity, developer experience, potential cloud exit strategies, and implications to the mainframe.
How to get started
We’ve established what the Five R's are, the relationship between effort to change and expected value in app modernization, app disposition strategies, and how to decide on the right landing zones. But how do you get started on this app modernization path? Here’s a guideline:
Get buy-in: Make sure all the stakeholders for an application are brought into the modernization effort.
Set expectations: Provide as much visibility as possible into the time and effort that a modernization project will require. Avoid over-promising and under-delivering.
Restructure when needed: Prepare for your organizational structure to evolve as modernization efforts advance. Pay attention to how other companies have organized, but don’t just assume the same approach will work for you.
Prioritize your portfolio: Analyze your applications and divide them under the Five R's: refactor, replatform, rehost, retain, retire.
Look for patterns in your portfolio: Identify commonalities among your applications, looking for architectural technical design similarities.
Choose the right starting point: Pick one or a few small(ish) projects that will help you start on the right foot in terms of building skill, momentum, or both. Or, focus on one or a few groups of similar applications, selecting a representative application in each group to start with.
Make smart technology decisions: Don’t choose a set of technologies simply because it’s what the “cool kids” are using. Make sure your choices are right for your organization.
Break down monoliths: Plan carefully to decompose monolithic applications into more manageable pieces without worrying about satisfying any cloud native purity tests.
Pick platforms pragmatically: Base cloud and platform choices on the needs and capabilities of your organization.
Interested in following this guideline? VMware’s Rapid Portfolio Modernization program brings automated tooling and proven practices to execute upon each of these steps in a seamless and effective way.
Ultimately, the best app modernization path is one that aligns with your business goals, can produce results quickly, and is agile enough to evolve along with demands. The Five R's provide you with a framework to best disposition your apps in a way that reduces the overwhelming nature of app modernization.
Want to learn more about how to kickstart your application modernization efforts? Check out our eBook A Practical Approach to Application Modernization.