Northwind
← Блог
Инженерия

Ветки-превью: своё окружение на каждый запрос на слияние

ППётр Шапошников21 августа 2026 · 8 минут чтения

Как мы научились поднимать копию сервиса для каждого изменения за сорок секунд и почему это дешевле, чем общий стенд.

Общий стенд ломается в самый неподходящий момент: двое разработчиков выкатили на него свои ветки, тестировщик проверяет третью, а менеджер показывает заказчику четвёртую. Мы прожили так первые два года и решили, что каждому запросу на слияние нужно своё окружение.

Как это устроено

Когда открывается запрос на слияние, сборка кладёт образ в реестр проекта, а планировщик поднимает копию сервиса с адресом по номеру запроса. Данные берутся из обезличенного снимка, который обновляется раз в сутки. Окружение живёт, пока открыт запрос, и удаляется через час после слияния или закрытия.

# .northwind/preview.yml
preview:
  image: $BUILD_IMAGE
  data: snapshot/daily
  ttl_after_merge: 1h
  resources: { cpu: 1, memory: 1Gi }

Почему это дешевле

Окружение спит, когда к нему никто не обращается: первый запрос будит его за две-три секунды. В среднем у нас одновременно живут 30-40 превью, но ресурсы реально потребляют пять-шесть. Общий стенд, который работал круглосуточно, стоил дороже.

Самый частый отзыв от команд: «мы перестали спрашивать в чате, кто сейчас на стенде».

Что пришлось решить

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

Ветки-превью доступны на тарифах «Команда» и «Корпоративный». Что изменилось в последнем выпуске - в журнале изменений.

П
Пётр Шапошников
руководитель платформенной команды Northwind

Читать дальше: Отчёт о зависимостях без паники: что чинить сегодня, а что подождёт

© 2026 Northwind. ООО «Northwind», ИНН 5887034747Продажи: +7 (8412) 48-23-31