January 8, 2024 By Jay Talekar
Sachin Avasthi
3 min read

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.

Learn more about IBM Cloud Pak for Applications
Was this article helpful?
YesNo

More from Automation

Generate Ansible Playbooks faster by using watsonx Code Assistant for Red Hat Ansible Lightspeed

2 min read - IBM watsonx™ Code Assistant is a suite of products designed to support AI-assisted code development and application modernization. Within this suite, IBM watsonx Code Assistant for Red Hat® Ansible® Lightspeed equips developers with generative AI (gen AI) capabilities, accelerating the creation of Ansible Playbooks. In early 2024, IBM watsonx Code Assistant for Red Hat Ansible Lightspeed introduced model customization and a no-cost 30-day trial. Building on this momentum, we are excited to announce the on-premises release of watsonx Code Assistant for Red Hat Ansible Lightspeed,…

4 key metrics to know when monitoring microservices applications running on Kubernetes

3 min read - Understanding how microservice applications works on Kubernetes is important in software development. In this article, we will discuss why observing microservice applications on Kubernetes is crucial and several metrics that you should focus on as part of your observability strategy. Why should you observe microservice health running on Kubernetes and what are the Kubernetes metrics you should monitor? Consider a large e-commerce platform that utilizes microservices architecture deployed on Kubernetes clusters. Each microservice, responsible for specific functionalities such as inventory…

Deployable architecture on IBM Cloud: A look at the IaC aspects of VPC landing zone 

5 min read - In the ever-evolving landscape of cloud infrastructure, creating a customizable and secure virtual private cloud (VPC) environment within a single region has become a necessity for many organizations. The VPC landing zone deployable architectures offers a solution to this need through a set of starting templates that can be quickly adapted to fit your specific requirements. The VPC Landing Zone deployable architecture leverages Infrastructure as Code (IaC) principles, that allow you to define your infrastructure in code and automate its…

IBM Newsletters

Get our newsletters and topic updates that deliver the latest thought leadership and insights on emerging trends.
Subscribe now More newsletters