Платформа

Стратегии выката

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

Rolling

Стратегия по умолчанию. Инстансы заменяются порциями; размер порции равен max(1, ceil(0.25 × текущее число инстансов)). Старый инстанс выводится из ротации, дожидается завершения активных запросов (до drain_timeout) и останавливается.

[deploy]
strategy = "rolling"
health_path = "/healthz"
health_timeout = "5s"
health_interval = "2s"
healthy_threshold = 2
drain_timeout = "30s"

Canary

Новая ревизия получает фиксированную долю трафика. Решение о продвижении принимаете вы или автоматика по метрикам ошибок.

vlone deploy --strategy canary --canary-percent 5
vlone canary status
# r185  5% трафика  ошибки 0.04% (база 0.05%)  p95 128ms (база 131ms)
vlone canary promote           # перевести на 100%
vlone canary abort             # вернуть весь трафик на r184

Автопродвижение настраивается порогами: если за окно наблюдения доля 5xx и p95 не ухудшились больше допустимого, доля трафика растёт по шагам.

[deploy.canary]
steps = [5, 25, 50, 100]
step_duration = "10m"
max_error_rate_delta = 0.5      # процентных пункта
max_p95_delta = "40ms"
on_breach = "abort"             # abort | pause

Пороги сравниваются с базовой ревизией за то же окно, а не с абсолютными значениями. Так ночное падение трафика не выглядит как улучшение.

Blue-green

Обе ревизии держатся полностью развёрнутыми, переключение мгновенное. Стратегия дороже по ресурсам, но даёт самый быстрый откат.

vlone deploy --strategy blue-green
vlone traffic switch r186      # мгновенное переключение
vlone traffic switch r185      # откат тем же способом

Health-проверки

Ревизия считается здоровой после healthy_threshold успешных ответов подряд. Проверка выполняется изнутри сети региона, без прохождения через публичный балансировщик.

ОтветТрактовка
200–299Здоров
429Здоров, но перегружен — инстанс не получает новый трафик
500–599Нездоров
ТаймаутНездоров
Разрыв соединенияНездоров, инстанс перезапускается

Откат

Откат переключает трафик на существующую ревизию и не запускает сборку.

vlone rollback                 # на предыдущую активную
vlone rollback r183            # на конкретную
vlone rollback --wait

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