Перейти к основному содержимому

Rollout, Feature Flags И Release Safety

Назначение

Документ задает правила безопасного выпуска изменений через dark launch, gradual rollout, scoped enablement, kill switch и rollback/forward-fix. Любой flag, влияющий на деньги, security, permissions, auditability, tenant isolation или критичные интеграции, считается risky flag.

Типы Feature Flags

ТипНазначениеTTLApproval
Release flagРазделить deploy и enablementДо завершения rollout, максимум 30 днейService owner
Ops flagОперационное переключение режима, лимитов, throttling, маршрута интеграцииПока действует operational policyOps owner + service owner
Experiment flagUX или workflow experiment без critical side effectsПо плану экспериментаProduct/process owner
Permission flagВременное включение capability до фиксации в policy catalogДо миграции в постоянную модельSecurity owner
Risky flagКритичный runtime pathМинимальный срок, review каждые 7 днейDomain owner + Security/Finance where applicable
Kill switchБыстрое отключение side effect pathПостоянно доступенPre-approved owner group

Правила Хранения И Оценки

  • Flag key имеет формат <domain>.<capability>.<decision>.
  • Значение flag является typed model; arbitrary json запрещен.
  • Evaluation context содержит только bounded поля.
  • Secrets, credentials и raw payloads не передаются в flag context.
  • Для risky flag обязателен documented fallback behavior.
  • Для high-impact operations активное значение flag фиксируется в audit или release evidence.

Dark Launch

Dark launch используется, когда код должен быть deployed без пользовательского эффекта.

  1. Код deployed с disabled release flag.
  2. Read-only shadow path может выполнять проверку или расчет без side effects.
  3. Shadow result сравнивается с текущим поведением через bounded metrics.
  4. Threshold breach останавливает rollout.
  5. Shadow path не публикует events и не меняет source of truth.

Gradual Rollout

StageScopeGate
internalInternal tenant or test environmentSmoke tests, dashboards green
canary-11% traffic or one low-risk tenantError/latency/business delta
canary-1010% trafficSLO burn within threshold
selected-scopeSelected tenants, regions or org unitsOps approval and support readiness
full100% enabledRelease owner approval

Kill Switch

Kill switch обязателен для:

  • critical write paths;
  • irreversible exports;
  • privileged approvals;
  • risky external integrations;
  • high-volume background processing;
  • security-sensitive policy changes.

Rollback И Forward-Fix

СитуацияПредпочтительное Действие
UI defect without data corruptionDisable flag or rollback frontend
API errors after canaryStop rollout, disable flag, inspect traces
Invariant riskKill switch, freeze flow, reconcile, approve resume
Bad migration without data lossForward-fix with compatibility
Dependency degradationSwitch route or degraded mode through approved ops flag
Contract issueStop producers/consumers per runbook, deploy compatible version

Rollback не должен удалять audit, evidence, financial records или event history.

Release Safety Checklist

  • CI gates passed;
  • release package содержит changed APIs/events/models/permissions/flags;
  • dashboards и alerts готовы;
  • risky flags имеют owner, expiry и cleanup task;
  • migrations имеют compatibility plan;
  • support/ops знают impact и scope;
  • для critical changes подготовлен evidence package.

Обратные ссылки

Автоссылки: где используется этот документ.