Разделы документации
ОбзорБыстрый стартРедакции и возможностиМодели и поляРедактор контентаМедиатекаЛокализацияПубликация и работа командыAPI, SDK и генерация типовРасширения и инструментыРабочие проектыЗадания, вебхуки и наблюдаемостьАудит и управление даннымиСоветники и доверие к плагинамКорпоративный входПространства, квоты и масштабированиеCommerce и PortalПрава и безопасностьРазвёртывание и обновленияЛицензии и установка пакетовТекущие ограниченияПомощь и диагностикаДанные в кабинетеCore CMSDeveloper PlatformProduction UseWorkflowOperationsComplianceAI AssistantsPlugin TrustEnterprise IdentityEnterprise ScaleEnterprise DeploymentCommerce BundlePortal BundleNotty CMS DocumentationAuth & SecurityContent ModelingDeploymentEcosystem & Packaging ConventionsEditions and First-party ModulesExtensibilityGetting StartedMedia ManagementModule Extraction PathDraft & PublishUpgrade GuideWebhooks & IntegrationsCookbook: Blog with Next.jsCookbook: Custom PluginCookbook: Multilingual SiteOperations DocsBackup AutomationDeployment BlueprintsRunbook — Восстановление БД из бэкапаRunbook — Плановый деплойRunbook — Реакция на инцидентRunbook — Откат релизаRunbook — Горизонтальное масштабированиеRunbook — Ротация секретовRunbook — Major upgradeSecrets ManagementNotty CMS — Capability MapNotty Configuration ModelGenerated App ContractComponents and Dynamic ZonesMiddleware SystemPerformance & Scaling ToolkitDisaster Recovery PlaybookDistribution Model
Документация / Технический справочник

Runbook — Плановый деплой

Техническое руководство из исходного проекта Notty. Примеры, параметры и эксплуатационные ограничения.

По функциям модуляОбновлено 2026-09-30

Когда: прод-релиз новой версии 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_seconds p95 не выше 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. Снимок документации исходного проекта. Технический справочник сохраняет язык оригинала.