# CI/CD и GitOps

Собираем пайплайн, по которому код доезжает до прода сам, а не руками разработчика по ночам.

## Сборка

- Пайплайн на том, чем уже пользуетесь.
- Сборка образов, кеширование слоёв, хранение артефактов в реестре.
- Проверки на каждом шаге: тесты, линтеры, сканирование образов на уязвимости.

## Выкатка

- Отдельные контуры: тестовый, предпродакшен, бой — с одинаковым описанием и разными параметрами.
- Стратегии: постепенная замена подов, выкатка на часть трафика, быстрый откат на предыдущую версию.
- Миграции базы как часть выкатки, а не отдельный ритуал по памяти.

## GitOps

Состояние среды описано в репозитории, изменения приезжают через merge request, а служба синхронизации приводит контур к описанному состоянию. Что развёрнуто — видно в истории коммитов, откат — возврат изменения.

## Секреты

Пароли и ключи хранятся в Vault, а не в переменных пайплайна и не в репозитории. Доступ выдаётся сервисам, а не людям, и отзывается вместе с учётной записью.

## Что получает заказчик

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

Как это выглядело на практике — в кейсе [«Ночная сборка шла четыре с половиной часа»](/cases/ci-performance).