journal article·2020-08-21Open access

From Monolithic Systems to Microservices: A Comparative Study of Performance

Freddy Tapia, Miguel Ángel Mora, Walter Fuertes, Hernán Aules, Edwin Flores, Theofilos Toulkeridis

Applied Sciences· Volume 10· Issue 17

Abstract

Currently, organizations face the need to create scalable applications in an agile way that impacts new forms of production and business organization. The traditional monolithic architecture no longer meets the needs of scalability and rapid development. The efficiency and optimization of human and technological resources prevail; this is why companies must adopt new technologies and business strategies. However, the implementation of microservices still encounters several challenges, such as the consumption of time and computational resources, scalability, orchestration, organization problems, and several further technical complications. Although there are procedures that facilitate the migration from a monolithic architecture to micro-services, none of them accurately quantifies performance differences. The current study aims primarily to analyze some related work that evaluated both architectures. Furthermore, we assess the performance and relationship between different variables of an application that runs in a monolithic structure compared to one of the micro-services. With this, the state-of-the-art review was initially conducted, which confirms the interest of the industry. Subsequently, two different scenarios were evaluated: the first one comprises a web application based on a monolithic architecture that operates on a virtual server with KVM, and the second one demonstrates the same web application based on a microservice architecture, but it runs in containers. Both situations were exposed to stress tests of similar characteristics and with the same hardware resources. For their validation, we applied the non-parametric regression mathematical model to explain the dependency relationship between the performance variables. The results provided a quantitative technical interpretation with precision and reliability, which can be applied to similar issues.
Source: crossref · Quality: baseline

Research context

OpenAlex topics: Software System Performance and Reliability · Cloud Computing and Resource Management · Advanced Software Engineering Methodologies

SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.

Affiliations

Department of Computer Sciences, Universidad de las Fuerzas Armadas ESPE, Av. General Rumiñahui S/N, P.O. Box 17-15-231B, Sangolquí 171103, Ecuador

Department of Informatics Engineering, Universidad Autónoma de Madrid, Ciudad Universitaria de Cantoblanco, 28049 Madrid, Spain

Department of Mathematics, Universidad Central de Ecuador, Av. Universitaria, Quito 170129, Ecuador

References (70)

