一句话:提出 Mono2Micro 工具链,用静态/运行时信息与 AI 时空聚类为单体应用推荐两类微服务划分。
针对遗留单体 Web 应用向微服务架构演进时难以确定合理服务边界的问题,Mono2Micro 提出一套基于 AI 的工具链。该工具链从单体应用收集静态与运行时信息,采用时间-空间聚类技术对应用类进行划分,生成可解释的候选微服务分区。它输出两类推荐:基于业务逻辑接缝的划分表示理想的业务功能封装,但可能割裂类间数据依赖,导致较大改造;基于自然接缝的划分则尊重数据依赖。作者描述了组成 Mono2Micro 的工具集,并以一个知名开源 JEE 应用为例进行说明。
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.
DOI 原文 ·
@inproceedings{paperbot5792,
title = {Mono2Micro: an AI-based toolchain for evolving monolithic enterprise applications to a microservice architecture},
author = {Anup K. Kalia and Jin Xiao and Chen Lin and Saurabh Sinha and John Rofrano and Maja Vukovic and Debasish Banerjee},
booktitle = {FSE},
year = {2020},
doi = {10.1145/3368089.3417933}
}