CI/CD и GitOps
Собираем пайплайн, по которому код доезжает до прода сам, а не руками разработчика по ночам.
Сборка
- Пайплайн на том, чем уже пользуетесь.
- Сборка образов, кеширование слоёв, хранение артефактов в реестре.
- Проверки на каждом шаге: тесты, линтеры, сканирование образов на уязвимости.
Выкатка
- Отдельные контуры: тестовый, предпродакшен, бой — с одинаковым описанием и разными параметрами.
- Стратегии: постепенная замена подов, выкатка на часть трафика, быстрый откат на предыдущую версию.
- Миграции базы как часть выкатки, а не отдельный ритуал по памяти.
GitOps
Состояние среды описано в репозитории, изменения приезжают через merge request, а служба синхронизации приводит контур к описанному состоянию. Что развёрнуто — видно в истории коммитов, откат — возврат изменения.
Секреты
Пароли и ключи хранятся в Vault, а не в переменных пайплайна и не в репозитории. Доступ выдаётся сервисам, а не людям, и отзывается вместе с учётной записью.
Что получает заказчик
Выкатку, которую может запустить любой разработчик команды, и историю того, что и когда уехало в бой.
Как это выглядело на практике — в кейсе «Ночная сборка шла четыре с половиной часа».