FeatureChaos — управление флагами фич и процентными выкатками
FeatureChaos — это легковесный сервис для управления фичами, процентными выкатками и таргетингом по атрибутам. Используется для внедрения TBD (Trunk Based Development). Он предоставляет:
gRPC API со стримингом изменений конфигурации в реальном времени
HTTP Admin API и простую UI-страницу для управления
Хранилище в Postgres, кэширование, сбор статистики использования
SDK для Go, Python и PHP для простой интеграции в сервисы
Ключевые возможности
Процентное включение на уровне фичи: 0–100%.
Таргетинг по точному совпадению пары ключ=значение → процент из параметра (например, country=US → 50%).
Стрим обновлений: клиенты получают только новые версии конфигурации без опросов.
Реактивная система работы с фичами: вычисление процентов и включение/выключение фич происходит в реальном времени на стороне клиента.
Сбор статистики использования фич (auto-send из SDK) и защита от удаления активных сущностей.
Привязка фич к сервисам: разграничение доступа «какие сервисы видят какую фичу».
Простое администрирование через HTTP API и встроенную страницу /.
Возможность интегрировать в существующие сервисы и CI/CD pipelines через HTTP API.
Точное совпадение пары ключ=значение → процент из параметра
Если точного совпадения не найдено — процент на уровне фичи
Процент клэмпится в диапазон 0..100. При 0 — всегда выключено, при 100 — всегда включено.
Распределение стабильное относительно пары (featureName, seed) с использованием быстрых хешей, чтобы один и тот же пользователь стабильно попадал в свою группу.
Статистика
SDK по умолчанию отправляет события использования (можно отключить AutoSendStats=false / auto_send_stats=False).
Сервис хранит агрегаты, использует их для индикации активности и блокировки удаления активных фич/сервисов.
Безопасность и развёртывание
Admin API не содержит встроенной аутентификации — рекомендовано размещать за обратным прокси с аутентификацией и TLS, ограничить доступ сетью.
Храните cfg.yaml и секреты отдельно от образа, монтируйте их при запуске.