Publication
ESEC/FSE 2021
Conference paper

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

View publication

Abstract

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? In this paper, we describe the technical foundations of Mono2Micro and present 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 decompositions and tool efficiency. Our results show that Mono2Micro significantly outperforms state-of-the-art baselines in terms of 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 valuable aid to practitioners in creating functionally cohesive and explainable microservice decompositions.