Cromlech: Semi-Automated Monolith Decomposition Into Microservices

被引:3
作者
Quattrocchi, Giovanni [1 ]
Cocco, Davide [1 ]
Staffa, Simone [1 ]
Margara, Alessandro [1 ]
Cugola, Gianpaolo [1 ]
机构
[1] Politecn Milan, Dipartimento Elettron Informaz & Bioingn, I-20133 Milan, Italy
关键词
Microservice architectures; Costs; Computer architecture; Semantics; Optimization; Software systems; Manuals; Service decomposition; service modeling; software architectures; microservice architecture;
D O I
10.1109/TSC.2024.3354457
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Microservices architectures conceive an application as a composition of loosely-coupled sub-systems that are developed, deployed, maintained, updated, and scaled independently. Compared to monoliths, microservices speed up evolution and increase flexibility. For these reasons they are becoming the reference architecture for many practitioners. A key challenge to embrace a microservices architecture is how to decompose an application into microservices: a choice that deeply affects all subsequent development phases in ways that are difficult to foresee and evaluate. Without any tool to support their reasoning, developers may erroneously evaluate the various alternatives, leading to inaccurate decomposition choices that would result in increased development, operations, and maintenance costs. This paper tackles the problem with Cromlech, a semi-automatic tool to decompose a software system into microservices. Cromlech (i) takes in input a high-level model of the system in terms of functionalities and data entities accessed by those functionalities, (ii) formulates decomposition as an optimization problem, and (iii) outputs a proposed placement of functionalities and data onto microservices, using a visual representation that helps reasoning on the resulting architecture. Cromlech evaluates design concerns, communication overheads, data management requirements, opportunities and costs of data replication. Our evaluation on a real-world industrial application shows that Cromlech consistently delivers more efficient solutions than simple heuristics and state-of-the-art approaches, and provides useful insights to developers.
引用
收藏
页码:466 / 481
页数:16
相关论文
共 29 条
[1]   Microservices migration patterns [J].
Balalaie, Armin ;
Heydarnoori, Abbas ;
Jamshidi, Pooyan ;
Tamburri, Damian A. ;
Lynn, Theo .
SOFTWARE-PRACTICE & EXPERIENCE, 2018, 48 (11) :2019-2042
[2]   Microservices Identification Through Interface Analysis [J].
Baresi, Luciano ;
Garriga, Martin ;
De Renzis, Alan .
SERVICE-ORIENTED AND CLOUD COMPUTING (ESOCC 2017), 2017, 10465 :19-33
[3]  
Bellemare A., 2020, Building event-driven microservices: leveraging organizational data at scale
[4]  
Biemann C., 2006, P 1 WORKSH GRAPH BAS, P73
[5]   From Monolith to Microservices: A Dataflow-Driven Approach [J].
Chen, Rui ;
Li, Shanshan ;
Li, Zheng .
2017 24TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2017), 2017, :466-475
[6]   Attributes Assessing the Quality of Microservices Automatically Decomposed from Monolithic Applications [J].
Cojocaru, Michel-Daniel ;
Uta, Alexandru ;
Oprescu, Ana-Maria .
2019 18TH INTERNATIONAL SYMPOSIUM ON PARALLEL AND DISTRIBUTED COMPUTING (ISPDC 2019), 2019, :84-93
[7]   Architecting with microservices: A systematic mapping study [J].
Di Francesco, Paolo ;
Lago, Patricia ;
Malavolta, Ivano .
JOURNAL OF SYSTEMS AND SOFTWARE, 2019, 150 :77-97
[8]  
Dragoni N., 2017, Present and Ulterior Software Engineering, P195, DOI [DOI 10.1007/978-3-319-67425-4_12, 10.1007/978-3-319-67425-4_12]
[9]   Microservices Migration in Industry: Intentions, Strategies, and Challenges [J].
Fritzsch, Jonas ;
Bogner, Justus ;
Wagner, Stefan ;
Zimmermann, Alfred .
2019 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2019), 2019, :481-490
[10]   CONVERTING 0-1 POLYNOMIAL PROGRAMMING PROBLEM TO A 0-1 LINEAR PROGRAM [J].
GLOVER, F ;
WOOLSEY, E .
OPERATIONS RESEARCH, 1974, 22 (01) :180-182