Legacy architectures of monolithic applications are difficult to change, expensive to maintain and may pose business risks. In December 2022, Southwest airlines cancelled more than 13,000 flights due to outdated software systems and IT infrastructure. This meltdown resulted in major losses for the airline company, damaging brand reputation. In contrast, Netflix pioneered the microservices architecture and is a market leader in online streaming, having more than 250 million subscribers across more than 200 countries.
Application modernization allows teams to develop reusable services that will ultimately increase the productivity and support accelerated delivery of new features and functions.
In our last blog post, we outlined our phased modernization approach, starting with runtime/operational modernization and then performing architectural modernization, refactoring monolith into microservices. In this blog, we will do a deep dive into architectural modernization of Java™ 2 Platform, Enterprise Edition (J2EE) applications and explain how IBM Mono2Micro™ tool accelerated the transformation.
The following diagram depicts generic J2EE architecture of a monolithic application. The different components — client-side UI, server-side code and database logic — are tightly coupled and are interdependent. These apps are deployed as a single unit and often result in longer churn time for small changes.
In architectural modernization, the very first step is to decouple client-side UI from server-side components and change the data exchange mechanism from Java objects to JSON. Backend for Front-End (BFF) services make it easier to convert Java objects to JSON or vice-versa. With the front end and backend separation, they can be modernized and deployed independently.
Next step in architectural modernization is to decompose backend code into individually deployable macroservices.
IBM Mono2Micro Tool accelerated the transformation of monolithic application into microservices. IBM Mono2Micro is an AI-based, semi-automated toolset that uses novel machine learning algorithms and a first-of-its-kind code generation technology to assist you in that refactoring journey to full or partial microservices. It analyzes the monolithic application in both a static and dynamic fashion and then provides recommendations for how the monolithic application can be partitioned into groups of classes that can become potential microservices
Here is how Mono2Micro works:
For one of the large financing applications in the CIO portfolio, Mono2Micro provided insights into the code complexity, uncovering the dependencies among classes across partitions and their interactions.
Mono2Micro saved more than 800 hours of manual effort to assess, redesign and develop the microservices architecture. Setting up Mono2Micro may take 3–4 hours to understand the different components and how these components work together to refactor your monolith. But it’s worth investing a few hours to save hundreds of hours for transforming your monolith to deployable microservices.
In nutshell, modernization tools like IBM Mono2Micro and Cloud Transformation Advisor drove faster transformation and promoted cost efficiency, but real differentiators are:
- Platform: Right sizing our infrastructure from bloated on-prem virtual machines to cloud-native containers
- People: Building community of developers to collaborate and create a future-ready culture
Modernization fosters innovation with business agility, enhances system security and simplifies data management. Most importantly, it improves developer productivity while providing cost-efficiency, resiliency and improved customer experience.