EN
Блог · Feature flags · 2026

Gradual rollout: как выкатывать фичу на 5% пользователей

Постепенный выкат — это страховка. Разбираем стратегии: процент пользователей, сегменты, sticky-сессии — и почему важна детерминированность.

Выкатить фичу сразу на 100% пользователей — значит поставить весь трафик на один эксперимент и узнать о проблеме одновременно со всеми. Постепенный выкат (gradual rollout) превращает релиз из события в управляемый процесс: сначала 1%, потом 5%, 25%, 100% — с возможностью остановиться или откатиться на любом шаге.

Первый и главный технический нюанс — детерминированность. Один и тот же пользователь должен стабильно попадать в одну и ту же группу между запросами и перезагрузками, иначе интерфейс будет «мигать»: то новая кнопка, то старая. Решается это хешированием стабильного идентификатора (userId, sessionId): берем хеш, отображаем его в диапазон 0–100 и сравниваем с текущим процентом выката. Это и есть sticky-сессии.

Важно, чтобы распределение было равномерным и не зависело от неудачной соли. Поэтому идентификатор обычно солят именем флага — тогда пользователь, попавший в 5% одной фичи, не окажется автоматически в 5% всех остальных, и когорты не «слипаются».

Дальше — сегменты и таргетинг. Кроме процента, выкат можно ограничить: только внутренние сотрудники, только конкретный регион, только бета-группа, только пользователи определенного тарифа. Unleash позволяет комбинировать несколько стратегий в одном флаге — например, «100% для сотрудников И 5% для всех остальных».

Постепенный выкат имеет смысл только вместе с наблюдаемостью. На каждом шаге мы смотрим на метрики когорты: ошибки, латентность, конверсию, бизнес-показатели. Полезно задать guardrail-метрики и порог, при пробитии которого выкат автоматически откатывается — это уже canary-релиз.

Отдельно стоит держать «рубильник» — ops-тоггл (kill switch), который мгновенно выключает фичу целиком, даже если она давно на 100%. Под нагрузкой это спасает: тяжелую функцию можно отключить за секунду, не выкатывая релиз.

Собранная воедино схема выглядит так: включили флаг на 1%, посмотрели графики, расширили до 5% и 25%, убедились, что метрики в порядке, довели до 100% и удалили флаг. Если что-то пошло не так — процент откручивается назад, и до большинства пользователей проблема просто не доходит. Постепенный выкат — это, по сути, страховой полис на каждый релиз.