Деплой бэкенд-функций без Kubernetes
HTTP-хендлеры, задачи по расписанию и фон через функции, маршруты, контейнеры, секреты и историю вызовов — без Kubernetes как ежедневной панели управления. Функции и маршруты вместо кластерного YAML — та же изоляция, меньше ритуала.
Нагрузка и где ломается
Почему команды ищут функции без Kubernetes
Kubernetes — уважаемый ответ для серьёзной инфраструктуры, но многим продуктам в первую очередь нужны HTTP, расписание и место для фоновой работы — ровно сценарий «развернуть функции без Kubernetes», пока кластер не стал реально необходим.
Сразу в кластер — долго для ранней команды; совсем без структуры — через полгода скрипты превращаются в самодельные микросервисы.
Компромиссы
Почему «сначала Kubernetes» тяжело для простых бэкендов
Кто-то должен владеть etcd, сетью подов и сертификатами входа до первой фичи для клиента.
GitOps и Helm сильны, но тяжелы для чтения, когда нужно просто «запускать эту функцию каждую ночь».
Как помогает Inquir
Serverless-середина
Inquir держит поверхность деплоя на уровне функций и маршрутов при реальных контейнерах, секретах и истории — не «без изоляции» и не Kubernetes-манифест на каждый новый хендлер.
Если позже понадобится больший оркестратор, привычки небольших хендлеров и явных триггеров переносятся чище, чем монолит, нарезанный в спешке.
Что получаете
Что остаётся без Kubernetes
Деплой функций из браузера
Правки без локального Docker на каждый чих.
API Gateway для бэкенд-функций
Централизуйте аутентификацию и правила путей для входящего HTTP.
Задачи и пайплайны для фона
Явно моделируйте асинхронную работу вместо вилок процессов.
Что делать дальше
Как развернуть функции без Kubernetes
Деплой без Kubernetes как ежедневной панели: достаточно маршрутов шлюза, функций и триггеров пайплайнов.
Код
Старт с шаблонов типичных HTTP и фоновых форм.
Настройка
Маршруты шлюза или триггеры пайплайнов; секреты в продукте, не в git.
Наблюдение
История вызовов как обратная связь по надёжности.
Пример кода
Фокус на хендлере
Единица деплоя — код и метаданные, а не отдельный Helm chart или Kubernetes-манифест на каждый endpoint. Простые маршруты — поле path; стиль AWS — rawPath.
export async function handler(event) { const path = event.path ?? event.rawPath ?? ''; return { statusCode: 200, body: JSON.stringify({ path }), }; }
Когда подходит
Когда заходит
Когда это уместно
- Нужны HTTP, расписание и фон без ежедневного kubectl ради мелочей.
- Хотите привычки небольших хендлеров до возможного роста оркестратора.
Когда лучше не трогать
- Уже вложились в Kubernetes как единственный стандарт организации.
FAQ
Вопросы и ответы
Под капотом всё равно Kubernetes?
Вы работаете с интерфейсом и API Inquir; воркеры используют Docker (на Linux при включении — микроВМ Firecracker). Публиковать функцию не значит вести Kubernetes-манифесты или чарты Helm вручную.
Можно ли по-прежнему опираться на контейнеры?
Да: контейнер как единица изоляции, а рабочий процесс остаётся вокруг функций.
Как тестировать локально?
См. документацию по локальному вызову; старайтесь совпадать с переменными окружения, как в проде.