Работа с флагами
Полный жизненный цикл фиче-флага в можно.: от создания до архивации. Организация флагов по тегам, именование и типичный workflow для команд.
Жизненный цикл флага
Флаг в можно. существует в двух состояниях:
| Состояние | Что происходит |
|---|---|
| Активен | Флаг виден в панели. Его конфигурацию получают SDK и оценивают локально. Состояние по умолчанию после создания. |
| В архиве | Флаг скрыт из основных списков. SDK не получают его конфигурацию. История изменений сохраняется. |
Правила активации флага настраиваются отдельно для каждого окружения — включён/выключен, контекстные условия, сегменты и процентный роллаут. Подробнее — Таргетинг и Роллаут.
Создание флага
Перейдите в раздел Флаги и нажмите «Создать флаг». Обязательные поля:
| Поле | Обязательно | Описание |
|---|---|---|
| Ключ | Да | Уникальный идентификатор, неизменяем после создания |
| Название | Да | Человекочитаемое имя, отображается в панели. |
| Описание | Нет | Для чего флаг, какую проблему решает. |
| Тип | Да | RELEASE — стандартный фиче-флаг для постепенной раскатки. KILLSWITCH — аварийный выключатель. |
| Теги | Нет | Метки для группировки и фильтрации. |
После создания флаг сразу активен. Настройте правила активации — иначе флаг будет возвращать false для всех.
Совет: Ключ флага — это его идентификатор в коде (
isEnabled("new-checkout", ctx)). Делайте ключи осмысленными. Избегайтеflag-42. Рекомендации по именованию — Лучшие практики.
Изменение флага
Все поля кроме ключа можно редактировать. Каждое изменение записывается в аудит.
Типичные изменения:
- Настройка правил активации (включён/выключен, контекстные условия, сегменты, процент)
- Уточнение названия и описания
- Управление тегами
Типичный путь флага в команде
flowchart LR
A[Создание<br/>флага] --> B[dev<br/>100%]
B --> C[staging<br/>QA-тестирование]
C --> D[production<br/>1% канареечный]
D --> E[10%]
E --> F[50%]
F --> G[100%]
G --> H[Удаление<br/>старого кода]
H --> I[Архивация<br/>флага]
Каждый этап — это изменение правил активации на конкретном окружении. Канареечный запуск и постепенная раскатка в production — с мониторингом метрик на каждом шаге.
Пример одного из возможных сценариев — адаптируйте под свою команду:
| Этап | Окружение | Настройка | Кто |
|---|---|---|---|
| Создание | — | Флаг создан, без правил | Разработчик |
| Разработка | dev | Включён, 100% | Разработчик |
| Тестирование | staging | Включён, сегмент QA | QA |
| Канареечный | production | 1–5% | Релиз-инженер |
| Раскатка | production | 10% → 50% → 100% | Релиз-инженер |
| Очистка кода | — | Старый код удалён из приложения | Разработчик |
| Архивация | — | Флаг в архив | Разработчик |
Архивация и удаление
Когда архивировать
- Флаг на 100% и старый код удалён
- Нужно сохранить историю изменений для аудита
- Флаг может понадобиться в будущем
Когда удалять
- Флаг создан по ошибке (опечатка в ключе)
- Экспериментальный флаг, который не пошёл в прод
- Тестовый флаг из локальной разработки
Организация флагов тегами
Теги — это метаданные флага в формате ключ:значение. Они позволяют группировать и фильтровать флаги независимо от имени. Один флаг может иметь несколько тегов.
Зачем нужны теги
У вас 50 флагов. Ключи осмысленные, но найти все флаги команды оформления заказа — невозможно без тегов. Теги решают эту проблему:
| Задача | Без тегов | С тегами |
|---|---|---|
| Найти все флаги checkout-команды | Пролистать все 50 флагов глазами | Фильтр team:checkout — 3 флага |
| Показать все аварийные выключатели | Искать по префиксу kill- в ключах | Фильтр type:killswitch надёжнее |
| Найти флаги конкретного сервиса | Гадать по названиям | Фильтр service:api |
Как создавать теги
Теги создаются в разделе Теги в боковом меню панели. Каждый тег — это пара:
| Поле | Пример |
|---|---|
| Имя тега | team |
| Значение | checkout |
После создания тег можно присвоить любому флагу при создании или редактировании.
Рекомендуемые категории
| Категория | Формат | Примеры |
|---|---|---|
| Команда | team:название | team:checkout, team:platform |
| Тип флага | type:назначение | type:killswitch, type:experiment |
| Сервис | service:имя | service:api, service:payments |
| Статус | status:состояние | status:deprecated, status:permanent |
На одном флаге может быть несколько тегов: team:checkout, type:killswitch, service:api — флаг одновременно принадлежит команде, классифицирован по типу и привязан к сервису.
Что дальше?
- Таргетинг — контекстные правила, сегменты
- Роллаут — процентная раскатка и канареечные релизы
- Аудит — кто и когда менял флаг
- Метрики — мониторинг использования
- Лучшие практики — управление флаговым долгом