Автоматизація розгортання та управління конфігурацією додатку з функцією розпізнавання зображень
Автор: Гайдар Юрій Богданович
Кваліфікаційний рівень: магістр
Спеціальність: Проектування та адміністрування інформаційних комунікаційних мереж
Інститут: Інститут телекомунікацій, радіоелектроніки та електронної техніки
Форма навчання: денна
Навчальний рік: 2023-2024 н.р.
Мова захисту: українська
Анотація: Сьогодні важко уявити якийсь бізнес, що не використовує у своїй роботі ті чи інші веб-сервіси, що суттєво спрощує користувацький досвід та збільшує клієнтську базу. Термін "веб-сервіс" виник для представлення одиниці бізнес-логіки, яку організація відкриває для інших організацій у глобальній мережі. Веб-сервіси стали найпопулярнішою парадигмою розподіленого обчислення для Інтернету[1]. У зв’язку із ростом різних технологій веб розробки та великий попит у веб сервісах виникає потреба у якісному та швидкому процесі розгортання веб сервісів. Процес розгортання програмного забезпечення включає у себе створення екземплярів різних компонентів додатку на різних хостах з різними обчислювальними можливостями, доступними в розподіленому середовищі. Цей процес не лише вимагає створення цих екземплярів, але й враховує виконання цього таким чином, щоб були дотримані всі вимоги та обмеження.[2] Це означає, що в певному середовищі є детермінована кількість машин, на яких виконується сервіс, що забезпечує певною мірою відмовостійкість системи.Це середовище часто називають інфраструктурою розгортання. Існують різні види інфраструктури, одна зараз найбільш ефективною є інфраструктура побудована на основі ресурсів хмарного провайдера. Стрімкий розвиток технологій хмарних обчислень відкриває величезний потенціал для покращення ефективності інформаційної системи, зменшення витрат на її обслуговування та забезпечення технічної підтримки[5] Розгортання ІТ-інфраструктури в хмарі приносить кілька переваг. Серед них - динамічна автоматизація процесів розподілу інформаційних ресурсів, гарантія якості доставки послуг та ефективних показників служби. Крім того, така інфраструктура безпроблемно інтегрується з іншими хмаровими системами, динамічно адаптуючись до сучасних вимог і стандартів. Для автоматизації процесу та управління конфігураціями потрібно використовувати метод, що має здатність налаштовувати параметри та альтернативно тестувати модульні зміни в інфраструктурі. Цей метод називається "Інфраструктура як код" (IaC). Здатність створювати та легко масштабувати повністю автоматизує процес створення та оновлення інфраструктури [4]. Більшість сучасних веб-сервісів часто використовують машинне навчання в своїй функціональності, що потребує більше ресурсів, ніж звичайні додатки, тому автоматизація масштабування інфраструктури надає можливість ефективно керувати ресурсами необхідними для роботи додатку. Тому автоматизація розгортання є необхідною для додатків побудованих на основі нейронних моделей. Дана автоматизація забезпечується використанням CI/CD методик. Неперервна інтеграція (CI) є широко вживаною практикою в галузі розробки програмного забезпечення. Вона містить в собі часте об’єднання та злиття коду розробників часто кілька разів на день.Перевагами CI є: скорочення циклів випуску, поліпшення якості програмного забезпечення та підвищення продуктивності команди завдяки автоматизованій збірці та тестуванню програмного забезпечення.Неперервна доставка (CD) доповнює CI, забезпечуючи постійну готовність додатку до випуску після успішного проходження автоматизованих тестів та перевірок якості. CD використовує практики, такі як CI та автоматизацію розгортання, для автоматичної доставки програмного забезпечення.[5] Одним із найбільш популярних інструментів CI/CD є Github Actions, який є працює на основі подій і надає можливість автоматизувати робочі процеси розробки. GitHub Actions може виконувати послідовність команд після виникнення вказаної події. Подія - це конкретна дія, яка викликає запуск робочого процесу. [8] Метою даної роботи є забезпечення процесу автоматизації розгортання для додатку з функцією розпізнавання зображень і саме підхід із використанням CI/CD дозволяє виконати дану мету за рахунок швидкого та послідовного процесу розгортання у відповідь на подію в цьому випадку це буде зміна коду в репозиторії.