Azure Functions

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Azure Functions
Тип Безсерверні обчислення і Функція як послуга
Розробник Microsoft
Перший випуск березень 2016; 8 років тому (2016-03)
Платформа Багатоплатформна
Ліцензія Proprietary for platform, MIT License for client SDKs
Вебсайт azure.microsoft.com/en-us/products/functions

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

Архітектура[ред. | ред. код]

Azure Functions підтримує ряд мов програмування, включаючи C#, JavaScript, Python, Java та інші, що дозволяє розробникам використовувати свої улюблені мови для написання функцій. Функції можуть бути спрямовані на реагування на події в Azure або зовнішні події, такі як надходження повідомлень, взаємодія з HTTP-запитами або зміни даних у базах даних.

Одна з ключових особливостей Azure Functions — це можливість платити лише за фактичний час виконання функцій, а не за весь час їхньої доступності. Це забезпечує оптимальне використання ресурсів і знижує витрати, особливо для функцій, які не працюють постійно або мають невеликі навантаження.

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

Кожна функція може працювати зі своїм контекстом та даними, що дозволяє їм виконувати ізольовані завдання.

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

App Service Plan. Цей тип хостингу дозволяє встановлювати передбачувані параметри масштабування функцій та витрат.

Для повного контролю середовища виконання, Azure Functions можуть бути розгорнуті в контейнерах як частина архітектури мікросервісів в Azure Container Apps або навіть самостійно розміщені в Kubernetes.

Приклад використання[ред. | ред. код]

Azure Functions можуть бути використані в сценарії створення системи автоматичної обробки зображень. Коли користувач завантажує зображення в певний контейнер у службі Azure Blob Storage, спрацьовує тригер Blob і активує Azure Function, яка автоматично збільшує розмір зображення та зберігає його в іншому контейнері. Після цього спрацьовує HTTP тригер, який повідомляє про успішне завершення обробки.

Durable Functions[ред. | ред. код]

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

Durable Functions надає два головних шаблони для роботи з задачами, які вимагають відносно довгого часу виконання:

1. Orchestrator Functions (Функції оркестратори)[ред. | ред. код]

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

2. Activity Functions (Функції активності)[ред. | ред. код]

Це звичайні Azure Functions, які виконують окремі завдання в потоці роботи. Вони не знають про стан інших функцій та можуть бути викликані з оркестратора для виконання певних дій.

Durable Functions забезпечує можливість керувати відновленням потоків роботи після непередбачуваних збоїв або виключень, що робить їх ідеальним рішенням для створення надійних та стійких додатків.

Аналогічні продукти[ред. | ред. код]

Azure Functions є одним із багатьох інструментів для обчислень у хмарному середовищі. Інші провайдери хмарних послуг пропонують схожі можливості. Ось кілька основних конкурентів Azure Functions:

1. AWS Lambda[ред. | ред. код]

AWS Lambda — це сервіс в хмарній платформі Amazon Web Services (AWS), який дозволяє розробникам створювати, виконувати та керувати функціями безпосередньо в хмарі. Подібно до Azure Functions, AWS Lambda пропонує можливість автоматичного масштабування та платиться лише за фактичний час виконання функцій.

2. Google Cloud Functions[ред. | ред. код]

Google Cloud Functions — це сервіс в хмарній платформі Google Cloud, який надає можливість створювати та запускати функції відповідно до подій в хмарі. Він підтримує ряд мов програмування, так само як Azure Functions і AWS Lambda, і дозволяє платити лише за час виконання коду.

3. IBM Cloud Functions[ред. | ред. код]

IBM Cloud Functions — це рішення в хмарній платформі IBM Cloud, яке дозволяє розробникам створювати невеликий, але потужний код, який реагує на події. Завдяки моделі виконання на основі запуску, IBM Cloud Functions може ефективно масштабуватись залежно від навантаження.

Джерела[ред. | ред. код]