Breaking Down Monoliths: A Graph Based Approach to Microservices Migration
Keywords:
Microservices, Monolithic, Clustering Algorithm, Microservices Decomposition, Microservices IdentificationAbstract
Introduction: The software industry has increasingly transitioned from Monolithic Architecture (MA) to Microservices Architecture (MSA) due to the significant advantages offered by MSA. A crucial first step in this migration process is the identification of suitable microservices.
Novelty Statement: This work aims to introduce an automated method for more effectively identifying potential microservices within monolithic applications.
Materials and Methods: Our approach leverages the source code to construct a frequency-based class dependency graph through graph analysis techniques. A clustering algorithm is then applied to this graph to identify optimal candidate microservices.
Results and Discussion: We evaluate the effectiveness of the proposed approach using several metrics, including the number of microservices, Newman-Girvan Modularity (NGM), and F1-Score. The results demonstrate that the approach accurately identifies candidate microservices, achieving an average F1 score of 0.88 and an average NGM score of 0.526.
Concluding Remarks: The proposed approach proves to be an effective tool for assisting developers in migrating from MA to MSA, facilitating a more streamlined transition process.
References
J. Fritzsch, J. Bogner, A. Zimmermann, and S. Wagner, “From Monolith to Microservices: A Classification of Refactoring Approaches,” Lect. Notes Comput. Sci. (including Subser. Lect. Notes Artif. Intell. Lect. Notes Bioinformatics), vol. 11350 LNCS, pp. 128–141, Jul. 2018, doi: 10.1007/978-3-030-06019-0_10.
J. Kazanavicius and D. Mazeika, “Migrating Legacy Software to Microservices Architecture,” 2019 Open Conf. Electr. Electron. Inf. Sci. eStream 2019 - Proc., Apr. 2019, doi: 10.1109/ESTREAM.2019.8732170.
Y. Abgaz et al., “Decomposition of Monolith Applications Into Microservices Architectures: A Systematic Review,” IEEE Trans. Softw. Eng., vol. 49, no. 8, pp. 4213–4242, Aug. 2023, doi: 10.1109/TSE.2023.3287297.
D. Kuryazov, D. Jabborov, and B. Khujamuratov, “Towards Decomposing Monolithic Applications into Microservices,” 14th IEEE Int. Conf. Appl. Inf. Commun. Technol. AICT 2020 - Proc., Oct. 2020, doi: 10.1109/AICT50176.2020.9368571.
L. De Lauretis, “From monolithic architecture to microservices architecture,” Proc. - 2019 IEEE 30th Int. Symp. Softw. Reliab. Eng. Work. ISSREW 2019, pp. 93–96, Oct. 2019, doi: 10.1109/ISSREW.2019.00050.
Z. Ren et al., “Migrating web applications from monolithic structure to microservices architecture,” ACM Int. Conf. Proceeding Ser., Sep. 2018, doi: 10.1145/3275219.3275230.
A. F. A. A. Freire, A. F. Sampaio, L. H. L. Carvalho, O. Medeiros, and N. C. Mendonça, “Migrating production monolithic systems to microservices using aspect oriented programming,” Softw. Pract. Exp., vol. 51, no. 6, pp. 1280–1307, Jun. 2021, doi: 10.1002/SPE.2956.
K. Sellami, M. A. Saied, and A. Ouni, “A Hierarchical-DBSCAN Method for Extracting Microservices from Monolithic Applications,” pp. 11–2022, Jun. 2022, doi: 10.1145/3530019.3530040.
H. Ren, Q. H., Li, S. L., Qiao, “Method of Refactoring a Monolith into Micro-services,” J. Softw., vol. 13, no. 12, pp. 646–653, 2018.
J. Kazanavičius and D. Mažeika, “The Evaluation of Microservice Communication While Decomposing Monoliths,” Comput. INFORMATICS, vol. 42, no. 1, pp. 1-36–1–36, May 2023, doi: 10.31577/CAI_2023_1_1.
A. Selmadji, A. D. Seriai, H. L. Bouziane, R. Oumarou Mahamane, P. Zaragoza, and C. Dony, “From monolithic architecture style to microservice one based on a semi-automatic approach,” Proc. - IEEE 17th Int. Conf. Softw. Archit. ICSA 2020, pp. 157–168, Mar. 2020, doi: 10.1109/ICSA47634.2020.00023.
O. Al-Debagy and P. Martinek, “Dependencies-based microservices decomposition method,” Int. J. Comput. Appl., vol. 44, no. 9, pp. 814–821, 2022, doi: 10.1080/1206212X.2021.1915444.
“An Innovative Methodology for Transitioning from Monolith to Microservices.” Accessed: Jul. 31, 2024. [Online]. Available: http://www.icicel.org/ell/contents/2023/4/el-17-04-10.pdf
M. Kamimura, K. Yano, T. Hatano, and A. Matsuo, “Extracting Candidates of Microservices from Monolithic Application Code,” Proc. - Asia-Pacific Softw. Eng. Conf. APSEC, vol. 2018-December, pp. 571–580, Jul. 2018, doi: 10.1109/APSEC.2018.00072.
O. Al-Debagy and P. Martinek, “A Microservice Decomposition Method Through Using Distributed Representation of Source Code,” Scalable Comput. Pract. Exp., vol. 22, no. 1, pp. 39–52, Feb. 2021, doi: 10.12694/SCPE.V22I1.1836.
O. Al-Debagy and P. Martinek, “A new decomposition method for designing microservices,” Period. Polytech. Electr. Eng. Comput. Sci., vol. 63, no. 4, pp. 274–281, 2019, doi: 10.3311/PPEE.13925.
M. Abdullah, W. Iqbal, and A. Erradi, “Unsupervised learning approach for web application auto-decomposition into microservices,” J. Syst. Softw., vol. 151, pp. 243–257, May 2019, doi: 10.1016/J.JSS.2019.02.031.
G. Mazlami, J. Cito, and P. Leitner, “Extraction of Microservices from Monolithic Software Architectures,” Proc. - 2017 IEEE 24th Int. Conf. Web Serv. ICWS 2017, pp. 524–531, Sep. 2017, doi: 10.1109/ICWS.2017.61.
N. Santos and A. Rito Silva, “A complexity metric for microservices architecture migration,” Proc. - IEEE 17th Int. Conf. Softw. Archit. ICSA 2020, pp. 169–178, Mar. 2020, doi: 10.1109/ICSA47634.2020.00024.
G. Rossetti, L. Pappalardo, and S. Rinzivillo, “A Novel Approach to Evaluate Community Detection Algorithms on Ground Truth,” Stud. Comput. Intell., vol. 644, pp. 133–144, 2016, doi: 10.1007/978-3-319-30569-1_10.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2024 50SEA
This work is licensed under a Creative Commons Attribution 4.0 International License.