Print this page

Feature Flags — фичи без new relise

05 October 2025

Feature Flags — гибкие фичи без новых релизов

“Хочешь включать фичи для 5% юзеров без деплоя Или выкатывать опасную фичу только команде QA Feature flags — твоё оружие.” ⚔️

Feature Flags (или Feature Toggles) — это мощный способ управлять функциональностью приложения без нового релиза. Вместо того чтобы выкатывать код и молиться, можно включать и выключать фичи динамически, по условиям, сегментам или средам.


Что такое Feature Flags

Feature Flag — это переключатель, обёрнутый вокруг кусочка функционала. Он решает: показывать эту фичу пользователю или нет.

if feature_flags.is_enabled("new_dashboard"):
    render_new_dashboard()
else:
    render_old_dashboard()

Включил флаг → фича активна.
Выключил → код остаётся, но не исполняется.


Преимущества

  • Быстрая активация фич без деплоя
  • A/B тесты и постепенные выкаты
  • Hotfix без релиза — просто вырубаешь флаг
  • Разные фичи для разных окружений, команд или пользователей
  • Упрощает Blue/Green и Canary стратегии

Виды Feature Flags

Тип Что делает Применение
Release Flags Включают/выключают фичи в проде Постепенный rollout
Experiment Flags Управляют A/B тестами UX тесты, гипотезы
Ops Flags Управляют стабильностью системы Быстрое отключение проблемных частей
Permission Flags Открывают фичи определённым группам Beta-доступ, QA, VIP
Kill Switch Экстренно вырубает часть функционала Защита от каскадных фейлов

Пример интеграции в GitLab CI/CD

Ты можешь менять значение флага в конфигурации или через API, не трогая код:

stages:
  - deploy
  - flags

deploy:
  stage: deploy
  script:
    - ./deploy.sh

enable-feature:
  stage: flags
  script:
    - curl -X POST "https://flags.myapp.com/api/enable/new_dashboard"
  when: manual

После деплоя ты жмёшь кнопку в GitLab → фича активируется на проде.


Feature Flags в Kubernetes / Helm

featureFlags:
  newDashboard: true

И внутри приложения можно считывать эти значения через ConfigMap, переменные окружения или API. Менять можно без нового образа — достаточно kubectl apply или helm upgrade.


Feature Flags + Canary / Blue-Green

Feature Flags идеально комбинируются с другими стратегиями:

  • Canary + Flags → включаешь фичу для 5% пользователей, мониторишь
  • Blue/Green + Flags → выкатываешь код в Green, включаешь флаг только там, тестишь, потом переключаешь трафик

Если что-то не так — просто выключаешь флаг. Никакого rollback.


Best Practices

  • Удаляй старые флаги — не превращай код в свалку
  • Храни флаги централизованно (DB, API, конфиг)
  • Логируй изменения флагов
  • Делай флаги для людей, а не только для кода — бизнес тоже должен ими управлять
  • Используй флаги как часть тестовой стратегии, а не костыль

Популярные инструменты

  • Unleash — open source, крутая интеграция
  • LaunchDarkly — SaaS-решение, гибкая сегментация
  • Flagsmith — open source + hosted
  • GitLab Feature Flags — нативная поддержка в GitLab

Вывод

Feature Flags — это инструмент для безопасных выкатываний, A/B тестов и гибкого контроля релизов. Они позволяют бизнесу включать и выключать фичи без участия разработчиков, а тебе — не нервничать на проде