Дослідження автоматизованого створення інфраструктури у мульти-хмарному середовищі (AWS, GCP)

Автор: Гудима Олег Миронович
Кваліфікаційний рівень: магістр
Спеціальність: Системне адміністрування телекомунікаційних мереж
Інститут: Інститут телекомунікацій, радіоелектроніки та електронної техніки
Форма навчання: денна
Навчальний рік: 2021-2022 н.р.
Мова захисту: українська
Анотація: В магістерській роботі представлено дослідження та розроблення прототипу управління інфраструктурою у мульти-хмарному середовищі. Дана робота описує найкращі практики управління інфраструктурою, особливості розробки такої системи, її переваги та недоліки. За останні кілька років хмарні обчислення стають все більш популярними як серед розробників, так і серед ентузіастів[1]. Сучасні хмарні додатки[2], які розробляються спеціально для хмари, забезпечують кращу продуктивність і масштабованість, водночас є більш економічно ефективними та відмовостійкими[3]. Особливо це стосується безсерверних програм[4]. Хмарні додатки структурно відрізняються від традиційних веб-додатків: їх складний і розподілений характер означає, що їх розробка є складнішою[5]. Розробникам потрібно не тільки створити новий додаток, який використовує деякий хмарний API, але й створити для нього інфраструктуру. По суті, спосіб створення програми двоякий: він вимагає як написання коду, так і розгортання супутньої інфраструктури. Протягом десятиліття інновації в хмарних обчисленнях призвели до нового розуміння обчислень, які будуть використовуватися як утиліти. Більшість постачальників хмарних послуг роблять сервіс кращим і конкурентоспроможним для кінцевого користувача. Окрім кількості послуг, запроваджених цими провайдерами, користувачі відчувають неспокій і не підозрюють про наслідки при переході з однієї послуги на іншу. Внутрішня архітектура хмари ускладнює розуміння кінцевими користувачами. Щоб подолати цю проблему, було введено нову концепцію мультихмари. У мультихмарній технології ми можемо використовувати кілька хмар від різних постачальників без складності платформи. Таким чином, багатохмарність — це використання автономних хмарних платформ з одним інтерфейсом, який може підказувати різні адміністративні та реалізаційні домени. Одним із популярних рішень цієї проблеми є підхід інфраструктури як код[6]. У рамках цієї техніки розробник створює спеціальні файли визначення, які оголошують інфраструктуру поряд з рештою коду і використовує ці файли для розгортання програми на хмарній платформі. У цій роботі ми дослідимо новий підхід до декларації мульти хмарної інфраструктури, який значно полегшує розробку хмарних додатків і не вимагає від розробника знаннь експертного рівня про конкретну хмарну платформу. Цей підхід також може використовуватися, щоб керувати інфраструктурою на декількох хмарних платформах. Результатом роботи є прототип системи, яка може керувати мульти-хмарною інфраструктурою на AWS та GCP з використанням Terraform та відповідних провайдерів. Цей прототип може використовуватися для подальшого покращення з метою створення повноцінного інструменту для управління хмарами без потреби визначення компонентів на кожному хмарному середовищі. Також варто зазначити, що ця робота використовує інтерфейси хмарних провайдерів з різними API, що ускладнює створення прототипу та його подальше розширення. У першому розділі розглядається підхід інфраструктури як коду, проводиться його аналіз на переваги та недоліки. Визначаються хороші практики створення такої системи та стандартна архітектура таких систем. У другому розділі досліджується хмарна інфраструктура загалом, а також типи кросс-хмарної інфраструктури. Визначаються важливість, переваги та недоліки мульти-хмарної інфраструктури. Також розглядаються AWS та GCP в ролі провайдерів хмарних послуг. У третьому розділі досліджено та проаналізовано технологію автоматизації створення інфраструкти як код – Terraform. Описано архітектуру, особливості встановлення та використання для змін в інфраструктурі. У четвертому розділі детально описано реалізацію прототипу системи для управління інфраструктурою в середовищі AWS та GCP. Описано кожен модуль, його призначення та деталі реалізації. Показано результати роботи системи. Порівняно використання декількох сервісів на різних хмарах. У п’ятому розділі проведено економічний аналіз витрат на експлуатацію системи прототипу. Результатом є очікувана оцінка витрат на інфраструктуру. Ключові слова: IaaC, Terraform, GCP, AWS, Cloud, multi-cloud.