Обираємо правильно cloud computing сервіси Azure: VMs, App Service, Functions, Containers

TelegramУсі статті, обговорення, новини про DevOps — в одному місці. Підписуйтеся на DOU | DevOps!

Долучайтеся до технічного телеграм каналу про Azure. Постимо корисні речі про сервіси та різні опції їх використання, про архітектуру, інфраструктуру.

Якщо подивитися цінники сервісів хмарних провайдерів, все виглядає не дуже дешево.

Ось для Azure є калькулятор, де можна орієнтовно розрахувати вартість під вашу задачу. Але там теж вартість може лякати.

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

Однією із опцій заощадження є cloud computing. Думаю всі чули про це, тема не нова.

Сloud computing сервіси є у різних хмарних провайдерів, але мова піде далі саме про сервіси Azure.

Пояснюємо для тих, хто не чув про cloud computing

Сloud computing надає обчислювальні ресурси, такі як диски, процесори, пам’ять, мережі та операційні системи. Ресурси виділяються за запитом і зазвичай можуть бути доступні за хвилини або навіть секунди. Ви платите лише за ті ресурси, які використовуєте, і лише протягом усього періоду їх використання.

Перелік найвідоміших Azure Сompute сервісів наступний:

  • Azure Virtual Machines
  • Azure App Service
  • Azure Functions
  • Azure Container Instances

Про них піде мова далі в контексті, який краще і для яких задач обрати.

Весь перелік трохи більший. Додам нижче блок-схему — допомагає визначитись, що і для чого використовувати. Блок-схему взято з цієї Microsoft статті Choose an Azure compute service. Рекомендую також з нею ознайомитися.

Тепер про сервіси...

Читаючи далі, тримайте в голові таку рекомендацію: Microsoft рекомендують переходити, де це можливо, від IaaS до PaaS, обґрунтовуючи це меншою вартістю, і також зменшенням операційних витрат.

Azure Virtual Machines

Azure Virtual Machines надають інфраструктуру як послугу (IaaS) у хмарі. Подивіться на картинці нижче розподілення, що контролюєте ви, а що провайдер, коли це IaaS.

Це ідеальний вибір, коли вам потрібно:

  • повний контроль над операційною системою (ОС);
  • можливість встановлення будь-якого ПЗ;
  • не треба купувати та підтримувати фізичні сервера.

При цьому ви підтримуєте програмне забезпечення самостійно та встановлюєте оновлення.

Віртуальну машину у Azure можна розгорнути за лічені хвилини, обравши необхідний образ з ОС. Образи можуть включати і різне програмне забезпечення, наприклад для розробки. Є можливість створити свій образ для своїх потреб.

Приклади використання віртуальних машин наступні:

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

Коли запускаєте застосунок у хмарі — є можливість збільшувати або зменшувати потужності в залежності від потреби застосунку. Це можна налаштувати в автоматичному режимі. Також можна вимикати віртуальні машини, коли вони вам не потрібні. При цьому ви платите лише за ресурси, які використовуєте. Якщо вимикаєте віртуалку, треба пам’ятати, що за диск ви продовжуєте платити.

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

Для аварійного відновлення (disaster recovery). Теж саме — локальна мережа підключається до хмарної. Якщо основний датацентр виходить з ладу, ви можете запустити віртуальні машини, які будуть працювати в Azure для ваших критичних застосунків, а потім вимкнути їх, коли основний датацентр запрацює. Ця опція зараз користується попитом в Україні, самі розумієте причини. Але також, з таким підходом до аварійного відновлення, ви можете отримати значну економію, в порівнянні з закупівлею власною інфраструктури.

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

Azure App Service

Azure App Service дає змогу створювати та розміщувати веб-сайти, веб-завдання (WebJobs), mobile back-end сервіси, RESTful API. Все це можна писати на різних мовах програмування .NET, Java, Ruby, Node.js, PHP, or Python. Можна обирати Windows або Linux ОС.

Це PaaS сервіс, дозволяє зосередитися на розробці веб-сайту або логіці API, тоді як Azure керує інфраструктурою для запуску та масштабування веб-застосунків.

Поверніться до картинки вище та подивіться розподілення для PaaS, що контролюєте ви, а що провайдер, коли це PaaS.

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

До прикладу нижче сценарій як тут працює computing.

Ви обираєте план Standard. Його вартість $73 в місяць. Щомісячно за це стягується оплата. Standard має функцію масштабування. Ви можете налаштувати автоматичне масштабування за правилами. Далі, коли навантаження на ваш сайт збільшилось автоматично запускається додатковий екземпляр віртуальної машини. За додатковий екземпляр ви починаєте платити ще $73, але лише за той період, коли він потрібен.

Azure Container Instances та Azure Kubernetes Service

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

Десь в одному відео почув гарне пояснення: Віртуальні машини віртуалізують hardware, а контейнери — операційну систему.

Контейнери «легкі» та призначені для швидкого створення, масштабування та динамічної зупинки. Ви не керуєте операційною системою для контейнера. Якщо відбувся збій ви можете швидко перезапустити контейнер.

Тут про легкість, гнучкість та швидкість, тому це і популярно при розробці програмного забезпечення.

Використання Docker підтримується у Azure.

Є два способи керування контейнерами у Azure:

Azure Kubernetes Service (AKS) — це керована служба Kubernetes для запуску складних масштабованих програм.

Azure Container Instances (ACI) надає простішу безсерверну платформу для запуску окремих контейнерів або невеликих груп контейнерів. ACI — це PaaS сервіс.

Це відомий факт, але підсвічу — контейнери часто використовуються для створення рішень за допомогою мікросервісної архітектури.

Azure Functions

Є такий термін — event driven. Це коли щось керується подіями. Іншими словами, протягом великого проміжку часу ваш застосунок очікує певної ініціації, перш ніж виконувати будь-яку обробку. Це принцип як працює Azure Functions.

Azure Functions — це безсерверна (serverless) платформа. Функції використовуються, коли ви хочете запустити невеликий фрагмент коду в хмарі, не турбуючись про інфраструктуру.

Azure піклується про керування інфраструктурою, про розподіл і звільнення ресурсів на основі попиту. Масштабування обробляються автоматично. Ви платите лише за ті ресурси, які використовуєте. Немає необхідності резервувати ресурси.

З Azure Function ви розгортаєте свій код, який по запиту буде працювати з високою доступністю.

Їх зазвичай використовують, коли потрібно виконати роботу у відповідь на подію (часто через запит REST), таймер або повідомлення від іншої служби Azure, і коли цю роботу можна виконати швидко, протягом секунд або менше.

Перегляньте за посиланням Browse code samples ідеї щодо використання функцій Azure.

Висновок

Як писали вище — сервіси хмарних провайдери здаються не дешевими, але варто на це дивитися з різних сторін та з точки зору вашої задачі. Є cloud computing, є ще така штука як резервування ресурсів. Треба добре розуміти які є сервіси у Azure та який їх принцип роботи. На вартість треба дивитися у розрізі року або декілька років та порівнювати з вартістю вашої наземної інфраструктуру. Також оцінюйте, чи є у вас час та люди, щоб займатися інфраструктурою. Якщо ні, тоді розгляньте PaaS сервіси.

Долучайтеся до телеграм каналу про Azure.

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному2
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі