Що таке Functions as a Service (FaaS)?
Безсерверні обчислення
Що таке модель Functions as a Service (FaaS)?
Functions as a Service або FaaS — це модель виконання безсерверних обчислень, яка дозволяє розробникам легко розгортати та виконувати програми без необхідності керувати серверами. Коротко кажучи, за допомогою FaaS ви пишете код, тоді як хмарний провайдер автоматично обробляє розгортання сервера, розподіл ресурсів і керування середовищем.
Як працює FaaS?
У моделі FaaS розробники пишуть код у вигляді функцій, які є невеликими, незалежними фрагментами, призначеними для виконання однієї операції. Ці функції ініціюються подіями, наприклад, HTTP-запитами, змінами бази даних або подією завантаження файлу. Коли відбувається подія, хмарний провайдер негайно виділяє ресурси, необхідні для функції, і звільняє їх після завершення події функції. Ця обчислювальна модель дозволяє здійснювати безсерверне розгортання на основі подій, що означає стягування плати за виконання функції.
Деякі відомі постачальники FaaS: Amazon AWS Lambda, Microsoft Azure Functions і Google Cloud Functions.
У чому різниця між FaaS і SaaS?
FaaS і SaaS є моделями розгортання у хмарних обчислень середовищі, хоча вони мають різні функції.
- FaaS: Вона надає платформу для виконання користувацького коду, який запускається певними подіями. Розробники програм контролюють код та інфраструктуру, тоді як масштабування обробляється автоматично і на наймікроскопічнішому рівні. Витрати визначаються фактично використаними ресурсами (оплата за фактом використання).
- SaaS: Надає попередньо налаштовані програмні рішення через хмарну інфраструктуру. Користувачі працюють із наданим інтерфейсом, але мають обмежений контроль над базовою інфраструктурою. Це пов’язано з тим, що масштабованість зазвичай обмежена в планах підписки, тоді як витрати зазвичай стягуються за Підписки.
Яка основна перевага FaaS?
FaaS — це тип безсерверних обчислень, де розробники зосереджені на написанні коду і можуть мати дуже малий контроль над серверами. Він дозволяє регулювати масштаб діяльності і базується на автоматичному механізмі стягнення плати за використання як функції робочого навантаження в програмі.
Які недоліки FaaS?
Незважаючи на переваги FaaS, важливо обговорити деякі недоліки.
- Залежність від постачальника: Можуть бути відмінності в тому, як FaaS реалізовано різними хмарними постачальниками, що може створити труднощі при перенесенні вашої програми.
- Холодні старти: Початковий час запуску неактивних функцій може бути тривалим, що призводить до затримки зворотного зв’язку для користувачів.
- Налагодження та моніторинг: Розподілений безсерверний додаток може бути складнішим для налагодження та моніторингу, ніж монолітний додаток.
- Безстаність: Збереження стану під час виконання функції є досить складним, і при проектуванні програми слід докласти додаткових зусиль.
Незважаючи на ці недоліки, FaaS широко використовується при створенні високотехнологічних, масштабованих і економічно ефективних додатків, особливо в подієво-орієнтованих і клієнтоорієнтованих фреймворках.
Висновок
FaaS є розширенням безсерверної архітектури, де розробники можуть створювати та розгортати програми без придбання серверів. FaaS приховує інфраструктуру для використання автоматичного масштабування, циклу розробки та витрат на основі ресурсів. Ви можете розгорнути FaaS для розробки подієво-орієнтованих і масштабованих хмарних рішень, однак це не підходить для всіх типів програм.