
OneClickRelease, или как мы ставим релизы одной кнопкой
yuriy_vlasenko 25 минут назад OneClickRelease, или как мы ставим релизы одной кнопкой Средний 14 мин 878 Блог компании РТЛабс DevOps * Системное администрирование * Кейс Привет, Хабр! На связи Юрий Власенко, Senior...
Значимый прорыв формирует отрасль ИИ: yuriy_vlasenko 25 минут назад OneClickRelease, или как мы ставим релизы одной кнопкой Средний 14 мин 878 Блог компании РТЛабс DevOps * Системное администрирование * Кейс Привет, Хабр! На связи Юрий Власенко, Senior DevOps инженер в РТЛабс. Сегодня я расскажу о том, как наша команда автоматизировала сложный, бюрократизированный и многоуровневый релизный процесс компании и превратила его в тестируемый объектно-ориентированный код на Groovy (Jenkins).
Как мы к этому пришлиИзначально у нас не было цели построить какую-то универсальную релизную платформу на все случаи жизни. Мы решали вполне конкретную задачу: сделать пайплайн, который по одной кнопке соберёт и выведет релиз для одного конкретного блока разработки. Ну то есть ту самую заветную кнопку, нажав которую в 3 часа ночи, ты с гарантией в 99,9% будешь уверен в том, что релиз успешно добрался до прода.
Технические детали
Изначально у нас не было цели построить какую-то универсальную релизную платформу на все случаи жизни. Мы решали вполне конкретную задачу: сделать пайплайн, который по одной кнопке соберёт и выведет релиз для одного конкретного блока разработки. Ну то есть ту самую заветную кнопку, нажав которую в 3 часа ночи, ты с гарантией в 99,9% будешь уверен в том, что релиз успешно добрался до прода.
И как это часто бывает в инженерных задачах, всё начиналось с попытки упорядочить существующий хаос. До внедрения релизного фреймворка поставка кода представляла собой разрозненную смесь инструментов, с помощью которых код выводился на тестовые и production-стенды. Где-то автоматизация отличалась, где-то шаги были ближе к ручным, а то и вовсе полностью ручные, где-то логика между контурами расходилась сильнее, чем хотелось бы.
В результате процесс был:— неоднородным;— плохо предсказуемым;— сложным в сопровождении;— зависимым от того, кто именно сейчас его ведёт. При этом мы в достаточной степени обладали представлением о том, какие именно рутинные действия больше всего отнимают сил и времени в процессе подготовки релиза у наших тест-лидов, которые в подавляющем большинстве команд являются релиз-менеджерами. Мы хотели автоматизировать и закрыть базовый минимум потребностей:— определить, какие задачи входят в релиз;— найти связанные с ними изменения в репозиториях команды;— создать и слить все нужные ветки;— собрать нужные приложения;— зафиксировать состав поставки;— провести релиз по средам с определением порядка установки приложений;— вернуть пользователю прозрачный статус по всей цепочке.
Мы провели брейншторм и решили решили создать OneClick – фреймворк доставки кода, позволяющий выкатить релиз одной кнопкой (ну почти). Тогда мы ещё не знали, что в один прекрасный день наш код станет стандартом доставки для десятков слабосвязанных или вообще не связанных друг с другом информационных систем компании. Из чего состоит OneClickНе Jenkinsfile единымУже на этапе раннего планирования стало понятно, что реализовать наш замысел можно только на основе полноценной системы со своей логикой, правилами и точками отказа.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.



