Все статьи
RELEASE ENGINEERINGFZM2026-09-257 мин чтения

Immutable release promotion: как связать Git SHA, staging и production

Чем сложнее система, тем опаснее выпускать «примерно тот же код». Разбираем инженерный контур, в котором каждый релиз привязан к exact Git SHA, квалифицируется на staging и только затем продвигается в production.

1. Сначала идентичность, потом деплой Надежный релиз должен отвечать на простой вопрос: какой именно набор исходников сейчас работает в среде? Для этого недостаточно имени ветки или тега latest. Кандидат связывается с точным Git SHA, а собранный образ получает собственную неизменяемую идентичность.

Такой подход убирает класс ошибок, когда staging проверял один код, а production случайно получил другой.

2. Один и тот же артефакт на staging и production Staging полезен только тогда, когда проверяет тот же кандидат, который планируется продвигать дальше. Идеальная цепочка выглядит так: 1. Синхронизировать exact SHA. 2. Собрать immutable candidate. 3. Развернуть его на staging. 4. Выполнить browser, API и runtime проверки. 5. Продвинуть тот же кандидат в production без повторной сборки «из текущего состояния».

Это превращает staging из демонстрационной среды в доказательство пригодности конкретного релиза.

3. Release gates и безопасный rollback Production promotion должен быть отдельным действием с явными условиями допуска. Перед ним проверяются состояние среды, результаты staging, возможность rollback и точная идентичность кандидата.

Rollback тоже должен ссылаться на известный предыдущий артефакт, а не пытаться «откатить код» вручную. Чем меньше импровизации в аварийный момент, тем быстрее и безопаснее восстановление.

4. Post-deploy evidence вместо доверия Зеленый статус команды deploy еще не доказывает, что пользователь получил нужную версию. После релиза нужны независимые проверки: - runtime сообщает ожидаемый revision; - публичные маршруты отвечают; - ключевые пользовательские сценарии проходят; - результат записан в долговечный журнал.

В итоге релиз становится воспроизводимой инженерной процедурой, а не последовательностью ручных действий.

СТАРТ ПРОЕКТА

Есть задача? Обсудим решение и следующий шаг.

Опишите бизнес-задачу — поможем определить подход, состав проекта и предварительный бюджет.