Differences in performance, scalability, and cost of using microservice and monolithic architecture
Status:: 🟩
Links:: Microservices vs. Monolith
Metadata
Authors:: Okrój, Szymon; Jatkiewicz, Przemysław
Title:: Differences in performance, scalability, and cost of using microservice and monolithic architecture
Date:: 2023
Publisher:: Association for Computing Machinery
URL:: https://dl.acm.org/doi/10.1145/3555776.3578725
DOI:: 10.1145/3555776.3578725
Okrój, S., & Jatkiewicz, P. (2023). Differences in performance, scalability, and cost of using microservice and monolithic architecture. Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing, 1038–1041. https://doi.org/10.1145/3555776.3578725
A microservices-based architecture is a set of small components that communicate with each other using a programming language-independent API [1]. It has been gaining popularity for more than a decade. One of its advantages is greater agility in software development and following modern, agile software development practices [2]. The article presents an experimental study. Two applications with the same business logic and different architecture were developed. Both applications were tested using prepared test cases on the local computer of one of the authors and the Microsoft Azure platform. The results were collected and compared using the JMeter tool. In almost all cases, the monolithic architecture proved to be more efficient. The comparable performance of both architectures occurred when queries were handled by the business logic layer for a relatively long time.
Notes & Annotations
Color-coded highlighting system used for annotations
📑 Annotations (imported on 2024-03-25#11:11:06)
Potential problems include difficult management of communication between services, problems with distributed transactions, and difficulties in integration testing of services. There is also the danger of too much service granularity, leading to so-called nano services, i.e. services in which the communication and maintenance overhead is greater than their utility. Microservices architecture is currently the subject of many studies examining whether it contributes to the performance of web services. There are already works that confirm this, as well as works that deny it [4–10].
[4] T. Ueda, T. Nakaike and M. Ohara, Workload characterization for microservices, 2016. IEEE International Symposium on Workload Characterization (IISWC), (1-10). DOI: 10.1109/IISWC.2016.7581269.
[5] H. Knoche. 2016. Sustaining runtime performance while incrementally modernizing transactional monolithic software towards microservices. In 7th ACM/SPEC on Inter. Conf. on Performance Engineering (121-124)
[6] G. Blinowski, A. Ojdowska and A. Przybyłek, 2022. Monolithic vs. Microservice Architecture: A Performance and Scalability Evaluation, in IEEE Access, vol. 10, (20357-20374). DOI: 10.1109/ACCESS.2022.3152803.
[7] J. Soldani, D. A. Tamburri, W.J. Heuvel. 2018. The pains and gains of microservices: A Systematic grey literature review, J Syst Softw 146, 215-232.
[8] F. Auer, V. Lenarduzzi, M. Felderer, D. Taibi. 2021. From monolithic systems to Microservices: An assessment framework, Information and Software Technology, Volume 137, DOI: https://doi.org/10.1016/j.infsof.2021.106600.
[9] B. Saman. 2017. Monitoring and analysis of microservices performance. Journal of Computer Science and Control Systems, 10(1), 19.
[10] I. Shabani, E. Mëziu, B. Berisha and T. Biba. 2021. Design of modern distributed systems based on microservices architecture. vol, 12, 153-159.
The monolithic architecture still performs much better than microservices, until we scale the microservices architecture horizontally to three machines.