ТЕОРЕТИЧНІ ОСНОВИ ВІДСТЕЖЕННЯ ПОДІЙ У РОЗПОДІЛЕНИХ СИСТЕМАХ

Автор(и)

DOI:

https://doi.org/10.32782/tnv-tech.2024.6.3

Ключові слова:

розподілені системи, мікросервісна архітектура, відстеження подій, спен, трейс, багаж, семплінг, моніторинг, асинхронна обробка, поширення контексту

Анотація

У статті досліджено теоретичні засади та ключові аспекти відстеження подій у розподілених системах, що набуває особливої актуальності в контексті стрімкого розвитку мікросервісної архітектури. Проаналізовано основні характеристики та особливості мікросервісної архітектури, включаючи її переваги та недоліки порівняно з монолітною архітектурою. Визначено, що мікросервісний підхід, попри свої переваги у вигляді гнучкості розробки та масштабування, створює додаткові виклики в контексті моніторингу та відстеження подій через розподілену природу системи. Розкрито ключові концепції систем відстеження подій, зокрема поняття «спен» (span) як базової одиниці відстеження, «трейс» (trace) для відслідковування повного шляху запиту, «багаж» (baggage) для передачі метаданих між сервісами, «теги» (tags) для забезпечення контексту та «семплінг» (sampling) для оптимізації навантаження на систему. Детально проаналізовано різні підходи до семплінгу, включаючи методи «наперед» (head-based) та «опісля» (tail-based), їх особливості та випадки застосування. Досліджено архітектуру сучасних систем відстеження подій, яка складається з п'яти основних компонентів: проміжного програмного забезпечення, механізму поширення контексту, системи зберігання трейсів, колектора даних та інтерфейсу аналізу. Особливу увагу приділено механізмам поширення контексту та їх ролі у забезпеченні ефективного відстеження подій у розподілених системах. Визначено, що ефективна система відстеження подій повинна забезпечувати мінімальний вплив на продуктивність основних бізнес-процесів, що досягається через асинхронну обробку даних моніторингу та оптимізовані механізми їх збору і зберігання. Результати дослідження мають практичне значення для розробників та архітекторів програмного забезпечення, які працюють з мікросервісними архітектурами та потребують ефективних інструментів для моніторингу та діагностики розподілених систем.

Посилання

Swoyer S., Loukides M. Microservices Adoption in 2020. URL: https://www.oreilly.com/radar/microservices-adoption-in-2020 (дата звернення: 20.12.2024).

Fowler M., Lewis J. Microservices a definition of this new architectural term. 2014. URL: https://www.martinfowler.com/articles/microservices.html (дата звернення: 20.12.2024).

Lewis J. Micro services – Java, the Unix Way. 2012. URL: http://2012.33degree.org/talk/show/67 (дата звернення: 20.12.2024).

Kharenko A. Monolithic vs. Microservices Architecture. 2015. URL: https://articles.microservices.com/monolithic-vs-microservices-architecture-5c4848858f59 (дата звернення: 20.12.2024).

OpenTracing API docs. What is a Span? 2022. URL: https://opentracing.io/docs/overview/spans (дата звернення: 20.12.2024).

Schkuro Y. Mastering Distributed Tracing: Analyzing performance in microservices and complex systems. Birmingham : Packt Publishing, 2019. 372 p. https://www.oreilly.com/library/view/mastering-distributed-tracing/9781788628464/

Shkuro Y. Embracing context propagation. 2019. URL: https://medium.com/jaegertracing/embracing-context-propagation-7100b9b6029a (дата звернення: 20.12.2024).

Robert Heinrich, André van Hoorn, Holger Knoche, Fei Li, Lucy Ellen Lwakatare, Claus Pahl, Stefan Schulte, and Johannes Wettinger. 2017. Performance Engineering for Microservices: Research Challenges and Directions. In Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion (ICPE '17 Companion). Association for Computing Machinery, New York, NY, USA, 223–226. https://doi.org/10.1145/3053600.3053653

André de Camargo, Ivan Salvadori, Ronaldo dos Santos Mello, and Frank Siqueira. 2016. An architecture to automate performance tests on microservices. In Proceedings of the 18th International Conference on Information Integration and Webbased Applications and Services (iiWAS '16). Association for Computing Machinery, New York, NY, USA, 422–429. https://doi.org/10.1145/3011141.3011179

Holger Knoche. 2016. Sustaining Runtime Performance while Incrementally Modernizing Transactional Monolithic Software towards Microservices. In Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering (ICPE '16). Association for Computing Machinery, New York, NY, USA, 121–124. https://doi.org/10.1145/2851553.2892039

T. Salah, M. Jamal Zemerly, Chan Yeob Yeun, M. Al-Qutayri and Y. Al-Hammadi, "The evolution of distributed systems towards microservices architecture," 2016 11th International Conference for Internet Technology and Secured Transactions (ICITST), Barcelona, Spain, 2016, pp. 318–325, doi: 10.1109/ICITST.2016.7856721.

##submission.downloads##

Опубліковано

2024-12-30

Як цитувати

Вакалюк, Т. А., Фант, М. О., Єфремов, Ю. М., Фаррахов, О. В., & Жиляєв, Є. В. (2024). ТЕОРЕТИЧНІ ОСНОВИ ВІДСТЕЖЕННЯ ПОДІЙ У РОЗПОДІЛЕНИХ СИСТЕМАХ. Таврійський науковий вісник. Серія: Технічні науки, (6), 20-28. https://doi.org/10.32782/tnv-tech.2024.6.3

Номер

Розділ

КОМП’ЮТЕРНІ НАУКИ ТА ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