Результати дослідження ефективності методів та засобів розробки бессерверних додатків для обробки зображень

Автор: та

Анотація: У роботі були розглянуті найбільш ефективні методи та засоби розробки бессерверних додатків для обробки зображень та порівняні між собою різні провайдери бессерверних обчислень з урахуванням потреб бізнесу.

Бібліографічний опис статті:

та . Результати дослідження ефективності методів та засобів розробки бессерверних додатків для обробки зображень//Наука онлайн: Міжнародний електронний науковий журнал - 2021. - №5. - https://nauka-online.com/publications/information-technology/2021/5/6-5/

Стаття опублікована у: : Наука Онлайн No5 май 2021

Інформаційні технології

УДК 004.7

 Шумілін Владислав Олександрович

студент

Харківського національного університету радіоелектроніки

Лєсна Наталя Совєтівна

кандидат технічних наук,

професор кафедри програмної інженерії

Харківський національний університет радіоелектроніки

РЕЗУЛЬТАТИ ДОСЛІДЖЕННЯ ЕФЕКТИВНОСТІ МЕТОДІВ ТА ЗАСОБІВ РОЗРОБКИ БЕССЕРВЕРНИХ ДОДАТКІВ ДЛЯ ОБРОБКИ ЗОБРАЖЕНЬ

 Анотація. У роботі були розглянуті найбільш ефективні методи та засоби розробки бессерверних додатків для обробки зображень та порівняні між собою різні провайдери бессерверних обчислень з урахуванням потреб бізнесу.

Ключові слова: обробка зображень, azure functions, aws lambda, google cloud functions, serverless.

Проблема і актуальність дослідження. На даний момент існує кілька конкурентів на ринку бессерверних обчислень, кожен з них має свої переваги і недоліки і має сервіс з обробки зображень в хмарі. Здебільшого, обробка зображень здійснюється як фонова операція, і існує декілька підходів щодо побудови бессерверної архітектури для обробки зображень, які потребують детального розгляду.

Актуальність дослідження полягає у необхідності систематизації переваг та недоліків методів та засобів розробки бессерверних додатків для обробки зображень за для вибору найбільш ефективних методів та засобів обробки зображень в залежності від вимог певної бізнес задачі.

Мета дослідження. Дана робота містить дослідження найбільш ефективних методів та засобів розробки бессерверних додатків для обробки зображень, виявлення переваг і недоліків цих методів та порівняння між собою різних провайдерів бессерверних обчислень з урахуванням потреб бізнесу.

Дослідження ефективності методів та засобів розробки бессерверних додатків для обробки зображень. Ефективність бессерверних додатків напряму залежить від продуктивності, а саме здатності програмного забезпечення при заданих умовах забезпечувати необхідну працездатність стосовно виділюваних для цього ресурсів.

Продуктивність вимірює наскільки швидкою є відповідь бессерверної функції, при виконані тригеру. Користуючись даним визначенням, було розроблено список метрик, які наведені у таблиці 1.

Таблиця 1

Метрики продуктивності

Метрика Одиниці виміру Пояснення параметру
Час відповіді Час (мілісекунди) Час від надсилання запиту до отримання відповіді
Пропускна здатність запит/секунда Кількість запитів, які обробляються додатком за одиницю часу
Використання ресурсів відсоток Використання ресурсів, таких як центральний процесор, пам’ять, пропускна здатність мережі

Автором був розроблений прототип бессерверної обчислювальної платформи, орієнтований на оцінювання показників продуктивності: масштабованість та затримка холодного старту. Прототип програмної системи симулює роботу провайдера для перелічених показників продуктивності.

Функціональні параметри вимірювалися за допомогою тестової функції, яка змінює розмір і проводить компресію зображень. Ця функція викликається синхронно з подіями чи HTTP тригерами, як це підтримується різними платформами, а також шляхом виклику функції провайдера. Ручні виклики не використовувались при тестувані, оскільки виробнича подія або тригер, як кінцева точка HTTP, краще відображатиме існуючу продуктивність платформи. Об’єм пам’яті функцій дорівнює 512 МБ та використовується на всіх платформах, окрім Microsoft Azure, яка динамічно виявляє вимоги до пам’яті функцій.

Також було оцінено функціональні параметри продуктивності для наступних провайдерів бессерверних обчислень: Azure Functions, Apache OpenWhisk, AWS Lambda та Google Cloud Functions.

Для оцінювання показників масштабування функцій був проведений тест, який призначений для вимірювання здатності бессерверних платформ ефективно масштабувати функцію. Розроблений проект підтримує функції тестування, викликаючи кожен запит одразу після отримання відповіді від попереднього виклику. Тест починається з одного виклику і кожні 10 секунд додає додатковий паралельний виклик, щонайбільше до 15 одночасних запитів до функції. Інструмент вимірює кількість відповідей, отриманих за секунду, яка повинна зростати із рівнем кількості викликів. Цей тест повторювався 10 разів на кожному з провайдерів, таких як Azure Functions, Apache OpenWhisk, AWS Lambda, Google Cloud Functions, а також на розробленому прототипі платформи. На рисунку 1 зображені результати тестування показників масштабування бессерверних функцій.

