CI/CD и GitOps

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

Сборка

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

Выкатка

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

GitOps

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

Секреты

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

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

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

Как это выглядело на практике — в кейсе «Ночная сборка шла четыре с половиной часа».