IBM CIO organization’s application modernization journey: Mono2Micro

8 January 2024

3 min read

Legacy architectures of monolithic applications are difficult to change, expensive to maintain and might pose business risks. In December 2022, Southwest airlines cancelled more than 13,000 flights due to outdated software systems and IT infrastructure (link resides outside ibm.com). 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 productivity and support the accelerated delivery of new features and functions.

In our last blog post, we outlined our phased modernization approach, starting with runtime and operational modernization and then performing architectural modernization, refactoring monoliths into microservices. In this blog, we will do a deep dive into the architectural modernization of the Java™ 2 Platform, Enterprise Edition (J2EE) applications and explain how the IBM Mono2Micro™ tool accelerated the transformation.

The following diagram depicts the generic J2EE architecture of a monolithic application. The different components—client-side UI, server-side code and database logic—are tightly coupled and interdependent. These apps are deployed as a single unit and often result in longer churn times for small changes.

In architectural modernization, the 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 accelerated the transformation of monolithic applications 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 1 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.

In summary, modernization tools such as IBM Mono2Micro and Cloud Transformation Advisor drove faster transformation and promoted cost efficiency. However, real differentiators are:

  • Platform: Right-sizing our infrastructure from bloated on-prem virtual machines to cloud-native containers
  • People: Building a 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.

 

Author

Jay Talekar

STSM, App and Data Modernization

Sachin Avasthi

STSM, Lead Architect for Application Modernization

Insights you can’t miss. Subscribe to our newsletters.

Go beyond the hype with expert news on AI, quantum computing, cloud, security and much more.

Subscribe today