Как мы сократили релиз с недели бюрократии до одной кнопки

Как мы сократили релиз с недели бюрократии до одной кнопки

В RTLabs превратили многоуровневый процесс выкладки в продакшен в тестируемый код на Groovy. Теперь релиз занимает минуты вместо дней согласований.
Типичная картина в крупной компании: чтобы выкатить изменения в боевую среду, нужно пройти цепочку из согласований, тикетов, ручных проверок и подписей. Неделя на то, что технически делается за 10 минут. Мы в RTLabs решили автоматизировать весь этот процесс и свести его к одной кнопке — OneClickRelease.
Что было до автоматизации
Релизный процесс выглядел как квест с множеством уровней. Разработчик создавал заявку, она шла на согласование к тимлиду, затем к техническому директору, потом к DevOps-команде. Каждый этап — ручная проверка, ожидание ответа, возможные доработки. Итого: от коммита до продакшена проходило 5-7 дней, из которых реальная работа занимала час.
Проблема усугублялась тем, что процесс был задокументирован в вики, но никто не следил за актуальностью инструкций. Люди ошибались, забывали шаги, возвращались на предыдущие этапы. Бюрократия ради бюрократии.
Как мы это решили
Основная идея — превратить всю логику релиза в объектно-ориентированный код на Groovy для Jenkins. Не скрипты, которые никто не понимает через месяц, а нормальный код с классами, методами, тестами.
• Описали каждый этап релиза как отдельный класс с понятными методами: проверка окружения, сборка артефактов, тесты, развёртывание
• Добавили автоматические проверки вместо ручных согласований: линтеры, статический анализ, интеграционные тесты
• Встроили уведомления в Slack и почту — все заинтересованные стороны получают отчёты автоматически
• Сделали откаты такими же простыми, как и выкладку: одна кнопка возвращает к предыдущей версии
Самое важное — код релизного процесса теперь лежит в репозитории, версионируется, покрыт тестами. Изменения в процесс вносятся через pull request, как любой другой код. Это решило проблему с устаревшей документацией: код и есть документация.
Что получили на выходе
Релиз теперь занимает 15-20 минут от нажатия кнопки до появления изменений в продакшене. Все проверки проходят автоматически, результат — в Slack. Если что-то пошло не так, откат за две минуты.
Но главное — мы избавились от человеческого фактора в рутинных проверках. Люди больше не тратят время на согласования по регламенту, а занимаются тем, что требует реального экспертного взгляда: архитектурными решениями, code review, планированием.
Да, первоначальная разработка заняла месяц работы одного DevOps-инженера. Но окупилось это за квартал только за счёт освобождённого времени команды. Не считая того, что мы перестали терять деньги на задержках выкладки багфиксов.
Что важно учесть
Автоматизация не отменяет необходимость понимать, что происходит. Мы не убрали контроль — мы сместили его с бюрократических процедур на технические проверки. Код релиза требует поддержки, рефакторинга, адаптации под новые требования. Это не серебряная пуля, а инструмент, который нужно развивать.
Если у вас похожая ситуация с релизами — начните с малого. Автоматизируйте один этап, посмотрите на результат, двигайтесь дальше. Главное — не пытаться переписать всё сразу, иначе застрянете в бесконечной разработке идеального решения.
TG · OK · VK