Рис. 1. Результати оцінювання показників масштабованості

Прототип демонструє майже лінійне масштабування між рівнями паралельності 1 і 14, але продуктивність значно знижується при 15 паралельних запитах. Це падіння зумовлене збільшенням затримок з теплої черги, що вказує на наближення до максимального навантаження однієї черги сховища Azure. AWS Lambda масштабується сублінійно і демонструє найбільшу пропускну здатність з розглянутих комерційних платформ за 15 одночасних запитів. Google Cloud Functions демонструє сублінійне масштабування, яке зменшується, коли кількість одночасних запитів наближається до 15. Ефективність функцій Azure надзвичайно варіативна, хоча пропускна здатність місцями досить висока, перевершуючи інші платформи на нижчих рівнях паралельності. Ця мінливість потребує окремих досліджень, особливо тому, що вона зберігається протягом ітерацій тесту. Продуктивність OpenWhisk демонструє низьку пропускну здатність до восьми одночасних запитів, після чого функція починає сублінійно масштабуватися. Ця поведінка може бути спричинена пулом контейнерів OpenWhisk, що запускає кілька контейнерів перед початком повторного використання, але ця поведінка залежить від конфігурації розгортання IBM.

Для оцінювання показників затримки холодного старту бессерверних функцій був проведений тест відмови, який призначений для аналізу затримки холодного старту та поведінки закінчення терміну дії екземплярів функцій на різних платформах. Тест на відмову надсилає одиничні запити на виконання функції тестування із збільшеними інтервалами, від однієї до тридцяти хвилин. Результати оцінювання зображені на рисунку 2.

Рис. 2. Результати оцінювання затримки холодного старту

Функціональні контейнери видаляються через 15 хвилин невикористання. На рисунку 3.2 наявна затримка виконання через 15 хвилин, що є наслідком холодного запуску прототипу. Azure Functions також закінчує термін дії ресурсів функцій через кілька хвилин і відображає схожі показники холодного старту як у прототипі. Важливо зазначити, що хоча прототип і функції Azure є реалізацією Windows, середовища виконання їх функцій дуже різні, оскільки прототип використовує контейнери Windows, а функції Azure працюють на віртуальних машинах служби додатків Azure. Крім того, OpenWhisk також звільняє контейнери приблизно через 10 хвилин і має значно менші показники холодного старту, ніж Azure Functions або прототип. Найголовніше, AWS Lambda та Google Cloud Functions значною мірою не залежать від простою функцій. Можливими поясненнями такої поведінки може бути надзвичайно швидкий час запуску контейнера або попередній розподіл контейнерів.

Висновки. Було розглянуто параметри ефективності провайдерів, такі як масштабованість та затримка холодного старту. За критерієм масштабованості найстабільнішим провайдером є AWS Lamda, його показники є лінійними та найвищими. Azure Functions також показали ефективні результати, але вони досить мінливі. Google Cloud Functions хоч і мають досить стабільні результати, але пропускна здатність є низкою по відношенню до конкурентів. Слід зазначити, найкращий результат показав прототип платформи, це означає, що навіть Lamda сервіс має недоліки, але все одно за цим показником слід обирати AWS Lambda серед розглянутих комерційних провайдерів.

За параметром затримки холодного старту бессерверних функцій, Google Cloud Functions та AWS Lamda мають найкращі показники, тому що затримка для цих провайдерів мінімальна. Azure Functions має досить довгу затримку, що іноді дорівнює шести секундам, тож за цим показником найкращим вибором є AWS Lamda та Google Cloud Functions.

Таким чином, за результатами дослідження отримані результати оцінювання ефективності функціональних параметрів методів та засобів розробки бессерверних додатків для обробки зображень, а саме результати масштабованості бессерверних функцій та затримки холодного старту. На основі отриманих результатів оцінювання були розроблені рекомендацій щодо вибору провайдера бессерверного обчислення.

Література

  1. Hellerstein, J.M., et al., Serverless computing: One step forward, two steps back. arXiv preprint arXiv:1812.03651, 2018.
  2. Google Cloud Functions. URL: https://cloud.google.com/functions/
  3. Roberts, M. Serverless Architectures. 2018 2020-01-30. URL: https://martinfowler.com/articles/serverless.html.
  4. Baldini, I., et al., Serverless computing: Current trends and open problems, in Research Advances in Cloud Computing. 2017, Springer. P. 1-20.

Перегляди: 307

Коментарі закрито.

To comment on the article - you need to download the candidate degree and / or doctor of Science

Підготуйте

наукову статтю на актуальну тему, відповідно до роздлів журналу

Відправте

наукову статтю на e-mail: editor@inter-nauka.com

Читайте

Вашу статтю на сайті нашого журналу та отримайте сертифікат