Открыть сервис

IBM Cloud Functions

IBM Cloud Functions — это серверная платформа для выполнения функций как услуги (FaaS), предоставляемая компанией IBM на базе проекта с открытым исходным кодом Apache OpenWhisk. Платформа позволяет разработчикам запускать код в ответ на события, не управляя серверной инфраструктурой, и автоматически масштабируется в зависимости от нагрузки.

История

Проект Apache OpenWhisk, лежащий в основе IBM Cloud Functions, был изначально разработан компанией IBM. В феврале 2016 года IBM представила бета-версию сервиса под названием IBM Bluemix OpenWhisk. В 2017 году проект был передан в инкубатор Apache Software Foundation, где получил статус проекта верхнего уровня (Top-Level Project) в ноябре 2019 года. В том же году сервис был переименован в IBM Cloud Functions в рамках ребрендинга облачной платформы IBM Cloud.

Платформа стала частью стратегии IBM по развитию гибридных облачных вычислений и бессерверных архитектур. В 2020 году, после приобретения Red Hat, IBM Cloud Functions была интегрирована с платформой OpenShift, что позволило запускать функции как в публичном облаке IBM, так и в локальных средах.

Архитектура и принцип работы

Модель выполнения

IBM Cloud Functions реализует событийно-ориентированную модель. Пользователь загружает код (функцию) в виде одного из поддерживаемых языков или пользовательского образа Docker. При наступлении триггерного события (например, HTTP-запрос, изменение в базе данных, загрузка файла) платформа автоматически создаёт контейнер, выполняет код и возвращает результат. После выполнения контейнер уничтожается, что исключает затраты на простой.

Компоненты системы

Архитектура Apache OpenWhisk включает несколько ключевых компонентов:

Поток выполнения

  1. Внешнее событие (например, HTTP-запрос) поступает на Nginx.
  2. Nginx передаёт запрос Controller, который проверяет аутентификацию и находит соответствующее действие (функцию).
  3. Controller помещает сообщение в очередь Kafka.
  4. Invoker получает сообщение из Kafka, загружает код функции из хранилища (например, Docker Registry) и запускает контейнер.
  5. Функция выполняется, результат возвращается через Invoker и Controller обратно клиенту.

Ключевые характеристики

Масштабирование

Платформа автоматически масштабирует количество экземпляров функции в зависимости от числа входящих запросов. При отсутствии запросов контейнеры останавливаются, что позволяет экономить ресурсы. Максимальное количество одновременных вызовов ограничено квотой аккаунта.

Тайм-ауты и ограничения

Поддерживаемые языки и среды

IBM Cloud Functions поддерживает несколько сред выполнения:

Основные понятия

Действия (Actions)

Действие — это фрагмент кода, который выполняется на платформе. Действия могут быть:

Триггеры (Triggers)

Триггер — это именованный канал для событий. При наступлении события (например, HTTP-запрос, изменение в базе данных) триггер активируется и может запускать одно или несколько действий через правила.

Правила (Rules)

Правило связывает триггер с действием. Когда триггер активируется, правило вызывает связанное действие, передавая ему данные события.

Пакеты (Packages)

Пакеты — это способ группировки связанных действий и фидов (feeds). Фиды — это предварительно настроенные триггеры для внешних сервисов (например, GitHub, Slack, Cloudant).

Интеграция с сервисами IBM Cloud

IBM Cloud Functions интегрируется с рядом сервисов IBM Cloud, что позволяет создавать автоматизированные рабочие процессы:

Сравнение с другими FaaS-платформами

ХарактеристикаIBM Cloud FunctionsAWS LambdaAzure FunctionsGoogle Cloud Functions
Макс. время выполнения10 мин (до 30)15 мин10 мин9 мин (HTTP) / 60 мин (фоновые)
Макс. размер кода50 МБ250 МБ (слой)1 ГБ500 МБ
Поддержка DockerДа (нативный)Через Lambda LayersЧерез пользовательские образыЧерез Cloud Run
ЦенообразованиеЗа вызовы, время выполнения, памятьЗа вызовы, время, памятьЗа вызовы, время, памятьЗа вызовы, время, память
Открытый исходный кодДа (Apache OpenWhisk)НетНетНет

Применение

IBM Cloud Functions используется для решения следующих задач:

Ограничения и критика

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →