Функція як послуга (FaaS) представляє категорію служб хмарних обчислень, які надають платформу, що дозволяє клієнтам розробляти, запускати та керувати функціями додатків без складності створення та підтримки інфраструктури, зазвичай пов’язаної з розробкою та запуском додатка. Цей архітектурний шаблон зазвичай асоціюється з безсерверним обчисленням, де розробники можуть зосередитися на написанні коду своєї програми, а хмарний постачальник керує середовищем виконання.
Відстеження історії та походження функції як послуги (FaaS)
Виникнення функції як послуги (FaaS) тісно пов’язане з еволюцією хмарних обчислень. Народження хмарних обчислень на початку 2000-х привело в центр уваги інфраструктуру як послугу (IaaS) і платформу як послугу (PaaS). Однак розробникам все одно потрібно було керувати серверами в обох моделях, хоча й менше з PaaS.
Прорив стався в 2014 році, коли Amazon Web Services (AWS) представила AWS Lambda як першу платформу FaaS. Це повністю позбавило розробників необхідності турбуватися про сервери. Lambda дозволяла розробникам запускати свій код у відповідь на такі події, як зміни даних у сегменті Amazon S3 або оновлення в таблиці Amazon DynamoDB. Це ознаменувало революційну зміну способів створення та доставки додатків.
Глибше занурюючись у функцію як послугу (FaaS)
FaaS — це безсерверний метод виконання модульних частин коду на межі. Замість розгортання цілої програми чи служби розробники можуть виконувати невеликі фрагменти функцій, які виконують одне певне завдання. Ці функції є «без стану», тому що вони розроблені як короткочасні та виконуються в середовищі без стану. Хмарний постачальник автоматично керує ресурсами, необхідними для роботи та масштабування.
Функції запускаються такими подіями, як HTTP-запити, операції з базою даних, черги, сховище тощо. Провайдер виконує функцію та повертає результат після успішного завершення. Ключовою характеристикою FaaS є те, що ви платите лише за фактичний час обробки функції, а не за базову інфраструктуру.
Розкриття внутрішньої структури та механізму роботи FaaS
У моделі FaaS логіка програми розділена на окремі функції. Вони керуються основною платформою і зазвичай не мають статусу. Отримавши подію, платформа швидко розкручує ресурси для запуску функції, обробляє подію, а потім вимикає ресурси, коли обробка завершена.
- Тригер події: така подія, як запит HTTP, завантаження файлу або операція з базою даних, запускає функцію.
- Ініціалізація функції: Хмарний постачальник готує функцію до виконання. Це може включати запуск контейнера та завантаження в нього коду функції.
- виконання: функція запускається з наданими даними події.
- Відповідь: функція обробляє дані події та повертає результат. Він також може взаємодіяти з іншими службами або базами даних у рамках цієї обробки.
- Закрити: після завершення роботи функції хмарний постачальник вимкне ресурси, які використовуються для запуску функції.
Основні характеристики функції як послуги (FaaS)
- Керований подіями: функції виконуються у відповідь на події або тригери.
- Без громадянства: функції не зберігають інформацію між виконаннями.
- Масштабований: хмарний постачальник автоматично керує масштабуванням функції.
- Короткочасний: очікується, що функції запускаються швидко, виконуються протягом короткого часу, а потім зупиняються.
- Плата за використання: ціна базується на фактичному обчислювальному часі, використаному функцією.
Різні типи функції як послуги (FaaS)
Хоча основна концепція FaaS залишається незмінною, різні хмарні постачальники пропонують дещо різні продукти FaaS. Деякі з найпопулярніших включають:
Провайдер | Продукт FaaS |
---|---|
AWS | Лямбда |
Google Cloud | Хмарні функції |
Microsoft Azure | Функції Azure |
IBM | Хмарні функції |
Оракул | Проект Fn |
Способи використання функції як послуги (FaaS), проблеми та рішення
FaaS особливо корисний для додатків, яким необхідно відповідати на інформацію в реальному часі або спорадичні запити. Наприклад, його можна використовувати для обробки файлів у реальному часі, перетворення даних або обробки потоку подій. Однак існують потенційні проблеми, пов’язані з обмеженнями часу виконання, управлінням станом, тестуванням і налагодженням. Рішення включають ретельний дизайн функціонального коду для дотримання обмежень часу виконання та використання додаткових хмарних служб для керування станом.
Порівняння з подібними поняттями
Концепція | опис |
---|---|
FaaS | Розробники надають код функції. Платформа автоматично обробляє всю інфраструктуру. |
IaaS | Розробники керують програмами, даними, часом виконання та проміжним програмним забезпеченням. Провайдер займається віртуалізацією, серверами, сховищем і мережею. |
PaaS | Розробники керують програмами та даними. Постачальник обслуговує середовище виконання, проміжне програмне забезпечення, ОС, віртуалізацію, сервери, сховище та мережу. |
Перспективи та технології майбутнього, пов’язані з FaaS
FaaS, ймовірно, продовжить розвиватися разом із ширшою безсерверною екосистемою. Прогрес у периферійних обчисленнях може призвести до того, що FaaS стане більш поширеним на межі мережі, ближче до джерел даних. Крім того, ми можемо побачити більше гібридних безсерверних середовищ, де FaaS використовується в поєднанні з іншими обчислювальними моделями для різних частин програми.
Роль проксі-серверів у функціонуванні як послуги (FaaS)
Проксі-сервери можуть відігравати певну роль у FaaS, діючи як посередники для запитів від клієнтів, які шукають ресурси з інших серверів. Вони можуть покращити продуктивність, забезпечити безпеку та зберегти анонімність. У контексті FaaS проксі-сервер можна використовувати для обробки запитів, які запускають функції, пропонуючи додаткові можливості контролю, журналювання та модифікації.