SlimFaas — это лёгкая, готовая к использованию «из коробки» платформа типа «функции как сервис» (Function-as-a-Service, FaaS) для Kubernetes (а также Docker Compose / Podman Compose). Она создана с упором на скорость, простоту и минимализм — с принципиальным фокусом на автомасштабировании:
-
масштабирование
0 → Nна основе истории HTTP-запросов и расписаний, -
масштабирование
0 → Nпо отставанию Kafka (lag) через вспомогательный сервис SlimFaas Kafka, -
масштабирование
N → Mна основе PromQL-запросов, -
встроенное хранилище метрик, отладочные эндпоинты и масштабирование до нуля — всё это прямо из коробки,
-
встроенный пользовательский интерфейс по корневому адресу SlimFaas для наблюдения за функциями, заданиями, очередями и сообщениями в реальном времени,
-
временные эндпоинты Data Files для приёма и хранения двоичных файлов (от крошечных до очень больших) с TTL-хранилищем — идеально для кэширования и агентских рабочих процессов,
-
временные эндпоинты Data Sets (
/data/sets) для хранения небольших KV-данных в стиле Redis (кэш, JSON-состояние, флаги) с опциональным TTL — данные реплицируются по кластеру через надёжный слой консенсуса.
|
Примечание
|
Ищете интеграцию с MCP? Познакомьтесь с SlimFaas MCP — сопутствующей средой выполнения, которая на лету превращает любое описание OpenAPI в инструменты, совместимые с MCP. |
Зачем использовать SlimFaas?
🚀 Автомасштабирование, которое действительно понимает ваш трафик
-
Масштабирование до нуля и пробуждение
-
Снижение числа реплик до
0после периода бездействия с настраиваемыми таймаутами. -
Пробуждение
0 → Nна основе реального HTTP-трафика и/или расписаний в стиле cron. -
Пробуждение
0 → Nпо активности Kafka-топиков — SlimFaas Kafka отслеживает отставание потребителей и вызывает API пробуждения SlimFaas. -
Управление начальной ёмкостью через
ReplicasAtStartдля снижения влияния холодного старта.
-
-
Двухфазная модель масштабирования
-
0 → N: управляется историей HTTP-запросов, расписаниями и отставанием Kafka (SlimFaas Kafka) — функции запускаются только тогда, когда они реально нужны. -
N → M: управляется встроенным мини-вычислителем PromQL поверх внутреннего хранилища метрик. -
Масштабирование на основе метрик запускается только при наличии хотя бы одного пода — без опоры на несуществующие метрики.
-
-
Автомасштабировщик на основе PromQL
-
Правила масштабирования задаются PromQL-запросами, например:
-
sum(rate(http_server_requests_seconds_count{namespace="…",job="…"}[1m])) -
max_over_time(slimfaas_function_queue_ready_items{function="my-func"}[30s]) -
histogram_quantile(0.95, sum by (le) ( rate(http_server_requests_seconds_bucket{…}[1m]) ))
-
-
Пороговые значения задаются на под (
AverageValue) или глобально (Value). -
Политики масштабирования вверх/вниз и окна стабилизации — по образцу HPA/KEDA.
-
-
Встроенный сбор метрик
-
SlimFaas опрашивает только HTTP-эндпоинты метрик в формате Prometheus у подов с аннотацией
prometheus.io/scrape: "true". -
Хранятся только те ключи метрик, которые запрошены в триггерах автомасштабирования или отладочных запросах.
-
Один выделенный узел собирает и сохраняет метрики; остальные узлы читают из того же хранилища.
-
-
Удобная отладка
-
POST /debug/promql/eval— вычислить PromQL-выражение по внутреннему хранилищу и получить скалярный результат. -
GET /debug/store— посмотреть, какие метрики собираются, сколько серий хранится и каков объём данных. -
Легко ответить на вопрос: «Что видит SlimFaas, принимая решение о масштабировании?»
-
-
Ориентация на FinOps
-
Окно хранения метрик — 30 минут, что обеспечивает предсказуемое потребление памяти.
-
Масштабирование до нуля и расписания позволяют держать некритичные нагрузки в спящем режиме.
-
Минимальный footprint управляющего уровня — ресурсы не тратятся впустую на саму логику автомасштабирования.
-
🧵 Синхронные и асинхронные функции
-
Простые HTTP-эндпоинты для синхронных и асинхронных вызовов.
-
Асинхронный режим:
-
ограничение числа одновременных запросов на функцию,
-
настройка поведения при повторных попытках и стратегий отсрочки,
-
принятие решений об автомасштабировании на основе метрик очереди.
-
⏱ Задания (Jobs)
-
Запуск разовых, пакетных и запланированных (cron) заданий через HTTP-вызовы.
-
Настраиваются:
-
параллелизм,
-
видимость (публичное/приватное),
-
поведение при повторных попытках.
-
🔐 Приватные и публичные функции и задания
-
Функции можно пометить как публичные или приватные:
-
Приватные: доступны только внутри кластера или из доверенных подов.
-
Публичные: доступны через Ingress / API-шлюзы как обычно.
-
📣 Внутренние события в стиле «публикация/подписка»
-
Синхронная отправка событий каждой реплике выбранных функций.
-
Дополнительная шина событий не нужна — идеально для fan-out внутри кластера, инвалидации кэша, обновления конфигурации и т. п.
🧰 Data Files и Data Sets (приём в реальном времени + эфемерное кэширование + надёжный KV)
SlimFaas включает два дополняющих друг друга «data»-API.
📁 Data Files (временные двоичные артефакты)
Data Files — эндпоинты для потоковой передачи, хранения и раздачи временных файлов, от крошечных до очень больших двоичных данных. Идеально подходят для агентских рабочих процессов и приёма данных в реальном времени: загрузите файл один раз, получите id, а инструменты/функции заберут его, когда будут готовы.
-
Загрузка потоком (без буферизации в памяти или на диске)
-
Вложения и многоэтапные потоки, готовые к агентским сценариям
-
Эфемерное кэширование промежуточных артефактов
-
Жизненный цикл на основе TTL (автоматическое удаление)
🧠 Data Sets (KV-хранилище в стиле Redis для небольшого состояния)
Data Sets — это небольшое KV-хранилище в стиле Redis (сырые байты), реплицируемое по кластеру SlimFaas.
-
Загрузка потоком
-
Хранение любых небольших данных: JSON, строки, флаги, лёгкие кэш-записи
-
Опциональный параметр
ttlв миллисекундах (автоматическое удаление) -
Жёсткое ограничение: 1 МиБ на значение
🧠 «Mind Changer» (API статуса и пробуждения)
-
Встроенные REST API для:
-
мониторинга состояния функций и реплик,
-
принудительного пробуждения функций,
-
интеграции состояния автомасштабирования в собственные инструменты и дашборды.
-
🔌 Готово к работе без лишних настроек
-
SlimFaas разворачивается как обычный под / StatefulSet с минимальной конфигурацией.
-
Существующие рабочие нагрузки подключаются простым добавлением аннотаций — SlimFaas берёт управление масштабированием на себя без переписывания приложений.
⚡ Минимализм и скорость
-
Написан на .NET:
-
акцент на производительности и низком потреблении памяти,
-
архитектура, дружественная к AOT-компиляции,
-
минимальное количество зависимостей.
-
С чего начать?
Полезные ссылки:
-
Начало работы — как развернуть SlimFaas на Kubernetes или Docker Compose.
-
Масштабирование:
-
Автомасштабирование — подробно о масштабировании
0 → N/N → M, PromQL-триггерах, сборе метрик и отладочных эндпоинтах. -
Kafka Connector — использование отставания Kafka-топиков для пробуждения функций
0 → Nи поддержания воркеров в активном состоянии, пока есть сообщения. -
Planet Saver — как запускать реплики и следить за ними из JavaScript-фронтенда.
-
-
Функции и рабочие нагрузки:
-
Функции — синхронные и асинхронные вызовы функций.
-
Пользовательский интерфейс — встроенный UI для мониторинга функций, очередей, заданий и сообщений в реальном времени.
-
События — внутренние синхронные события в стиле публикация/подписка.
-
Задания — определение и запуск разовых заданий.
-
OpenTelemetry — распределённая трассировка, метрики и логи через интеграцию с OpenTelemetry.
-
-
Данные и файлы:
-
Data Files — приём, хранение и раздача временных двоичных артефактов.
-
Data Sets — небольшие KV-данные в стиле Redis (кэш, JSON-состояние, флаги), реплицируемые по кластеру, с опциональным TTL.
-
-
Как это работает — архитектура и устройство SlimFaas.
-
MCP — как превратить любое описание OpenAPI в инструменты, совместимые с MCP, прямо на лету.
Надеемся, SlimFaas поможет вам упростить автомасштабирование, снизить затраты и сохранить serverless-нагрузки стройными.
Сообщество и управление
-
Проект CNCF SlimFaas с гордостью входит в ландшафт Cloud Native Computing Foundation (CNCF).
-
Встречи сообщества Присоединяйтесь через календарь встреч сообщества:
-
Slack-канал Вступайте в наш канал на CNCF Slack, чтобы общаться с другими пользователями SlimFaas.
-
Кодекс поведения SlimFaas следует кодексу поведения CNCF.
Пользователи проекта
Список организаций, использующих проект в продакшене или на стадии тестирования.
Добавьте свой логотип через pull request:
-
Логотип должен быть в формате PNG, размером
100 пикселей по ширине и 100 пикселей по высоте. -
Поместите логотип в папку
documentation/adopters.