Deployment и rollback
Release gates, promotion, smoke tests и безопасный откат.
Deployment и rollback
Поставка выполняется воспроизводимо через versioned artifacts и pipeline. Целевой bank-side путь: source/sync → MTB GitLab → bank runners → Stage/Prod.
Release package
- application image с неизменяемым tag/digest;
- Helm chart и environment overlay;
- API/API Product artifacts;
- Kestra flow artifacts;
- database migrations;
- configuration change set;
- release notes;
- validation и rollback plan.
latest не используется для mission-critical компонентов.
Pre-deployment gate
- scope и approvers подтверждены;
- CI checks успешны;
- image/artifact доступен из target environment;
- secrets и certificates подготовлены отдельно;
- network, DB и Kafka dependencies доступны;
- migration совместима с rollback strategy;
- dashboards и alerts готовы;
- change window и communications согласованы.
Deployment sequence
Smoke checks
- pods и health endpoints healthy;
- ingress/DNS/TLS работают;
- database и Kafka connectivity подтверждены;
- reference API отвечает;
- trace проходит ожидаемый маршрут;
- error rate, latency, restarts и lag не ухудшаются;
- callback проверен для async flow.
Rollback decision
Откат рассматривается при:
- массовых
5xxили недоступности; - несовместимости API/event schema;
- росте duplicate/data-loss risk;
- невозможности завершить migration;
- критической деградации latency;
- security regression.
Rollback приложения не всегда откатывает данные
Database migration, опубликованные сообщения и выполненные внешние операции могут быть необратимыми. Release plan обязан разделять application rollback, configuration rollback и data recovery.
После rollback
- подтвердите состояние всех компонентов;
- остановите несовместимые producers/consumers;
- проверьте queues, retries и DLQ;
- выполните reconciliation бизнес-операций;
- зафиксируйте точную версию и причину;
- не запускайте повторный release без нового gate.
Emergency change
Emergency change получает audit trail, approver, evidence и план возврата. После стабилизации изменение обязательно синхронизируется с source artifact, иначе следующий pipeline его потеряет.