kirancodes.me
To Proof Maintenance & Beyond!

Mono2Micro: an AI-based toolchain for evolving monolithic enterprise applications to a microservice architecture

Anup K. Kalia, Jin Xiao, Chen Lin, Saurabh Sinha, John J. Rofrano, Maja Vukovic, Debasish Banerjee

Abstract

Mono2Micro is an AI-based toolchain that provides recommendations for decomposing legacy web applications into microservice partitions. Mono2Micro consists of a set of tools that collect static and runtime information from a monolithic application and process the information using an AI-based technique to generate recommendations for partitioning the application classes. Each partition represents a candidate microservice or a grouping of classes with similar business functionalities. Mono2Micro takes a temporo-spatial clustering approach to compute meaningful and explainable partitions. It generates two types of partition recommendations. First, it computes business-logic-seams-based partitions that represent a desired encapsulation of business functionalities. However, such a recommendation may cut across data dependencies between classes, accommodating which could require significant application updates. To address this, Mono2Micro computes natural-seams-based partitions, which respect data dependencies. We describe the set of tools that comprise Mono2Micro and illustrate them using a well-known open-source JEE application.

BibTeX
@inproceedings{Kalia-al:FSE20,
  author    = {Anup K. Kalia and
               Jin Xiao and
               Chen Lin and
               Saurabh Sinha and
               John J. Rofrano and
               Maja Vukovic and
               Debasish Banerjee},
  title     = {{Mono2Micro:} an {AI-based} toolchain for evolving monolithic enterprise applications to a microservice architecture},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {1606--1610},
  publisher = {{ACM}},
  year      = {2020},
}

Related papers