ПОРІВНЯЛЬНЕ ТЕСТУВАННЯ ЗАСТОСУНКІВ, РОЗРОБЛЕНИХ НА ОСНОВІ МОНОЛІТНОЇ ТА МІКРОСЕРВІСНОЇ АРХІТЕКТУР
Анотація
На сьогодні можна виділити два основні підходи до створення вебзастосунків – це використання монолітної та мікросервісної архітектур. Питання, який з цих двох підходів є кращим, залишається відкритим. Відповідь на нього є неоднозначною і залежить від багатьох чинників. Тому проблема порівняння цих двох архітектур на основі тестування за різними показниками є досить актуальною. Метою цієї роботи є порівняння монолітної та мікросервісної архітектур на основі аналізу результатів тестування продуктивності та пропускної здатності розроблених вебзастосунків. Для того щоб мати можливість порівнювати між собою два архітектурні підходи, треба мати два різні застосунки, які б вирішували одні й ті ж самі бізнес-задачі, але один повинен бути реалізований на базі монолітної архітектури, а інший – із застосуванням мікросервісів. Як спільну бізнес-задачу було вибрано здійснення та опрацювання онлайн-замовлень продуктів з метою подальшої адресної доставки цих замовлень кур’єрами. Cерверні частини обох застосунків були реалізовані на мові Java за допомогою Java Spring Framework та Java Spring Cloud. Як СУБД було використано PostgreSQL. У застосунку, який побудовано на основі мікросервісної архітектури, взаємодію основних сервісів з базами даних реалізовано у відповідності до принципу «Одна база даних на один сервіс». Для навантажувального тестування та визначення продуктивності обох застосунків було вибрано інструменти JMeter та Gatling. Результати тестування в більшості тестових сценаріїв продемонстрували невелику перевагу монолітної архітектури над мікросервісною. Але для випадку, коли запити стосуються декількох сервісів і, відповідно, декількох баз даних одночасно, можна спостерігати менший час відгуку у застосунку, побудованому за допомогою мікросервісів.
Посилання
2. Santos R., Soares P., Rodrigues E., Maia P.H.M. and Silveira A. How Blockchain and Microservices are Being Used Together: a Systematic Mapping Study, 2022. IEEE/ACM 5th International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), 2022, pp. 39–46.
3. Oumoussa I., Faieq S., Saidi R. When Microservices Architecture and Blockchain Technology Meet: Challenges and Design Concepts. International Conference on Advanced Technologies for Humanity (ICATH). 2021. Lecture Notes on Data Engineering and Communications Technologies. Vol. 110, pp. 161–172.
4. Atitallah S.B., Driss M., Ghzela H.B. Microservices for Data Analytics in IoT Applications: Current Solutions, Open Challenges, and Future Research Directions. Procedia Computer Science. Volume 207. 2022, pp. 3938–3947.
5. Laigner R. et al. “From a Monolithic Big Data System to a Microservices Event-Driven Architecture”. 46th Euromicro Conference on Software Engineering and Advanced Applications (SEAA). 2020, pp. 213–220.
6. Berardi D., Giallorenzo S., Melis A., Prandini M., Mauro J., Montesi F. Microservice Security: A Systematic Literature Review. Peer J Computer Science. 2022, 8:e779.
7. Pereira-Vale A., Márquez G., Astudillo H., Fernandez E.B. Security Mechanisms Used in Microservices-Based Systems: A Systematic Mapping. XLV Latin American Computing Conference (CLEI). 2019, pp. 1–10.
8. Tapia F., Mora M.Á., Fuertes W., Aules H., Flores E., Toulkeridis T. From Monolithic Systems to Microservices: A Comparative Study of Performance. Applied Sciences. 2020, 10(17): 5797.
9. Blinowski G., Ojdowska A., Przybyłek A. Monolithic vs. Microservice Architecture: A Performance and Scalability Evaluation. IEEE Access. 2022, 10, pp. 20357–20374.
10. Al-Debagy O., Martinek P. A Comparative Review of Microservices and Monolithic Architectures. In Proceedings of the 2018 IEEE 18th International Symposium on Computational Intelligence and Informatics (CINTI), Budapest, Hungary, 21–22 November 2018, pp. 149–154.