cold-start 38 мс serverless functions

FaaS, который не тормозит на cold-start

Functions-as-a-Service на нашем edge в РФ. Node 22, Python 3.12, Bun, Go, Rust — деплой одной командой. Cold-start 38 мс, посекундный биллинг с округлением до 100 мс. HTTP, Schedule, Queue, S3 events — из коробки.

Node · Python · Bun · Go · Rust · посекундный биллинг · 1M вызовов бесплатно

h3 fn deploy
$
cold-start 38 мспосекундный биллингNode 22 · Python · Bun · Go · RustHTTP · Schedule · Queue · S3warm pool · 0 cold-startedge в 5 регионах РФcustom domain · TLS · CORSh3 fn deploy за 11 секунд1M вызовов бесплатно
cold-start 38 мспосекундный биллингNode 22 · Python · Bun · Go · RustHTTP · Schedule · Queue · S3warm pool · 0 cold-startedge в 5 регионах РФcustom domain · TLS · CORSh3 fn deploy за 11 секунд1M вызовов бесплатно
почему мы

Зачем нам ещё одна serverless-платформа

AWS Lambda — медленный cold-start, доллары, странные event-объекты. Свой контейнер — платите за idle. Мы попробовали взять лучшее из двух миров.

альтернатива А

AWS Lambda · GCF · Azure Functions

  • Богатые SDK и интеграции
  • Cold-start 200–800 мс по умолчанию
  • Цены в долларах · валютный риск
  • Свой странный формат event объектов
  • Нет ФЗ-152, данные не в РФ
h3llo · serverless

Functions от h3llo

  • Cold-start 38 мс на Node 22, 60 мс на Python
  • Стандартный HTTP-handler, без кастомных event'ов
  • Цены в рублях, посекундно (округление 100 мс)
  • Edge в 5 регионах РФ · ФЗ-152 / ФЗ-242
  • 1 млн вызовов и 400K ГБ-сек/мес — бесплатно
  • Деплой через CLI, Terraform, GitHub Action
альтернатива Б

Поднять контейнер на VM самому

  • Полный контроль над runtime
  • Сами настраиваете autoscaling под burst
  • Платите за idle 24/7
  • Сами держите routing и observability
  • Сами разбираетесь с graceful shutdown
● dx

Один CLI — и handler.ts, который ничего нового не учит

Деплой одной командой, без кастомных event-объектов. Стандартный HTTP-handler, cold-start 38 мс на Node 22, посекундный биллинг с округлением до 100 мс.

h3 fn deploy · 11 секундcopy
# 1. деплой одной командой
$ h3 fn deploy ./api/handler.ts \
    --runtime=node22 \
    --memory=256 \
    --timeout=30s \
    --domain=api-handler.h3llo.cloud

✓ Bundling (esbuild)             142 ms
✓ Uploading 1.8 MB              980 ms
✓ Deployed v17 · cold-start      38 ms

$ curl https://api-handler.h3llo.cloud/health
{"ok":true,"region":"msk-1","cold":true}

$ curl https://api-handler.h3llo.cloud/health
{"ok":true,"region":"msk-1","cold":false}
handler.ts · standard HTTPcode
// handler.ts — стандартный HTTP, никаких кастомных event'ов
import { kv } from "@h3llo/edge";

export default async (req: Request): Promise<Response> => {
  const url = new URL(req.url);

  if (url.pathname === "/health") {
    return Response.json({ ok: true, region: "msk-1" });
  }

  if (url.pathname === "/count") {
    const n = await kv.incr("hits");
    return Response.json({ hits: n });
  }

  return new Response("not found", { status: 404 });
};
runtimes

Runtimes и реальные цифры cold-start

Замерены при пакете 1.8 MB, no-op handler, 256 MB памяти, регион msk-1. Цифры с нашего production-кластера, не из лабораторных условий.

JS runtime · best · cold-start

Bun

Самый быстрый cold-start. Альтернатива Node для современных приложений.

Версия1.x
Cold-start25 мс
Warm latency5 мс
Размер пакетадо 50 MB
JS runtime

Node.js

Самый ходовой runtime. Полная совместимость с npm-экосистемой.

Версия22 / 20
Cold-start38 мс
Warm latency8 мс
Размер пакетадо 50 MB
JS runtime

Deno

TypeScript из коробки, secure-by-default. Подходит для edge-обработчиков.

Версия2.x
Cold-start42 мс
Warm latency9 мс
Размер пакетадо 50 MB
Python

Python

asyncio, FastAPI, Flask — всё работает. ML-зависимости через layers.

Версия3.12 / 3.11
Cold-start60 мс
Warm latency12 мс
Размер пакетадо 50 MB
binary

Go

Однофайловый бинарь, самый быстрый warm-latency на CPU-bound задачах.

Версия1.23
Cold-start18 мс
Warm latency4 мс
Размер пакетадо 50 MB (binary)
binary

Rust

