Abstract
In the evolving landscape of software architecture, the shift from monolithic structures to agile, scalable microservices has revolutionized cloud-native application development. However, the inherent dynamism of microservices can lead to the inadvertent creation of unnecessary microservices, introducing complexity and inefficiency. Moreover, with a lack of control mechanisms in evolution, systems can lead to what is known as architecture degradation. This research ventures into the emerging domain of microservice-to-microservice transformation, a concept focused on optimizing existing cloud-native systems. We experiment with a machine learning methodology initially designed for monolith-to-microservices migration, adapting it to the complex microservices landscape, with a specific focus on the train-ticket application (Zhou in Association for Computing Machinery, https://doi.org/10.1145/3183440.3194991), which is an established system benchmark in the community. To identify the optimal microservice distribution, we employ a combination of the Variational Autoencoder and fuzzy c-means clustering. Our results demonstrate a close resemblance to the original application in terms of structural modularity. Though they fall short of achieving the ideal interface number exhibited by the original microservices, our findings highlight the potential of automated microservice composition, effectively narrowing the gap between human-designed and machine-generated microservices and advancing the field of software architecture.
Similar content being viewed by others
Data availibility
We have shared our open-source tools, datasets, and intermediate representations from involved tools through a third-party Zenodo package. The constructed train-ticket monolith can be found here: https://github.com/cloudhubs/train-ticket-monolith. The experiment code, results, and data extracted from the train-ticket project are available at https://zenodo.org/record/8417757.
Notes
Script for converting microservice to monolith: https://github.com/cloudhubs/train-ticket-monolith
Monolith version of the train-ticket system: https://github.com/cloudhubs/train-ticket-monolith.
Train-Ticket Selenium Tests: https://github.com/cloudhubs/microservice-tests/tree/main/Selenium.
References
Matias, T., et al.: Determining microservice boundaries: A case study using static and dynamic software analysis. CoRRabs/2007.05948 (2020). https://arxiv.org/abs/2007.05948
Riaz, M., Sulayman, M., Naqvi, H.: Architectural decay during continuous software evolution and impact of design for change on software architecture. In: Adv. Softw. Eng., pp. 119–126. Springer, Berlin (2009)
Bogner, J., Fritzsch, J., Wagner, S., Zimmermann, A.: Limiting technical debt with maintainability assurance - an industry survey on used techniques and differences with service- and microservice-based systems. In: 2018 IEEE/ACM International Conference on Technical Debt (TechDebt), pp. 125–133 (2018)
Lenarduzzi, V., Lomio, F., Saarimäki, N., Taibi, D.: Does migrating a monolithic system to microservices decrease the technical debt? J. Syst. Softw. 169, 110710 (2020)
Sooksatra, K., Maharjan, R., Cerny, T.: Monolith to microservices: Vae-based gnn approach with duplication consideration. In: 2022 IEEE International Conference on Service-Oriented System Engineering (SOSE), pp. 1–10 (2022)
Taibi, D., Systä, K.: From monolithic systems to microservices: a decomposition framework based on process mining (2019)
Chen, R., Li, S., Li, Z.: From monolith to microservices: A dataflow-driven approach. In: 2017 24th Asia-Pacific Software Engineering Conference (APSEC), pp. 466–475 (2017)
Zhou, X., et al.: Benchmarking microservice systems for software engineering research. Assoc. Comput. Mach. (2018). https://doi.org/10.1145/3183440.3194991
Chy, M., Sooksatra K., Cerny T.: Train-ticket: Monolith to microservices conversion benchmark. https://github.com/cloudhubs/train-ticket-monolith (2023)
Krause, A., Zirkelbach, C., Hasselbring, W., Lenga, S., Kröger, D.: Microservice decomposition via static and dynamic analysis of the monolith. CoRRabs/2003.02603 (2020). https://arxiv.org/abs/2003.02603
Auer, F., Lenarduzzi, V., Felderer, M., Taibi, D.: From monolithic systems to microservices: an assessment framework. Inform. Softw. Technol. 137, 106600 (2021)
Kalia, A. K., et al.: Mono2micro: A practical and effective tool for decomposing monolithic java applications to microservices. CoRRabs/2107.09698 (2021). https://arxiv.org/abs/2107.09698
Eski, S., Buzluca, F.: An automatic extraction approach: transition to microservices architecture from monolithic application. Assoc. Comput. Mach. (2018). https://doi.org/10.1145/3234152.3234195
Day, W., Edelsbrunner, H.: Efficient algorithms for agglomerative hierarchical clustering methods. J. Classif. 1, 7–24 (1984)
Abdullah, M., Iqbal, W., Erradi, A.: Unsupervised learning approach for web application auto-decomposition into microservices (2019)
Kalia, A.K., et al.: Mono2micro: an ai-based toolchain for evolving monolithic enterprise applications to a microservice architecture. Assoc. Comput. Mach. (2020). https://doi.org/10.1145/3368089.3417933
Desai, U., Bandyopadhyay, S., Tamilselvam, S.: Graph neural network to dilute outliers for refactoring monolith application. CoRRabs/2102.03827 (2021). https://arxiv.org/abs/2102.03827
Kipf, T. N., Welling, M.: Semi-supervised classification with graph convolutional networks. CoRRabs/1609.02907 (2016). http://arxiv.org/abs/1609.02907
Mathai, A., Bandyopadhyay, S., Desai, U., Tamilselvam, S.: Monolith to microservices: representing application software through heterogeneous GNN. CoRRabs/2112.01317 (2021). https://arxiv.org/abs/2112.01317
Zhang, C., Song, D., Huang, C., Swami, A., Chawla, N.V.: Heterogeneous graph neural network. Asso. Comput. Mach. (2019). https://doi.org/10.1145/3292500.3330961
Yedida, R., et al.: Partitioning cloud-based microservices (via deep learning) (2021)
Grandl, R.: A quick introduction to service weaver. https://serviceweaver.dev/blog/quick_intro.html (2023)
Desai, U., Bandyopadhyay, S., Tamilselvam, S.: Graph neural network to dilute outliers for refactoring monolith application. In: Proceedings of 35th AAAI Conference on Artificial Intelligence (AAAI’21). (2021)
Kingma, D. P., Welling, M.: Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114 (2013)
Bezdek, J.C., Ehrlich, R., Full, W.: Fcm: the fuzzy c-means clustering algorithm. Comput. Geosci. 10, 191–203 (1984)
Rahman, D., Taibi, MI.: A curated dataset of microservices-based systems. In: Joint Proceedings of the Summer School on Software Maintenance and Evolution. (CEUR-WS, 2019)
Li, B., et al.: Enjoy your observability: an industrial survey of microservice tracing and analysis. Emp. Softw. Eng. 27, 1–28 (2022)
Zhou, X., et al.: Huchard, M., Kästner, C. & Fraser, G. (eds) Delta debugging microservice systems. In: Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering, ASE 2018, Montpellier, France, September 3–7, 2018, pp. 802–807 (ACM, 2018). https://doi.org/10.1145/3238147.3240730
Walker, A., Laird, I., Cerny, T.: On automatic software architecture reconstruction of microservice applications. In: Inform. Sci. Appl., pp. 223–234. Springer, Singapore (2021)
Smith, S., et al.: Benchmarks for end-to-end microservices testing. In: 2023 IEEE International Conference on Service-Oriented System Engineering (SOSE), pp. 60–66 (2023)
Kodinariya, T.M., Makwana, P.R., et al.: Review on determining number of cluster in k-means clustering. Int. J. 1, 90–95 (2013)
Abdelfattah, A. S., Cerny, T., Taibi, D., Vegas, S.: Comparing 2d and augmented reality visualizations for microservice system understandability: a controlled experiment. In: 2023 IEEE/ACM 31st International Conference on Program Comprehension (ICPC), pp. 135–145 (2023)
Abdelfattah, A.S., et al.: Papadopoulos. In: Rademacher, F., Soldani, J. (eds.) End-to-End Test Coverage Metrics in Microservice Systems: An Automated Approach, pp. 35–51. Springer, Cham (2023)
Touvron, H., et al.: Llama 2: Open foundation and fine-tuned chat models. arXiv preprint arXiv:2307.09288 (2023)
Banks, T. W. J.L Gemma: introducing new state-of-the-art open models (2024)
Radford, A., et al.: Language models are unsupervised multitask learners. OpenAI blog 1, 9 (2019)
Funding
No funds, grants, or other support was received.
Author information
Authors and Affiliations
Contributions
Md Showkat Hossain Chy: Resources, Conceptualization, Methodology, Software, Data curation, Formal analysis and investigation, Writing-Original draft preparation. Korn Sooksatra: Resources, Formal analysis, and investigation, Data curation, Validation, Writing-Original draft preparation. Jorge Yero: Resources, Software, Validation. Tomas Cerny: Formal analysis and investigation, Supervision, Validation, Writing-Original draft preparation.
Corresponding author
Ethics declarations
Conflict of interest
On behalf of all authors, the corresponding author states that there is no Conflict of interest.
Research involving human and /or animals
Not applicable
Informed consent
Not applicable
Additional information
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Chy, M.S.H., Sooksatra, K., Yero, J. et al. Benchmarking Micro2Micro transformation: an approach with GNN and VAE. Cluster Comput (2024). https://doi.org/10.1007/s10586-024-04526-z
Received:
Revised:
Accepted:
Published:
DOI: https://doi.org/10.1007/s10586-024-04526-z