ВПРОВАДЖЕННЯ МІКРОСЕРВІСНОЇ АРХІТЕКТУРИ: ТЕХНІЧНІ ВИКЛИКИ ТА РІШЕННЯ
DOI:
https://doi.org/10.35546/kntu2078-4481.2024.4.39Ключові слова:
монолітна архітектура, мікросервісна архітектура, декомпозиція сервісів, міжсервісне спілкування, забезпечення безпеки, керування розподіленими данимиАнотація
Дана робота досліджує технічні виклики, з якими стикаються організації та розробники під час впровадження мікросервісної архітектури та пропонує рішення для їх подолання. Основна увага приділяється таким аспектам, як декомпозиція сервісів, міжсервісна комунікація, забезпечення безпеки та керування даними в розподілених системах. Зокрема, Domain-Driven Design визначається як ключова стратегія для сегментації монолітних додатків на бізнес-орієнтовані мікросервіси, тим самим підвищуючи придатність системи до обслуговування та потреб масштабованості. Дискусія про міжсервісну комунікацію розкриває компроміси між синхронними та асинхронними методами, зауважуючи, як синхронна комунікація, забезпечуючи негайний фідбек, може призвести до затримок та потенційних збоїв, тоді як асинхронні стратегії покращують стійкість, масштабованість та слабозв’язність, але привносять додаткову складність. Дослідження також розглядає механізми безпеки, наголошуючи на ролі Single Sign-On та API Gateway у спрощенні контролю доступу та підвищенні безпеки в мікросервісній архітектурі. Крім того, ця робота надає рекомендації щодо вирішення викликів розподіленого керування даними, рекомендуючи реплікацію, зумовлену подіями, та паттерн Saga для забезпечення консистентності даних між сервісами, разом з використанням GraphQL, API Gateway та паттерну CQRS для ефективної агрегації та отримання даних. Розглядаючи ці аспекти, було підкреслено критичність стратегічного та інформованого підходу до впровадження мікросервісів, наголошуючи на необхідності розуміння наслідків кожної архітектурної опції для ефективної побудови стійких, масштабованих та адаптивних програмних систем.
Посилання
Vural H., Koyuncu M. Does Domain-Driven Design Lead to Finding the Optimal Modularity of a Microservice?. IEEE Access. 2021. Vol. 9. P. 32721–32733. DOI: 10.1109/access.2021.3060895
Mihai I. S. A Systematic Evaluation of Microservice Architectures Resulting from Domain-Driven and Dataflow-Driven Decomposition. Bachelor's thesis. University of Twente, 2023. URL: https://essay.utwente.nl/95827/
Rademacher F., Sachweh S., Zündorf A. Towards a UML Profile for Domain-Driven Design of Microservice Architectures. Software Engineering and Formal Methods. Cham, 2018. P. 230–245. DOI: 10.1007/978-3-319-74781-1_17
Rudrabhatla C. K. Impacts of Decomposition Techniques on Performance and Latency of Microservices. International Journal of Advanced Computer Science and Applications. 2020. Vol. 11, no. 8. DOI: 10.14569/ijacsa.2020.0110803
Newman S. Building Microservices: Designing Fine-Grained Systems. O'Reilly Media, Incorporated, 2021. 616 p
Kazanavičius J., Mažeika D. Evaluation of Microservice Communication While Decomposing Monoliths. Computing and Informatics. 2023. Vol. 42, no. 1. P. 1–36. DOI: 10.31577/cai_2023_1_1
Shafabakhsh B., Lagerström R., Hacks S. Evaluating the Impact of Inter Process Communication in Microservice Architectures. QuASoQ@APSEC. 2020. P. 55–63. URL: https://ceur-ws.org/Vol-2767/07-QuASoQ-2020.pdf
I. Karabey Aksakalli et al Deployment and communication patterns in microservice architectures: A systematic literature review. Journal of Systems and Software. 2021. Vol. 180. P. 111014. DOI: 10.1016/j.jss.2021.111014
Interservice communication. URL: https://learn.microsoft.com/en-us/azure/architecture/microservices/design/interservice-communication
Tereshchenko O., Trintina N. Development Principles of Secure Microservices. CPITS II. 2021. P. 11–20. URL: https://ceur-ws.org/Vol-3188/paper2.pdf
de Almeida M. G., Canedo E. D. Authentication and Authorization in Microservices Architecture: A Systematic Literature Review. Applied Sciences. 2022. Vol. 12, no. 6. P. 3023. DOI: 10.3390/app12063023
Mateus-Coelho N., Cruz-Cunha M., Ferreira L. G. Security in Microservices Architectures. Procedia Computer Science. 2021. Vol. 181. P. 1225–1236. DOI: 10.1016/j.procs.2021.01.320
Chandramouli R. Security strategies for microservices-based application systems. Gaithersburg, MD : National Institute of Standards and Technology, 2019. DOI: 10.6028/nist.sp.800-204
K. Munonye and P. Martinek. Evaluation of Data Storage Patterns in Microservices Archicture. 2020 IEEE 15th International Conference of System of Systems Engineering (SoSE), Budapest, Hungary, 2020. DOI: 10.1109/sose50414.2020.9130516
Challenges and solutions for distributed data management. URL: https://learn.microsoft.com/en-us/dotnet/architecture/microservices/architect-microservice-container-applications/distributed-data-management