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

Автор(и)

DOI:

https://doi.org/10.32782/IT/2024-2-6

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

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

Анотація

Час відповіді сучасного вебсервісу є дуже важливою характеристикою, яка має велике значення для задоволення потреб користувачів. Користувачі, які отримують миттєві відповіді від вебсервісу, сприймають його як більш зручний та привабливий для використання. В той самий час, для розробників важливо швидко та ефективно впроваджувати та масштабувати свої додатки з мінімальними витратами на обслуговування та інфраструктуру. Саме тому, широкої популярності набуває використання хмарних технологій для розробки та розгортання різноманітних додатків, а можливість кешувати дані дозволяє значно покращити швидкодію розробленого програмного забезпечення. Метою роботи є розгляд різноманітних наявних опцій кешування даних у хмарному середовищі на прикладі AWS та обґрунтування використання безсерверної архітектури, яка стала новим підходом для розгортання вебсервісів у хмарному середовищі. Методологія проведеного порівняльного аналізу полягає у наведенні основних принципів роботи, особливостей та обмежень для FaaS (функції як сервісу) на AWS, огляді наявних інструментів для реалізації кешування даних, таких яких Amazon ElastiCache for Redis, API Gateway Caching, CloudFront in front of API Gateway. Розглянуто використання простого вебсервісу для отримання розкладу занять у навчальному закладі на вказаний день тижня, який складається з безсерверних компонент таких як Amazon API Gateway, AWS Lambda, Amazon DynamoDB. Здійснено порівняння швидкодії створеного вебсервісу з використанням різних підходів до кешування даних, для чого розгорнуто чотири різних варіанти додатка з використанням зазначених опцій для кешування даних та підготовлено тести для проведення тестування під навантаженням з використанням фреймворку Locust. Наукова новизна отриманих у роботі результатів полягає в формулюванні можливих стратегій реалізації кешування для вебсервісів розгорнутих у хмарному середовищі. Висновки. Застосування кешування даних показало його ефективність для збільшення швидкодії веб-сервісу. В подальшому актуальним є обґрунтування вибору безсерверних компонент для реалізації кешування даних.

Посилання

Adzic, Gojko; Chatley, Robert. Serverless computing: Economic and architectural impact. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (ESEC/FSE’17). ACM, New York, NY, pp. 884–889.

Miller, Ron. Amazon Launches Lambda, An Event-Driven Compute Service: веб-сайт. URL: https://techcrunch.com/2014/11/13/amazon-launches-lambda-an-event-driven-compute-service/ (дата звернення: 19.03.2024).

Cloud functions.: веб-сайт. URL: https://cloud.google.com/functions (дата звернення 17.03.24).

Azure Functions.: веб-сайт. URL: https://azure.microsoft.com/en-us/products/functions (дата звернення 01.03.24).

Roberts, Mike. Serverless Architectures : веб-сайт. URL: https://martinfowler.com/articles/serverless.html (дата звернення 01.03.24).

Mohak Chadha, Anshul Jindal, and Michael Gerndt. Architecture-Specific Performance Optimization of Compute-Intensive FaaS Functions. In 2021 IEEE 14th International Conference on Cloud Computing (CLOUD). 478–483.

W. Lloyd, M. Vu, B. Zhang, O. David and G. Leavesley. Improving Application Migration to Serverless Computing Platforms: Latency Mitigation with Keep-Alive Workloads. 2018 IEEE/ACM International Conference on Utility and Cloud Computing Companion (UCC Companion), Zurich, Switzerland, 2018, pp. 195-200, doi: 10.1109/UCC-Companion.2018.00056.

B. C. Ghosh, S. K. Addya, N. B. Somy, S. B. Nath, S. Chakraborty and S. K. Ghosh. Caching Techniques to Improve Latency in Serverless Architectures. 2020 International Conference on COMmunication Systems & NETworkS (COMSNETS), Bengaluru, India, 2020, P. 666-669. doi: 10.1109/COMSNETS48256.2020.9027427.

Amazon API Gateway: Create, maintain, and secure APIs at any scale. : веб-сайт. URL: https://aws.amazon.com/api-gateway/ (дата звернення 17.03.24).

Amazon DynamoDB: Serverless, NoSQL, fully managed database with single-digit millisecond performance at any scale.: веб-сайт. URL: https://aws.amazon.com/dynamodb/ (дата звернення 17.03.24).

AWS Caching Solutions.: веб-сайт. URL: https://aws.amazon.com/caching/aws-caching/ (дата звернення 17.03.24).

Amazon ElastiCache pricing.: веб-сайт. URL: https://aws.amazon.com/elasticache/pricing/?nc=sn&loc=5 (дата звернення 17.03.24)

Hugo Tota. AWS Gateway Cache Strategy to Improve Performance: веб-сайт. URL: https://www.linkedin.com/pulse/aws-gateway-cache-strategy-improve-performance-hugo-tota (дата звернення 23.03.24).

Bhargav Shah. API Gateway & Caching.: веб-сайт. URL: https://shahbhargav.medium.com/apigateway-caching-3f86034ca491 (дата звернення 23.03.24).

Gabin Lee, Byounghwan Oh. Amazon CloudFront Cache Strategy for Successful Global Game Deployment.: веб-сайт. URL: https://aws.amazon.com/blogs/apn/amazon-cloudfront-cache-strategy-forsuccessful-global-game-deployment/ (дата звернення 21.03.24).

Jeiman Jeya. Let’s Dive into AWS CloudFront.: веб-сайт. URL: https://community.ops.io/jei/lets-diveinto-aws-cloudfront-3i3k (дата звернення 10.03.24).

Load Testing: What is Load Testing & Why is Load Testing Important?: веб-сайт. URL: https://www.loadview-testing.com/learn/load-testing/ (дата звернення 23.03.24).

Jonatan Heyman, Lars Holmberg, Andrew Baldwin, Carl Byström, Joakim Hamrén, Hugo Heyman. What is Locust?: веб-сайт. URL: https://docs.locust.io/en/stable/what-is-locust.html (дата звернення 20.03.24).

##submission.downloads##

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

2024-07-31