Runbook — Плановый деплой
Техническое руководство из исходного проекта Notty. Примеры, параметры и эксплуатационные ограничения.
Когда: прод-релиз новой версии Notty (минор/патч), без миграций, ломающих
схемы. Для major upgrade — см. upgrade.md.
Допущения: есть готовый image registry.example.com/notty:<sha> после
успешного CI; secrets и configmap уже актуальны.
Pre-checks (≤ 5 мин)
- CI зелёный:
lint,type-check,test,test:integration,quality-gate. - Changeset обработан, версия пакетов согласована.
- В changelog/release notes указано, что меняется.
- Текущая версия зафиксирована:
kubectl -n notty get deploy notty -o jsonpath='{..image}'илиdocker compose ps --format json | jq '.[] | {Service, Image}'. - Сделан manual snapshot:
BASE_URL=... ADMIN_TOKEN=... deployment/scripts/backup.sh(комментарий:pre-deploy <version>). - Активные алёрты — нет critical (
/api/admin/operational-alerts).
Deploy — Kubernetes
# 1. Обновить тег image
kustomize edit set image notty=registry.example.com/notty:<sha> \
-d deployment/kubernetes/
kubectl apply -k deployment/kubernetes/
# 2. Дождаться rollout
kubectl -n notty rollout status deploy/notty --timeout=300s
# 3. Smoke
./deployment/scripts/verify-deploy.sh https://cms.example.com
Deployment сконфигурирован как maxUnavailable: 0, maxSurge: 1 — replacement
без даунтайма. Если readinessProbe (/api/readyz) не встаёт зелёным — rollout
сам остановится.
Deploy — docker-compose
export NOTTY_TAG=<sha>
docker compose -f deployment/docker-compose.yml pull notty
docker compose -f deployment/docker-compose.yml up -d --no-deps notty
./deployment/scripts/verify-deploy.sh http://localhost:2102
При single-instance деплое будет короткий downtime между остановкой старого и запуском нового контейнера. Для нулевого даунтайма используйте ingress перед двумя docker-compose стеками (blue/green).
Post-checks (≤ 10 мин после деплоя)
-
verify-deploy.shзелёный. - Версия в
/api/health= ожидаемая. - Логи без всплеска
level >= error(Grafana /kubectl logs -f). - Метрики:
notty_http_request_duration_secondsp95 не выше baseline'а;notty_db_replica_fallbacks_totalбез всплеска;notty_cache_misses_totalне растёт лавиной (легкий рост ожидаем после рестарта).
- Проверка золотых сценариев в admin UI:
- вход через известный аккаунт;
- открыть существующий content type, увидеть данные;
- создать draft и сохранить;
- upload одного файла.
- При проблеме — немедленно
rollback.md.
Communication
Перед началом и после успеха — короткое сообщение в operations-канал:
🚀 deploy notty <sha>
- env: production
- changes: <ссылка на changelog/PR>
- rollback: kubectl rollout undo deploy/notty -n notty
Источник: docs/operations/runbooks/deploy.md. Снимок документации исходного проекта. Технический справочник сохраняет язык оригинала.