АРХІТЕКТУРНІ ПІДХОДИ ДО РОЗРОБКИ МАСШТАБОВАНИХ ВЕБ-ЗАСТОСУНКІВ

Автор(и)

DOI:

https://doi.org/10.28925/2663-4023.2024.24.341350

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

масштабованість; вебзастосунки; мікросервісна архітектура; хмарні сервіси; надійність системи.

Анотація

У цій статті досліджуються сучасні методи та технології для створення масштабованих вебзастосунків. Потреба у таких системах постійно зростає через збільшення обсягів даних і кількості користувачів, що вимагає високої продуктивності та надійності. Ця стаття присвячена вивченню сучасних способів масштабування вебзастосунків, що стає однією з найактуальніших проблем сучасного програмування, обумовленою стрімким зростанням обсягів даних та кількості користувачів. Масштабованість визначає здатність системи ефективно обробляти зростаюче навантаження за рахунок додавання ресурсів (процесорів, пам’яті, серверів) без шкоди для продуктивності. Недотримання принципів масштабованості може призвести до уповільнення роботи, збоїв та втрати користувачів, роблячи розробку масштабованих вебзастосунків пріоритетним завданням для програмних інженерів. У статті розглядаються ключові проблеми, з якими стикаються розробники, включаючи зростання навантаження на сервери, забезпечення безперебійної роботи під час пікових навантажень, оптимізацію ресурсів та гарантування високої доступності даних. Авторами проаналізовано та порівняно різні архітектурні підходи, такі як мікросервісна архітектура, використання хмарних сервісів, кешування, балансування навантаження та асинхронні черги повідомлень. Автори наводять приклади успішного застосування цих підходів у таких компаніях, як Netflix, Spotify, Facebook, Amazon та LinkedIn, та пропонують практичні рекомендації щодо вибору оптимальної архітектури для різних типів проєктів, враховуючи їх особливості та вимоги до продуктивності. Авторами підкреслюється важливість ретельного планування архітектури на початкових етапах розробки вебдодатків для забезпечення їх масштабованості та ефективності. Перспективи подальших досліджень включають розробку нових методів та інструментів для підвищення ефективності існуючих архітектурних підходів, інтеграцію різних методів для створення гнучких та масштабованих рішень, а також підвищення уваги до питань безпеки та управління ресурсами.

Завантаження

Дані завантаження ще не доступні.

Посилання

Kleppmann, M. (2017). Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O’Reilly Media.

Siriwarden,a P., Indrasiri, K. (2018). Microservices for the enterprise: designing, developing, and deploying. Apress.

Newman, S. (2015). Building Microservices: Designing Fine-Grained Systems. O’Reilly Media.

Davis, C. (2019). Cloud Native Patterns: Designing change-tolerant software. Manning.

Petoff, J., Murphy, N., Beyer, B., & Jones, C. (2016). Site Reliability Engineering: How Google Runs Production Systems. O’Reilly Media.

Abbott, M. L., Fisher, M. T. (2015). The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise. Addison-Wesley Professional.

Atchison, L. (2020). Architecting for Scale: How to Maintain High Availability and Manage Risk in the Cloud. O’Reilly Media.

Ejsmont, A. (2015). Web Scalability for Startup Engineers. McGraw Hill.

Abbott, M. L., Fisher, M. T. (2011). Scalability Rules: 50 Principles for Scaling Web Sites. Addison-Wesley Professional.

Netflix. (n.d.). Microservices. https://netflixtechblog.com/tagged/microservices

Google. (n.d.). Microservices architecture on Google Cloud. https://cloud.google.com/blog/topics/developers-practitioners/microservices-architecture-google-cloud

Spotify on Google Cloud. (n.d.). https://cloud.google.com/customers/spotify

Facebook. (n.d.). Scaling Memcache at Facebook. https://research.facebook.com/publications/scaling-memcache-at-facebook/

Huang, Y., et al. (2007). Achieving Flexible Cache Consistency for Pervasive Internet Access. Fifth Annual IEEE International Conference on Pervasive Computing and Communications (PerCom'07). https://doi.org/10.1109/PERCOM.2007.6

Google. (n.d.). Integrating Redis with Cloud Run. https://cloud.google.com/memorystore/docs/redis/connect-redis-instance-cloud-run

Microsoft. (n.d.). Load Balancer documentation. https://learn.microsoft.com/en-us/azure/load-balancer/

Netflix. (n.d.). Chaos Monkey. https://netflix.github.io/chaosmonkey/

Google. (n.d.). Cloud Load Balancing overview. https://cloud.google.com/load-balancing/docs/load-balancing-overview

Amazon Elastic Load Balancing. (n.d.). https://aws.amazon.com/elasticloadbalancing/

Brief History of Scaling Uber. (n.d.). https://www.linkedin.com/pulse/brief-history-scaling-uber-josh-clemm-dfqgc

Streaming logging pipeline of Home timeline prediction system. (n.d.). https://blog.x.com/engineering/en_us/topics/infrastructure/2020/streaming-logging-pipeline-of-home-timeline-prediction-system

Lytvynenko, L., Skliarenko, O., & Kolodinska, Y. (2020). Logic of building interfaces in the software. Bulletin of the National Technical University «KhPI» Series: New Solutions in Modern Technologies, 1(3), 54–59. https://doi.org/10.20998/2413-4295.2020.03.07

Downloads


Переглядів анотації: 200

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

2024-06-26

Як цитувати

Скляренко, О., Савченко, Я., Литвиненко, Л., & Сушинський, О. (2024). АРХІТЕКТУРНІ ПІДХОДИ ДО РОЗРОБКИ МАСШТАБОВАНИХ ВЕБ-ЗАСТОСУНКІВ. Електронне фахове наукове видання «Кібербезпека: освіта, наука, техніка», 4(24), 341–350. https://doi.org/10.28925/2663-4023.2024.24.341350