Mono2Micro: A Practical and Effective Tool for Decomposing Monolithic Java Applications to Microservices

07/20/2021
by   Anup Kalia, et al.
0

In migrating production workloads to cloud, enterprises often face the daunting task of evolving monolithic applications toward a microservice architecture. At IBM, we developed a tool called Mono2Micro to assist with this challenging task. Mono2Micro performs spatio-temporal decomposition, leveraging well-defined business use cases and runtime call relations to create functionally cohesive partitioning of application classes. Our preliminary evaluation of Mono2Micro showed promising results. How well does Mono2Micro perform against other decomposition techniques, and how do practitioners perceive the tool? This paper describes the technical foundations of Mono2Micro and presents results to answer these two questions. To answer the first question, we evaluated Mono2Micro against four existing techniques on a set of open-source and proprietary Java applications and using different metrics to assess the quality of decomposition and tool's efficiency. Our results show that Mono2Micro significantly outperforms state-of-the-art baselines in specific metrics well-defined for the problem domain. To answer the second question, we conducted a survey of twenty-one practitioners in various industry roles who have used Mono2Micro. This study highlights several benefits of the tool, interesting practitioner perceptions, and scope for further improvements. Overall, these results show that Mono2Micro can provide a valuable aid to practitioners in creating functionally cohesive and explainable microservice decompositions.

READ FULL TEXT
research
10/28/2022

Technical Q A Site Answer Recommendation via Question Boosting

Software developers have heavily used online question and answer platfor...
research
10/30/2018

An architecture of open-source tools to combine textual information extraction, faceted search and information visualisation

This article presents our steps to integrate complex and partly unstruct...
research
05/04/2018

Characterizing the Usage and Impact of Java Annotations Over 1000+ Projects

As a kind of meta-data feature, annotations have been formally introduce...
research
12/14/2019

Automatic Observability for Dockerized Java Applications

Docker is a virtualization technique heavily used in industry to build c...
research
04/29/2021

MoonLight: A Lightweight Tool for Monitoring Spatio-Temporal Properties

We present MoonLight, a tool for monitoring temporal and spatio-temporal...
research
09/09/2023

A Full-fledged Commit Message Quality Checker Based on Machine Learning

Commit messages (CMs) are an essential part of version control. By provi...

Please sign up or login with your details

Forgot password? Click here to reset