Термин · Глоссарий B2B-ПО

Feature Flag (Feature Flag)

Feature Flag (Feature Toggle) – механизм динамического включения и отключения функциональности приложения без деплоя нового кода. Используется для поэтапного выпуска фич, A/B-тестирования, canary-релизов и аварийного отключения проблемного кода.

Буква «F» В категориях: 4 Платформ: 6+

Введение

Feature Flag (Feature Toggle, Feature Switch) – техника разработки ПО, при которой код новой функциональности обёртывается в условный блок, управляемый конфигурационным флагом. Флаг хранится во внешнем хранилище (БД, конфиг-сервис) и может быть изменён без перезапуска или деплоя приложения.

Простейший вид: if (featureFlags.isEnabled("new-checkout")) { ... }. В production-системе значение флага вычисляется на лету – с учётом целевой аудитории, окружения и процента пользователей.

История и контекст

Практика условной компиляции и конфигурационных переключателей существовала давно, но Feature Flag как дисциплина оформилась с распространением непрерывной доставки (CI/CD) и Trunk-Based Development. LaunchDarkly (основан в 2014 году) стал ведущей SaaS-платформой управления флагами. Термин «Feature Toggle» популяризировал Мартин Фаулер. Стандарт OpenFeature (CNCF, 2022) стремится унифицировать API управления флагами.

Как это работает

Компоненты системы управления флагами:

  • Feature Flag Store – хранилище состояния флагов (LaunchDarkly, Redis, БД);
  • SDK – библиотека в приложении, обращающаяся к store для получения значения флага;
  • Targeting Rules – правила определения значения флага для пользователя (процент, атрибуты, среда).

Типы флагов:

  • Release toggle – управление выпуском нового кода (временный, удаляется после 100% rollout);
  • Ops toggle – операционный переключатель: kill switch для аварийного отключения;
  • Experiment toggle – A/B-тест: разные варианты для разных сегментов;
  • Permission toggle – платные/beta-функции для отдельных пользователей.

LaunchDarkly гарантирует доставку изменений флага всем SDK-клиентам за 200 мс через CDN и streaming-соединение.

Где применяется

  • Поэтапный выпуск (progressive delivery) – rollout на 1%, затем 10%, затем 100%;
  • Canary releases – новая версия для небольшой группы пользователей;
  • Dark launch – код в production, но недоступен пользователям до готовности;
  • A/B-тестирование UI и алгоритмов;
  • Kill switch – мгновенное отключение проблемного кода без hotfix-деплоя.

Преимущества и ограничения

Преимущества: разделение деплоя и выпуска (deploy != release); снижение риска релизов; возможность тестировать в production; мгновенный откат без нового деплоя; нет долгоживущих feature-веток.

Ограничения: накопление неудалённых флагов – «feature flag debt»; усложнение кода условными ветками; сложность тестирования всех комбинаций флагов; необходимость мониторинга и управления жизненным циклом флагов.

Связь с другими понятиями

Feature Flag – ключевой инструмент CI/CD и Trunk-Based Development: позволяет всем разработчикам работать в одной ветке, скрывая незаконченные фичи за флагами. Serverless-функции удобно управляются через флаги без переразвёртывания. Техдолг возникает при накоплении устаревших флагов. Паттерн тесно связан с практиками DevOps и практикой экспериментирования в production.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «Feature Flag».

Платформы класса «Feature Flag»

Решения из каталога Цифрового маркетплейса, относящиеся к этому классу ПО. Карточки ведут на полные карточки платформ с тарифами, обзорами и кейсами внедрения.

PV

Platform V Works::Artifactory

ИТ-инфраструктура
Platform V Works::Artifactory от компании СберТех — российский программный продукт из реестра отечественного П...
Цена по запросу
Подробнее →
YC

Yandex Cloud

ИТ-инфраструктура
Yandex Cloud от компании Яндекс — российский программный продукт из реестра отечественного ПО, включённый в то...
Цена по запросу
Подробнее →
Field Connect

Field Connect

ИТ-инфраструктура
Программное обеспечение для удалённого управления и мониторинга сельскохозяйственного оборудования: дождевальн...
Цена по запросу
★ 4.7
Подробнее →

Категории каталога

Разделы каталога Цифрового маркетплейса, в которые входят решения, использующие «Feature Flag».

Где применяется

Отрасли, в которых «Feature Flag» используется на практике. Откройте отраслевой раздел Цифрового маркетплейса, чтобы увидеть подходящие решения, кейсы и новости.

Частые вопросы про Feature Flag

Зачем нужны feature flags, если есть git-ветки?

Git-ветки разделяют код физически – слияние больших веток проблематично. Feature flags позволяют всем работать в одной ветке (trunk), скрывая незаконченные фичи за флагом. Деплой и выпуск становятся независимыми событиями.

Что такое kill switch?

Операционный feature flag, позволяющий мгновенно отключить функциональность без нового деплоя. При инциденте в production можно за секунды отключить проблемный код – без hotfix и CI/CD пайплайна.

Как feature flags используются в A/B-тестах?

Флаг разделяет пользователей на группы: группа A получает старый вариант, группа B – новый. По результатам метрик принимается решение о полном выпуске или откате. Таргетинг может быть по userId, geographic, device.

Что такое feature flag debt?

Накопление устаревших флагов в коде, которые никто не убирает после полного rollout. Засоряет код условными ветками, усложняет тестирование. Флаги должны удаляться после выпуска на 100% аудитории.

Какие инструменты управления флагами существуют?

LaunchDarkly (SaaS-лидер), Unleash (open-source), Flagsmith, ConfigCat. Стандарт OpenFeature (CNCF) унифицирует SDK для vendor-neutral интеграции. Простые случаи можно реализовать через конфиг в Redis или БД.