David Egts, chief technologist for Red Hat public sector has some words of wisdom for Federal managers seeking ways to move from legacy applications to more agile environments: modernization is not just about adopting new technologies and practices, it is about what happens to the old ones.
Three application migration patterns are emerging as government agencies and commercial businesses attempt to modernize aging, mission-critical applications: Lift and Shift, Augment with New Layers, and Rewrite, Egts said. He noted that Red Hat’s PaaS Community of Practice leader, expounded on these approaches in a whitepaper, Making Old Applications New Again.
So, which approach is best? “There is no single right answer,” Egts said. It depends on the application, the business, and contextual factors, as well as what stage the applications are in their life cycle. However, for the best results, agencies should partner “with system integrators or vendors that can cover all three migrations, and join you in this journey,” Egts advised.
How do the three patterns work?
Lift and Shift
Lifting and shifting modernizes how existing applications are packaged and deployed, such as putting them into a container and then deploying them on a modern platform. For instance, using virtualization technology, the IT team can package an application along with its operating system and run the application as a virtual machine instead of on dedicated hardware.
Lifting and shifting doesn’t modernize the application. Egts compares it to putting new tires on an aging car. The car will drive better, maybe in the snow, but the new tires don’t address engine problems. Still, the lift-and-shift approach will get an organization running on a modern deployment platform, while giving the IT team time to rewrite the application later.
Lifting and shifting is usually the least expensive pattern to apply, but the approach is not appropriate for all applications. Applications that are locked into specific vendor solutions may be difficult to repackage, and older operating systems might not be supported by the latest deployment platforms.
Augment with New Layers
Augmentation with new layers is when features are added to a legacy application, such as a new front-end mobile app to a mainframe application. “You can take something that is old and give it a new skin,” Egts said. The aim of this approach is to help make existing application functionality accessible to new applications, and reduce development time and costs because the functionality does not have to be redeveloped.
As with lifting and shifting, the architecture of the existing application is unchanged, but augmenting with new layers uses existing functionality to create new applications and services using a current architecture. Augmenting with new layers can be costlier because it requires a development effort, but it can often be applied more quickly.
Rewriting is almost always the most expensive and time-consuming option, Egts noted. Rewriting an application is not the same as creating new applications from scratch. Instead, it’s the process of creating new functionality to replace and retire existing applications. “As part of an overall modernization strategy, rewriting can follow lifting and shifting and augmenting with new layers, and it is the only way to update the application architecture for a fully modern stack,” according to the Red Hat whitepaper.
Egts noted that unless the application is delivering new business value, it might be better to move to a new application or service. However, there are cases where rewriting might be the only option. For example, if the agency has very old applications that are running on operating systems and hardware that are no longer supported by the vendors, rewriting is the only valid approach. Another increasing problem, not having anyone with the skills to manage the older systems, can also be solved with rewriting.
In those scenarios, agency managers might want to look at the concept of microservices, an architectural style that structures an application as a collection of loosely coupled services, which implement business capabilities, Egts said. The microservice architecture enables the continuous delivery and deployment of large, complex applications.
App modernizations are not all about new–and it’s nice to have options…