Минимальный cold-start, zero-cost runtime. Для критичных по latency API.

Версияstable
Cold-start12 мс
Warm latency3 мс
Размер пакетадо 50 MB (binary)
custom

Custom · Docker

Свой OCI-образ — любой язык или системная зависимость, что вам нужны.

ВерсияOCI
Cold-start120 мс
Warm latency8 мс
Размер пакетадо 250 MB
triggers

Триггеры — что обычно подключают

01 / http

HTTP triggers

Custom domain, TLS, CORS, IP allow-list. WebSocket для long-lived. Standard Request/Response интерфейс.

02 / schedule

Schedule (cron)

Cron-синтаксис вплоть до секундной гранулярности. Распределённая блокировка — функция не запустится дважды.

03 / queue

Queue / Events

Наша очередь, S3 events, webhook от внешних систем. At-least-once или exactly-once (по подписке).

04 / cron-jobs

Long-running jobs

Background job до 15 минут. Async handler с прогрессом. Авто-retry с exponential backoff.

цены

Платите за вызовы — не за idle

1 млн вызовов и 400 000 ГБ-секунд в месяц — бесплатно. Дальше — посекундно с округлением до 100 мс. Фиксированный warm pool — для SLA-критичных API.

free tier
Для прототипов, hobby-проектов и небольших команд. Без карты, без минимумов, без сюрпризов.
0 ₽ · 1M вызовов и 400K ГБ-сек/мес
  • 1 млн вызовов в месяц
  • 400 000 ГБ-секунд compute
  • 1 custom domain
  • Все runtimes доступны
  • Community support
популярный
pay-as-you-go
Для прода с переменной нагрузкой. Биллинг строго за то, что использовали — без минимумов.
от 0,18 ₽ / 1 000 вызовов · 0,42 ₽/ГБ-сек
  • Без лимита на вызовы
  • Округление биллинга до 100 мс
  • Custom domains без лимита
  • 24×7 поддержка · ответ ≤ 1 ч
  • Метрики, логи, audit
warm pool
Для регулируемых нагрузок и SLA-критичных API. 0 cold-start, фиксированный счёт.
от 1 800 ₽ / мес · резерв 1 vCPU 256 MB
  • 0 cold-start (warm pool)
  • Гарантированный latency p99
  • Reserved vCPU (1 / 2 / 4)
  • SLA 99.99% · 10× компенсация
  • Изолированный compute
материалы

Гайды и кейсы по serverless

Реальные практики, бенчмарки, миграции. Без воды и маркетинга — забираете PDF, в понедельник применяете.

quickstart

От install до первого invocation — 60 секунд

Без портала, без YAML-манифестов, без сборки контейнеров. Просто handler → деплой.

01

Установить CLI

`brew install h3llo/tap/cli` · или `curl get.h3llo.cloud | sh`.

02

Написать handler

Стандартный `(req) => Response` на Node, Python, Bun, Go, Rust. Без кастомных event-объектов.

03

Деплой одной командой

`h3 fn deploy ./handler.ts` · 11 секунд. Custom domain выдаём сразу.

04

Триггеры по вкусу

HTTP, Schedule, Queue, S3 events, WebSocket. Per-function конфиг через CLI или Terraform.

faq

Что обычно спрашивают

Сколько длится cold start?
Медиана 38 ms на Node 22, 60 ms на Python 3.12, 25 ms на Bun. Без provisioned concurrency и предоплаты. Если вам нужен 0 cold-start — есть «warm pool» за фиксированную плату.
Какие runtimes поддерживаются?
Node.js 22 / 20, Python 3.12 / 3.11, Go 1.23, Rust (binary), Bun 1.x, Deno 2.x. Кастомные runtime — через Docker-образ (с теми же быстрыми cold-start).
А какие триггеры?
HTTP (с собственным custom domain и TLS), Schedule (cron-синтаксис), Queue (наша очередь или внешняя через webhook), S3 events, и WebSocket. Для всех — посекундный биллинг с округлением до 100 мс.
Что с лимитами на размер пакета и память?
По умолчанию: пакет до 50 MB, память 128 MB → 4 GB (выбирается per-function), timeout до 15 мин. Если нужны большие — пишем в саппорт, поднимаем за час.
Можно ли держать состояние между вызовами?
Прямо в функции — нет (как и положено). Зато с h3llo KV (в этом же региональном edge), Postgres, Redis — соединение восстанавливается мгновенно благодаря connection pooling в платформе.
Сколько это стоит?
Per-invocation 0,18 ₽ за 1 000 вызовов + 0,42 ₽/ГБ-секунда compute. Бесплатный лимит — 1 млн вызовов и 400 000 ГБ-секунд в месяц. Точные цены и калькулятор в /price.

FaaS без сюрпризов — просто handler и деплой

Стандартный HTTP-handler, посекундный биллинг, cold-start 38 мс, 1 млн вызовов бесплатно. Без vendor lock — забираете handler-файл и деплоите куда угодно.