Modernizing existing legacy applications is the first step in any organization's digital transformation roadmap. Other than preparing the groundwork for an agile, scalable and reliable IT infrastructure, it lays the foundation for taking advantage of the cloud for future operations. Any large-scale change must be beneficial from a business perspective, requiring a careful evaluation of the risk-to-reward ratios for all stakeholders.

Different approaches to application modernization

Depending on unique business requirements, there are multiple ways to approach application modernization, and we’re going to do an in-depth coverage of the basics.

Figure: Different approaches to modernize legacy applications

A brief overview of the various modernization approaches

Retire

Retire and decommission the application if it’s not currently in use

Retain

There's no inherent advantage to modernizing certain applications because of interdependencies, compliance and architectural limitations. It’s better to do nothing and retain them till a later period.

Rehost

Also called lift and shift, it’s a straightforward modernization route that shifts the application from its current infrastructure provider to a new hosting environment (cloud or on-premises)

Re-platform

Re-platforming is making changes to the platform while maintaining the integrity of the application code

Refactor

Make significant changes to the application code framework without shifting the base functionality

Rebuild

It’s a new build of an existing application with the same business function but in a different production environment

Reimagine

Conceptualize an existing application with a different business function and technological approach to enable alternate business outcomes

Organizations can take several technological routes to application modernization, depending on their technical skills, time-to-market, expected business outcomes and overall budget. A combination of automation, microservices, APIs and cloud services can accomplish the legacy transformation demands of most businesses. However, the design and implementation phase is all about developing the best possible roadmap that is justifiable both from technical and business perspectives.

Some of the key considerations that come into play while designing an application modernization strategy are:

User research

Research the user experience with the legacy application to understand primary pain points and leverage the existing behavioral data to direct modernization efforts.

Security and compliance

Evaluate how the security and compliance posture is going to be affected by any ongoing modernization attempts. There might be interdependencies based on the identity and access management protocols and the application architecture needs to be continuously tested for vulnerabilities, anomalies, and unstable instances. Systems to check regulatory compliance should always be in effect.

Application audit

This includes a comprehensive audit of the application’s infrastructure from both business and technical perspectives. From the technical side of things, it covers the development language, mapped dependencies, platform/OS, middleware products, node distribution and more. The business perspective considers the application’s target audience, uses cases and OpEx reduction.

Performance

Catalogue existing performance metrics and testing tools to establish benchmarking standards. Document the different phases of the deployment and rollout plan and record number of users, requests, latency, resource consumption and more.

Integration

Map out all existing and future integration flows between the application and third-party services to ensure transparency in the data being shared and ensure continuity during the post-modernization phase. If the application generates reports and analytics based on integrations, then document how the legacy transformation process will affect downstream applications.

DevOps

Document the existing DevOps program with a clear line of sight into collaborative tools, build and deployment pipelines, testing, CI/CD, release management and more.

Operational Resiliency

Develop a responsibility assignment matrix that’s RACI (responsible, accountable, consulted, and informed). It should include an emergency response process, response time, roles, and monitoring processes in case of an outage.

Review the application SLAs and evaluate backup, disaster recovery and failover contingencies for application infrastructure.

Serviceability

And last but not least, the application should be serviceable with clear log messages of any errors or anomalies. Document how the log messages are generated, what kind of insights they provide, triggering behaviors, remediation and traceability for maximum visibility into the backend services.

Where do most application modernization efforts fail?

Application modernization can take anything from 6 months to several years, depending on the size of the parent organization, the complexity of the architecture and the scope of the project. However, partly because of the sheer magnitude of the task, a lot of application modernization efforts are doomed from the get-go. The primary pain points of any application modernization program are:

Lack of clarity on business outcomes

Securing stakeholder engagement across multiple domains is one of the most important steps in any legacy transformation journey. All the involved parties must share the same expectations towards achieving a common set of goals. Set realistic targets, align everyone towards a roadmap and secure small wins along the way to continually establish and re-establish the importance of application modernization to all stakeholders.

Convoluted
approaches

Spaghetti code in legacy applications is a headache for everyone and there will be differing schools of thought on how to proceed with a modernization program. There needs to be a clear sense of direction as to which approach, or combination of approaches will be best from a business perspective. Going back and forth between different approaches can cause stakeholders to lose faith in the project, bleeding significant resources.

Declining interest over an extended period

Modernizing legacy applications, especially significant architectural changes (like refactoring) can take several years to complete and may suffer from unexpected setbacks and delays. An application modernization project that covers an organization’s entire IT portfolio is exceptionally complex and requires top-down involvement across multiple domains. If the COVID-19 pandemic has taught us anything, it’s that a lot can change in a year, and it’s important to secure corporate buy-in for the entirety of the project. Otherwise, investment might decline, and the transformation program might become less of a priority over time.

Performing the first assessment

According to a Gartner study, 62% of responding strategy leaders feel an overburdened legacy application cannot support current and future business models at the speed and scale necessary for their operating models. However, not all IT infrastructures are built equal, and as such, might require differing approaches to design and implement change on a large scale.

For mid to large-sized organizations with massive monolithic application architectures, modernization is not a straightforward process. With the legacy system running one or more mission-critical processes, a straightforward modernization plan might not always be feasible.

There are multiple factors that come into play:

  • How to reduce the number of interoperable systems?
  • How to increase communication and continuity among existing applications?
  • How to streamline existing IT processes to make them more change-positive?

Figure: The many paths to application modernization

During the assessment stage, it’s important to think big; cast a wide net from both technical and business point of views to understand the scope of the project and identify any obstacles, interdependencies, infrastructural limitation, user demands, and more.

However, the most important thing to keep in mind while modernizing legacy systems is to stick to what you know. You can’t modernize your entire architecture at once, and therefore, it’s important to prioritize smaller components and start from there. Secure top-down stakeholder engagement and take it one step at a time.

There will be unique challenges for every business depending on the existing application infrastructure. Combined with the primary pain points, the underlying architecture will primarily determine what approach to take for maximum net benefit within a particular time frame.

Design and implementation phase

After the initial assessment phase is over, it’s time to design and implement the best modernization pattern for the legacy application. It can be a singular approach or a combinational approach that be a mix of different approaches, delivered sequentially to target specific architectural components.

For example, a lift and shift to the cloud, combined with incremental changes to the storage platform and database families will have a more desirable output compared to a hurried rehosting and replatforming project done over a shorter period of time.

Similarly, migrating to the cloud before refactoring the application to enhance and improve the existing application is always more advantageous than making changes to an on-premises environment. Cloud environments are easier to commission for production purposes and provide access to the latest application development capabilities.

Next Steps

While application modernization is becoming more and more of a priority for businesses going forward, it’s neither easy to attempt, nor quick to conclude. Most organizations that need legacy transformation services lack the in-house expertise or the technical bandwidth to attempt a project of this scale on their own. On top of corporate investment and willpower to see the project through, most businesses need professional guidance to design and implement the best application modernization journey for their business needs.

Torry Harris Integration Solutions is a seasoned veteran in the field of legacy transformation, with a legacy to cloud-native kit designed to meet the modernization needs of businesses across multiple verticals.