Getty Images/iStockphoto
How to perform an application modernization assessment
Walk through an application modernization assessment process step by step to make the most informed decisions about how to approach modernization. Learn how to get started.
Enterprises can employ many technologies and strategies when it comes to application modernization. The best approach depends on the goals an organization seeks to achieve.
That's why performing an application modernization assessment is a critical first step in app modernization. A modernization assessment helps determine how best to modernize apps as part of a move to the cloud or the adoption of other modernization technologies, such as containers and microservices.
What is application modernization?
Application modernization is the process of updating legacy applications to take advantage of modern technologies. The exact way to achieve this can vary widely.
In some cases, application modernization might involve making major changes to applications, such as overhauling a monolithic legacy app to use a nimbler microservices architecture or rewriting an entire app in a newer programming language that improves performance.
In other situations, app modernization might entail less dramatic changes, such as moving a monolith into containers to increase its portability without making significant changes to the underlying app.
The application modernization assessment
An application modernization assessment is a formal evaluation of a business's application requirements and priorities. It enables engineers, in conjunction with other stakeholders, to identify the goals they want to achieve by modernizing apps. From there, they can choose which modernization techniques to use. Teams can break the assessment into four stages to help guide them in their decision.
1. Business goal assessment
An application modernization assessment starts with determining which business goals the organization seeks to achieve via modernization. Never modernize apps just to modernize. Instead, have specific objectives in mind that are tied to business outcomes. Common business goals that drive app modernization include the following:
- Cost savings. App modernization can improve the cost-effectiveness of apps by moving them to environments with lower overall hosting costs.
- Performance improvement. Modernization might lead to better application response rates and availability, which benefits businesses by increasing the value that apps deliver.
- Enhanced security. In some cases, app modernization can improve security and reduce the risk of compliance or data privacy issues.
- Simplified management. Application modernization can reduce the time and effort that IT departments spend managing apps. It can lead to better business efficiency and improved use of staff resources.
An application modernization initiative could target all these goals or just some of them. Organizations should prioritize the goals that are most significant to them. If the budget is tight, for example, cost savings might be the primary reason to modernize apps. Or simplifying application management could be the top priority for those struggling to hire and retain IT staff.
2. Application characteristic assessment
Next, review existing applications to determine how they should improve to meet the goals. During this process, evaluate application characteristics and components like the following:
- Architectures. Which architectures do the applications use, and how might changing those architectures help achieve the set goals? For example, would it be beneficial to refactor a monolith to run as microservices?
- Deployment models. How are applications currently deployed? Are they running on physical servers, VMs or somewhere else? Will changing deployment technologies to something like containers help achieve the goals?
- Interfaces. How effective are the application interfaces at meeting user needs? Would overhauling them increase the value of the applications?
- Features. Do the applications require new features, or updates to existing features, to improve business outcomes? For instance, does a department require a type of functionality that's currently unavailable in a critical app?
- Performance. Do the applications meet performance requirements of their intended use cases? Do they respond quickly enough and achieve the necessary levels of availability?
Application traits might vary from one app to the next. The goal at this stage of the application modernization assessment is to identify the general application trends or deficiencies organizations want to improve. These trends should align with established business goals to drive the modernization process.
3. App identification and prioritization
Once organizations know the general ways in which they want to improve their apps, it's time to determine which specific apps to modernize and which ones to start with. Do this by creating a catalog of legacy apps. Then, review each app individually, and answer the following questions:
- To what extent will modernizing the app help achieve business goals?
- Which specific changes need to be made to the app to achieve those goals?
- How many resources are necessary to make the changes? These include developer time, cloud infrastructure and anything else required.
The answers to these questions enable teams to determine whether and how to go about modernizing each app in their inventory. Prioritize apps based on how much of an effect their modernization will have to achieve the goals, as well as how many resources are necessary to modernize them.
4. Technology assessment
Finally, decide which technologies are necessary to deploy into the modernized application environments. These choices reflect the decisions made in earlier stages of the assessment. For example, if teams decided to prioritize refactoring legacy apps to fit a microservices architecture, they'll want to deploy the refactored app using containers hosted on Kubernetes. If teams decided to rewrite application source code in a new language, they need to factor any associated libraries and frameworks into created environments.