Сьогодні у більшості компаній використання та обслуговування своїх додатків вже не викликає жодних труднощів. Сучасна сервісна інфраструктура надає широкий вибір рішень на будь-який смак. Можна орендувати сервера, де розгортати необхідні сервіси або зробити Kubernetes кластер. Крім того, є широкий вибір хмарних провайдерів, яких можна обрати за оптимальним співвідношенням ціни й спеціальних параметрів. Технології serverless пішли ще далі. Вони дозволяють створювати та запускати додатки або сервіси без зайвих витрат часу та зусиль на керування інфраструктурою, наблизивши нас майже до ідеального світу. У цій статті Ілля Савельєв, Software Architect, говоритиме про серверлес архітектуру та особливості AWS Fargate, який використовується для безсерверних обчислень на базі контейнерів.
Про переваги безсерверної архітектури
Концепція serverless дозволяє вам будувати інфраструктуру застосунків із мінімальними витратами часу, людських ресурсів та фінансів на її підтримку. Даючи можливість сконцентруватися саме на додатку, а не на керуванні та обслуговуванні серверів.
Крім цього ви не сплачуєте за використання серверів у неробочий час, оптимізуючі свої витрати та сплачуючи лише за те, що вже використали. Окім цього, віддаючи перевагу технологіям serverless, ви можете не тримати додатковий сервер, що має вирішувати задачі масштабування та забезпечення відмовостійкості вашого застосунку.
Давайте розглянемо простий приклад: раніше вам доводилося сплачувати за сервер на якому було розміщено API сервіс. Перемножуємо 24 години на вартість такого серверу (залежить від його характеристик), додаємо використаний про всяк випадок другий такий сервер – виходить кругленька сума.
Із появою Serverless ви або ваша компанія сплачуєте лише за запити та ресурси, які були використані, а саме, за процесорний час та пам’ять. Нарахування йде за десятки тисяч запитів та починається від декількох центів. Виходить значна фінансова економія. Ваші видатки стають значно нищі, адже ви сплачуєте лише за робочий час, і не платите за вихідні коли вашим API сервісом майже ніхто не користується.
Додатковим бонусом у серверлес архітектурі йде підтримка масштабування та відмовостійкості, які гарантують хмарні провайдери.
Про безліч безсерверних рішень
Сьогодні існує неймовірне різноманіття serverless сервісів під будь-які потреби. Починаючи від баз даних, файлових сховищ, систем безпеки та закінчуючи хостингом веб-сайту.
Стало можливим створити працюючий застосунок використовуючи виключно serverless технології. Це відкриває нові можливості перш за все перед стартаперами та невеликими компаніями. Для них, показати свій продукт світові без суттєвих витрат на його інфраструктуру стало реальністю. Виграють від переходу на serverless й крупні компанії, адже досягають значної фінансової економії.
Важливим ресурсом застосунку вважається обчислювальний час, коли виконується його ключова логіка та вирішуються бізнес задачі. У світі serverless від AWS це завдання вирішується або за допомогою функцій (AWS Lambda), або за допомогою контейнерів (AWS Fargate). Функціям ми присвятили окремий курс Serverless .NET Applications on AWS: Functions, тому у цьому матеріалі говоритимемо про контейнери.
Фішки та переваги AWS Fargate
AWS Fargate – безсерверні Docker контейнери, кожен з яких запускається в окремому ядрі із власним ізольованим обчислювальним середовищем. Ця їх особливість дозволяє економити на менеджменті серверів і використовувати лише ресурси необхідні для запуска самих контейнерів.
До ключових переваг AWS Fargate відносимо такі:
- Фокус з керування інфраструктурою зміщено на розробку та керування додатками
- Раціональний підбір необхідних ресурсів та гнучке ціноутворення
- Надійна вмонтована ізоляція та безпека
- Просте відстежування додатків і широкий моніторинг
- Можливість запуску Kubernetes подів та ML моделей
Просто кажучи, ви можете використовувати всю міць Docker та розробки додатків на його основі, але при цьому не хвилюватися про те, як його розгорнути на серверах. AWS Fargate бере це все на себе. Вам треба лише вказати скільки хочете виділити пам’яті на це та процесорного часу для ваших контейнерів, параметри мережі, ролі та ще декілька додаткових параметрів.
Використовуючи гнучке налаштування масштабування, за допомогою лише кількох параметрів ви можете вказати, як має змінюватися кількість ваших контейнерів залежно від загрузки процесора або використаної пам’яті. AWS Fargate бере на себе відповідальність за перевірку життєздатності ваших контейнерів. Він автоматично замінює задачі, що впали, чим гарантує відмовостійкість вашого сервісу.
До речі, стан вашого застосунку дуже зручно моніторити у AWS CloudWatch, де збираються всі необхідні метрики, логи, та інші аспекти роботи контейнерів.
Під час курсу Serverless .NET Applications on AWS: Containers ми детально розберемо всі аспекти роботи з AWS Fargate. Розглянемо все починаючи від необхідних теоретичних основ до практики, під час якої кожен учасник отримує повноцінний досвід створення застосунку на основі AWS Fargate.
Обирайте IT курси від Sigma Software University!