- Регистрация
- 21.07.20
- Сообщения
- 40.408
- Реакции
- 1
- Репутация
- 0
Сейчас многие компании работают без возможности прямого управления составом пакетов внешних репозиториев, даже если применяют зеркалирование, проксирование и кэширование. Это приводит к тому, что окружение выполнения постоянно меняется, в частности состав докер-образов меняется чаще, чем требуется производству.
Возможны ситуации, когда в состав разрабатываемого продукта могут попадать нежелательные изменения, которые содержатся во внешних зависимостях. Это особенно актуально во время сертификации продукта. Как следствие — затягивание сертификаций, сбои ночных тестов и интеграционного тестирования, поломки on-premise production (производственной среды, расположенной на собственных ресурсах организации) при накатывании хотфикса и прочее. В новой статье мы описали подход, который позволит избежать таких проблем.
Чего мы хотели добиться
Прежде чем приступать к описанию подхода, пара слов о задачах, которые мы хотели решить:
- Получить полный контроль над составом внешних пакетов в релизе (предсказуемость).
- Зафиксировать составы внешних репозиториев для быстрой выкатки хотфиксов с минимальным дополнительным тестированием (скорость).
- Обеспечить продуктовые стенды QA повторяемым предсказуемым фиксированным окружением (повторяемость).
- Независимость от наличия внешнего канала связи (автономность).
- Моментальное переключение на официальные репозитории при аварии (отказоустойчивость).
- Гарантированная проверка ключей внешних репозиториев в сборочных конвейерах (доверие).
- И самое главное, передать управление и контроль над составом внешних пакетов в руки продуктовых команд и релиз-менеджеров (самоуправление).
Анализ жизненного цикла feature-сборок
Наш подход решает задачу фиксации состава внешних репозиториев на конкретную дату, под релиз или фичу. Следующая схема наглядно показывает управление жизненным циклом релиза, feature-сборки и хотфикса.
Для примера возьмем условный репозиторий Debian Stretch. Данный подход применим и для репозиториев Docker, SaltStack и т. п. На временной шкале зафиксировали три среза на даты T1, T2 и T3.
| T1 | T2 | T3 |
|---|



