From monolithic to microservice architecture: an automated approach based on graph clustering and combinatorial optimization

被引:5
作者
Filippone, Gianluca [1 ]
Mehmood, Nadeem Qaisar [1 ]
Autili, Marco [1 ]
Rossi, Fabrizio [1 ]
Tivoli, Massimo [1 ]
机构
[1] Univ Laquila, Dept Informat Engn Comp Sci & Math, Laquila, Italy
来源
2023 IEEE 20TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE, ICSA | 2023年
关键词
Terms microservices; architecture migration; system decomposition; graph clustering; combinatorial optimization; COMMUNITY STRUCTURE;
D O I
10.1109/ICSA56044.2023.00013
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Migrating from a legacy monolithic system to a microservice architecture is a complex and time-consuming process. Software engineers may strongly benefit from automated support to identify a high-cohesive and loose-coupled set of microservices with proper granularity. The automated approach proposed in this paper extracts microservices by using graph clustering and combinatorial optimization to maximize cohesion and minimize coupling. The approach performs static analysis of the code to obtain a graph representation of the monolithic system. Then, it uses graph clustering to detect high-cohesive communities of nodes using the Louvain community algorithm. In parallel, the tool clusters the domain entities (i.e., classes representing uniquely identifiable concepts in a system domain) within bounded contexts to identify the required service granularity. Finally, it uses combinatorial optimization to minimize the coupling, hence deriving the microservice architecture. The approach is fully implemented. We applied it over four different monolithic systems and found valuable results. We evaluated the identified architectures through cohesion and coupling metrics, along with a comparison with other state-of-the-art approaches based on features such as granularity level, number of produced services, and methods applied. The approach implementation and the experimental results are publicly available.
引用
收藏
页码:47 / 57
页数:11
相关论文
共 42 条
[31]   Finding and evaluating community structure in networks [J].
Newman, MEJ ;
Girvan, M .
PHYSICAL REVIEW E, 2004, 69 (02) :026113-1
[32]  
Newman S., 2021, Building Microservices: Designing Fine-Grained Systems
[33]   From a Monolith to a Microservices Architecture: An Approach Based on Transactional Contexts [J].
Nunes, Luis ;
Santos, Nuno ;
Rito Silva, Antonio .
SOFTWARE ARCHITECTURE, ECSA 2019, 2019, 11681 :37-52
[34]   Tool Support for the Migration to Microservice Architecture: An Industrial Case Study [J].
Pigazzini, Ilaria ;
Fontana, Francesca Arcelli ;
Maggioni, Andrea .
SOFTWARE ARCHITECTURE, ECSA 2019, 2019, 11681 :247-263
[35]   A service graph based extraction of microservices from monolith services of service-oriented architecture [J].
Raj, Vinay ;
Ravichandra, Sadam .
SOFTWARE-PRACTICE & EXPERIENCE, 2022, 52 (07) :1661-1678
[36]  
Richards M., 2015, Software Architecture Patterns
[37]   Towards Migrating Legacy Software Systems to Microservice-based Architectures: a Data-Centric Process for Microservice Identification [J].
Romani, Yamina ;
Tibermacine, Okba ;
Tibermacine, Chouki .
2022 IEEE 19TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE COMPANION (ICSA-C 2022), 2022, :15-19
[38]   From Monolithic Architecture Style to Microservice one Based on a Semi-automatic Approach [J].
Selmadji, Anfel ;
Seriai, Abdelhak-Djamel ;
Bouziane, Hinde Lilia ;
Mahamane, Rahina Oumarou ;
Zaragoza, Pascal ;
Dony, Christophe .
IEEE 17TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE (ICSA 2020), 2020, :157-168
[39]   From legacy to microservices: A type-based approach for microservices identification using machine learning and semantic analysis [J].
Trabelsi, Imen ;
Abdellatif, Manel ;
Abubaker, Abdalgader ;
Moha, Naouel ;
Mosser, Sebastien ;
Ebrahimi-Kahou, Samira ;
Gueheneuc, Yann-Gael .
JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2023, 35 (10)
[40]  
Tyszberowicz Shmuel, 2018, Dependable Software Engineering. Theories, Tools, and Applications. 4th International Symposium, SETTA 2018. Proceedings: Lecture Notes in Computer Science (LNCS 10998), P50, DOI 10.1007/978-3-319-99933-3_4