Show source-provided references
1. Teixeira, S., Martins, J., Branco, F., Gonçalves, R., Au-Yong-Oliveira, M., and Moreira, F. (2017). A theoretical analysis of digital marketing adoption by startups. International Conference on Software Process Improvement, Springer.10.1007/978-3-319-69341-5_9 ↗
2. Stubbs, J., Moreira, W., and Dooley, R. (2017, January 3–5). Distributed systems of microservices using docker and serfnode. Proceedings of the IEEE 2015 7th International Workshop on Science Gateways, Budapest, Hungary.10.1109/IWSG.2015.16 ↗
3. Villamizar, M., Garces, O., Ochoa, L., Castro, H., Salamanca, L., and Verano, M. (2016, January 16–19). Infrastructure cost comparison of running web applications in the cloud using AWS lambda and monolithic and microservice architectures. Proceedings of the 2016 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid), Cartagena, Colombia.10.1109/CCGrid.2016.37 ↗
4. Kalske, M., Mäkitalo, N., and Mikkonen, T. (2017). Challenges when moving from monolith to microservice architecture. International Conference on Web Engineering, Springer.10.1007/978-3-319-74433-9_3 ↗
5. Newman, S. (2015). Building Microservices: Designing Fine-grained Systems, O’Reilly Media, Inc.
6. Al-Debagy, O., and Martinek, P. (2018, January 21–22). A Comparative Review of Microservices and Monolithic Architectures. Proceedings of the 2018 IEEE 18th International Symposium on Computational Intelligence and Informatics (CINTI), Budapest, Hungary.10.1109/CINTI.2018.8928192 ↗
7. Tapia, F., Mora, M.Á., Fuertes, W., Lascano, J.E., and Toulkeridis, T. (2020). A Container Orchestration Development that Optimizes the Etherpad Collaborative Editing Tool through a Novel Management System. Electronics, 9.10.3390/electronics9050828 ↗
8. Saransig, A., and Tapia, F. (2018). Performance analysis of monolithic and microservice architectures–containers technology. International Conference on Software Process Improvement, Springer.10.1007/978-3-030-01171-0_25 ↗
9. Guaman, D., Yaguachi, L., Samanta, C.C., Danilo, J.H., and Soto, F. (2018, January 13–16). Performance evaluation in the migration process from a monolithic application to microservices. Proceedings of the IEEE 2018 13th Iberian Conference on Information Systems and Technologies (CISTI), Caceres, Spain.10.23919/CISTI.2018.8399148 ↗
10. Performance Analysis of Microservices Design Patterns10.1109/MIC.2019.2951094 ↗
11. Singh, V., and Peddoju, S.K. (2017, January 5–6). Container-based microservice architecture for cloud applications. Proceedings of the IEEE 2017 International Conference on Computing, Communication and Automation (ICCCA), Greater Noida, India.10.1109/CCAA.2017.8229914 ↗
12. Ponce, F., Márquez, G., and Astudillo, H. (2019, January 4–9). Migrating from monolithic architecture to microservices: A Rapid Review. Proceedings of the 2019 IEEE 38th International Conference of the Chilean Computer Science Society (SCCC), Concepcion, Chile.10.1109/SCCC49216.2019.8966423 ↗
13. Processes, motivations, and issues for migrating to microservices architectures: An empirical investigation10.1109/MCC.2017.4250931 ↗
14. Mazlami, G., Cito, J., and Leitner, P. (2017, January 25–30). Extraction of microservices from monolithic software architectures. Proceedings of the 2017 IEEE International Conference on Web Services (ICWS), Honolulu, HI, USA.10.1109/ICWS.2017.61 ↗
15. Bures, T., Duchien, L., and Inverardi, P. (2019). Software Architecture—Proceedings of the 13th European Conference, ECSA 2019, Paris, France, 9–13 September 2019, Springer Nature.10.1007/978-3-030-29983-5 ↗
16. Fritzsch, J., Bogner, J., Zimmermann, A., and Wagner, S. (2018). From monolith to microservices: A classification of refactoring approaches. International Workshop on Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment, Springer.10.1007/978-3-030-06019-0_10 ↗
17. Kecskemeti, G., Marosi, A.C., and Kertesz, A. (2016, January 18–22). The ENTICE approach to decompose monolithic services into microservices. Proceedings of the IEEE 2016 International Conference on High Performance Computing & Simulation (HPCS), Innsbruck, Austria.10.1109/HPCSim.2016.7568389 ↗
18. Kamimura, M., Yano, K., Hatano, T., and Matsuo, A. (2018, January 4–7). Extracting Candidates of Microservices from Monolithic Application Code. Proceedings of the IEEE 2018 25th Asia-Pacific Software Engineering Conference (APSEC), Nara, Japan.10.1109/APSEC.2018.00072 ↗
19. From monolithic to microservices: An experience report from the banking domain10.1109/MS.2018.2141026 ↗
20. Djogic, E., Ribic, S., and Donko, D. (2018, January 21–25). Monolithic to Microservices redesign of event driven integration platform. Proceedings of the IEEE 2018 41st International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), Opatija, Croatia.10.23919/MIPRO.2018.8400254 ↗
21. Acevedo, C.A.J., y Jorge, J.P.G., and Patiño, I.R. (2017, January 18–20). Methodology to transform a monolithic software into a microservice architecture. Proceedings of the 2017 IEEE 6th International Conference on Software Process Improvement (CIMPS), Zacatecas, Mexico.10.1109/CIMPS.2017.8169955 ↗
22. Sarkar, S., Vashi, G., and Abdulla, P.P. (2018, January 4–7). Towards Transforming an Industrial Automation System from Monolithic to Microservices. Proceedings of the 2018 IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA), Turin, Italy.10.1109/ETFA.2018.8502567 ↗
23. Escobar, D., Cárdenas, D., Amarillo, R., Castro, E., Garcés, K., Parra, C., and Casallas, R. (2016, January 10–14). Towards the understanding and evolution of monolithic applications as microservices. Proceedings of the 2016 XLII Latin American Computing Conference (CLEI), Valparaiso, Chile.10.1109/CLEI.2016.7833410 ↗
24. Overcoming Challenges with Continuous Integration and Deployment Pipelines When Moving From Monolithic Apps to Microservices: An experience report from a small company10.1109/MS.2019.2947004 ↗
25. Chen, R., Li, S., and Li, Z. (2017, January 4–8). From monolith to microservices: A dataflow-driven approach. Proceedings of the 2017 IEEE 24th Asia-Pacific Software Engineering Conference (APSEC), Nanjing, China.10.1109/APSEC.2017.53 ↗
26. and Sebastian, S. (2017, January 17–18). Transform Monolith into Microservices using Docker. Proceedings of the International Conference on Computing, Communication, Control and Automation (ICCUBEA), Pune, India.
27. Nielsen, D. (2015). Investigate Availability and Maintainability within a Microservice Architecture. [Ph.D. Thesis, Aarhus University].
28. Khazaei, H., Barna, C., Beigi-Mohammadi, N., and Litoiu, M. (2016, January 12–15). Efficiency analysis of provisioning microservices. Proceedings of the 2016 IEEE International Conference on Cloud Computing Technology and Science (CloudCom), Luxembourg.10.1109/CloudCom.2016.0051 ↗
29. An open IoT framework based on microservices architecture10.1109/CC.2017.7868163 ↗
30. Fowler, M., and Lewis, J. (2020, June 01). Microservices a Definition of This New Architectural Term. Available online: Http://martinfowler.Com/articles/microservices.html.
31. About Microservices
32. Henry, A., and Ridene, Y. (2020). Assessing Your Microservice Migration. Microservices, Springer.10.1007/978-3-030-31646-4_4 ↗
33. Fussell, M. (2020, June 01). Why a Microservices Approach to Building Applications?. Available online: https://docs.microsoft.com/es-es/azure/service-fabric/service-fabric-overview-microservices.
34. Burvall, B. (2020, June 01). Improvement of Container Placement Using Multi-Objective Ant Colony Optimization. Available online: https://www.diva-portal.org/smash/get/diva2:1305653/FULLTEXT01.pdf.
35. Felter, W., Ferreira, A., Rajamony, R., and Rubio, J. (2015, January 29–31). An updated performance comparison of virtual machines and linux containers. Proceedings of the 2015 IEEE international symposium on performance analysis of systems and software (ISPASS), Philadelphia, PA, USA.10.1109/ISPASS.2015.7095802 ↗
36. Qemu: A multihost, multitarget emulator
37. Erinle, B. (2015). Performance Testing with JMeter, Packt Publishing Ltd.
38. Rajput, D. (2018). Hands-On Microservices–Monitoring and Testing: A performance Engineer’s Guide to the Continuous Testing and Monitoring of Microservices, Packt Publishing Ltd.
39. A survey of performance comparison between virtual machines and containers
40. Scott, J. (2020, June 01). A Practical Guide to Microservices and Containers: Mastering the Cloud, Data and Digital Transformation. Available online: Https://pdfs.semanticscholar.org/9757/5b5231c40d9fa8e340528fa47a85c4bd2de2.pdf?ga=2.180544677.324332155.1597956977-214923530.1581080317.
41. New approach to virtualization is a lightweight10.1109/MC.2006.393 ↗
42. Rea-Guaman, A.M., San Feliu, T., Calvo-Manzano, J.A., and Sanchez-Garcia, I.D. (2017, January 18–20). Systematic review: Cybersecurity risk taxonomy. Proceedings of the International Conference on Software Process Improvement, Zacatecas, Mexico.10.1007/978-3-319-69341-5_13 ↗
43. Containers and cloud: From lxc to docker to kubernetes10.1109/MCC.2014.51 ↗
44. Containerization and the paas cloud10.1109/MCC.2015.51 ↗
45. Gerlach, W., Tang, W., Keegan, K., Harrison, T., Wilke, A., Bischof, J., DSouza, M., Devoid, S., Murphy-Olson, D., and Desai, N. (2014, January 21). Skyport-container-based execution environment management for multi-cloud scientific workflows. Proceedings of the 2014 IEEE 5th International Workshop on Data-Intensive Computing in the Clouds, New Orleans, LA, USA.10.1109/DataCloud.2014.6 ↗
46. Joy, A.M. (2015, January 19–20). Performance comparison between Linux containers and virtual machines. Proceedings of the 2015 International Conference on Advances in Computer Engineering and Applications, Ghaziabad, India.10.1109/ICACEA.2015.7164727 ↗
47. Matusiak, P. (2020, June 01). Monoliths to Microservices: What to Know about Modernising Enterprise Applications. Available online: Https://www.information-age.com/modernising-enterprise-applications-123486138/.
48. Doerrfeld, B. (2020, June 01). From Monolith to Microservices: Horror Stories and Best Practices. Available online: Https://techbeacon.com/app-dev-testing/monolith-microservices-horror-stories-best-practices.
49. (2020, May 07). Wix. Available online: Https://www.wix.com/.
50. (2020, May 07). Best Buy. Available online: Https://www.bestbuy.com/.
51. (2020, May 07). Cloud Elements. Available online: Https://cloud-elements.com/.
52. Villamizar, M., Garcés, O., Castro, H., Verano, M., Salamanca, L., Casallas, R., and Gil, S. (2015, January 21–25). Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud. Proceedings of the 2015 IEEE 10th Computing Colombian Conference (10CCC), Bogota, Colombia.10.1109/ColumbianCC.2015.7333476 ↗
53. Levcovitz, A., Terra, R., and Valente, M.T. (2016). Towards a technique for extracting microservices from monolithic enterprise systems. arXiv.
54. Configuration based process and knowledge management by structuring the software landscape of global operating industrial enterprises with Microservices10.1016/j.promfg.2018.06.013 ↗
55. Titus: Introducing containers to the Netflix cloud10.1145/3152529 ↗
56. Uotila, T. (2020, June 01). Designing scalable microservices: Case: AWS with Python. Available online: Hhttps://www.theseus.fi/bitstream/handle/10024/169685/Uotila_Timsa.pdf?sequence=2&isAllowed=y.
57. Chawla, H., and Kathuria, H. (2019). Building Microservices Applications on Microsoft Azure, Apress.10.1007/978-1-4842-4828-7 ↗
58. Pathak, N., and Bhandari, A. (2018). Consuming Microsoft Cognitive APIs. IoT, AI, and Blockchain for. NET, Apress.10.1007/978-1-4842-3709-0 ↗
59. Chawla, H., and Kathuria, H. (2019). Evolution of Microservices Architecture. Building Microservices Applications on Microsoft Azure, Apress.10.1007/978-1-4842-4828-7 ↗
60. Al-Dhuraibi, Y., Paraiso, F., Djarallah, N., and Merle, P. (2017, January 25–30). Autonomic vertical elasticity of docker containers with elasticdocker. Proceedings of the 2017 IEEE 10th international conference on cloud computing (CLOUD), Honolulu, CA, USA.10.1109/CLOUD.2017.67 ↗
61. Bicocchi, N., Boese, S., and Cabri, G. (2019). User-Aware Comfort in Retail Environments. Modeling and Using Context—Proceedings of the 11th International and Interdisciplinary Conference, CONTEXT 2019, Trento, Italy, 20–22 November 2019, Springer.10.1007/978-3-030-34974-5_2 ↗
62. Sharma, S., Rajesh, R., and Gonzalez, D. (2017). Microservices: Building Scalable Software, Packt Publishing Ltd.
63. Johansson, P. (2017). Efficient Communication with Microservices. [Master’s Thesis, Umea University].
64. Performance comparison between virtual machines and docker containers10.1109/TLA.2018.8528247 ↗
65. Query-based summarization of discussion threads10.1017/S1351324919000123 ↗
66. Developing Context Awareness Mobile Application for Blood Donation
67. Amazon Web Service (AWS) (2020, August 08). Break a Monolith Application into Microservices with Amazon Elastic Container Service, Docker y Amazon EC2. Available online: Https://aws.amazon.com/getting-started/.
68. Fuertes, W., de Vergara, J.E.L., Meneses, F., and Galán, F. (2010, January 19–23). A generic model for the management of virtual network environments. Proceedings of the IEEE Network Operations and Management Symposium (NOMS 2010), Osaka, Japan.10.1109/NOMS.2010.5488367 ↗
69. A sampling algorithm for bandwidth estimation in a nonparametric regression model with a flexible error density10.1016/j.csda.2014.04.016 ↗
70. Smoothing parameter selection for smoothing splines: A simulation study10.1016/S0167-9473(02)00159-7 ↗