How to Upgrade Legacy Systems to Compete in the Cloud Age
Legacy modernization is getting a lot of attention from IT organizations. Research shows that the global market will reach $24.8 billion by 2025— growing 17 percent each year.
But, upgrading legacy systems isn’t a point-in-time project. It’s best done over time by following an analysis of the organization’s entire application portfolio.
How to determine a legacy modernization strategy
Legacy applications often have interdependencies that aren’t evident on the surface. You should never modernize by starting with the oldest programs and working forward.
Instead, start with the programs that can stand on their own and won’t take down others if they’re changed. An emerging category of tools called enterprise complexity analysis can help by digging into the code and finding those dependencies. While the tools are expensive, they are often well worth it for companies with large legacy portfolios.
Upgrading legacy systems also isn’t an either/or proposition. Gartner defines seven different types of modernization. The most basic is to encapsulate data and functions to make them available as services via an API—a process that doesn’t need to touch the code at all.
More involved options include:
- Redeploying the application to cloud infrastructure unchanged (“lifting and shifting”)
- Migrating it to a new runtime platform (such as a software container)
- Restructuring its existing code to optimize it
- Replacing or rebuilding it from scratch
Even the most basic approach can help businesses find greater scalability and access new functions in the cloud.
5 candidates for legacy modernization
There is no one-size-fits-all strategy for upgrading your legacy systems. Specific considerations will apply based on the type of software.
Below are five of the most common modernization examples with suggested strategies to support the updates.
1. Antiquated systems
Antiquated systems are ones that the organization built from scratch back in the days of mainframes and COBOL. These are the most challenging applications to modernize, and doing so may not even be a good idea.
If the system works well and isn’t a liability to the organization, it’s often best to leave it alone. Instead, it may be useful to gather data and functions to expose as APIs while you look for more modern packaged alternatives.
2. Applications on commodity servers
Virtualizing X86-based hardware running Linux, Windows, or Unix can help your organization scale resources as needed and optimize the use of available hardware.
Virtualization increases server utilization rates in typical data center settings from less than 20 percent to more than 70 percent.
You can also shift virtualized applications to the cloud. All major public cloud providers support the most popular virtualization platforms.
An alternative is to encapsulate applications in software containers such as Docker. Containers wrap applications and their dependent components, like system libraries and settings, together in a single package. This can be shared and stored in a repository.
In both the virtualization and container scenarios, the application functionality isn’t disturbed. But you gain greater flexibility in terms of the environment and allocated resources.
3. Business processes
While business processes aren’t software, they’re often included in applications that involve workflow automation and document management.
This can be a liability if:
- The processes were never optimized
- The business has changed
- Technology has made it possible to improve them
Business process analysis is a method that helps examine existing processes to find new efficiencies. Many tools are available to automate this work. Users can visualize business flows using drag-and-drop tools or receive automated advice on how to improve them.
Robotic process automation (RPA) is part of a rapidly growing category of tools called hyperautomation. These tools work to automate routine human tasks, such as keying in data from printed documents.
Other forms of hyperautomation include:
- Low-code application development
- Event brokers
- Document capture software
- Process discovery
- Predictive decision modeling
All are useful in streamlining and automating processes.
4. API integration
This integration exposes application services and data in ways that can be consumed by other software.
For example, the credit card approval process within an existing application can be encapsulated and exposed as an API. Many tools are available to retrofit aging applications with APIs, enabling you to modernize gradually over time. This is an easy way to extend the life of old software while you write or install something more modern.
5. Enterprise service bus (ESB)
An ESB orchestrates the exchange of services between applications. It allows applications to subscribe to messages based on simple rules and provides a standard way to distribute services.
ESBs have been around for a long time, but the concept has been rejuvenated as cloud computing has changed the way we build software.
Modern cloud applications consist of loosely coupled software functions that are assembled on the fly. An ESB enables developers to enhance and extend functionality by plugging in new services.
For example, they can build a new user interface using cloud services and connect to a legacy back-end system for processing via APIs.
Packaged applications
Client-server software was all the rage in the 1990s. But now software-as-a-service (SaaS) delivered through the cloud has surpassed that popularity.
This is a problem if you’ve invested resources into building applications based on your legacy platforms. This is especially true since many, such as Lotus Notes, used a proprietary file system and scripting language.
In markets with considerable consolidation, such as customer relationship management, most acquiring companies have worked hard to provide customers with a migration path for older applications.
But before shifting away from client-server software, see whether a comparable cloud-native application has better functionality. If the legacy data is in an SQL-compliant database, then data migration shouldn’t be a problem.
What if the client-server application was heavily customized or built with proprietary development tools? It’s best to seek the help of a specialty integrator or take the hit and rebuild those functions from scratch.
Since most major applications are now available in the cloud, it may be possible to address this problem by recoding previous modifications using APIs to separate them from the core application. Businesses then benefit from enhancements to the base package and maintain their customizations.
DevOps in the cloud
The Agile development technique DevOps is the favorite option for building applications in the cloud. That doesn’t mean legacy methods like the waterfall model don’t have value. But top-down structure and rigid processes don’t lend themselves to rapid functional evolution.
DevOps encourages:
- Close collaboration between developers and business users
- Rapid iteration with daily code releases
- Continuous feedback
- Extensive use of services
Developers can provision their own infrastructure and deliver software in containers for portability.
Don’t get shackled by legacy chains. Enterprise application modernization options are proliferating, and costs are coming down. There has never been a better time to revisit your software portfolio with the goal of bringing it into the cloud computing age.