FeatureChaos

module
v0.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2025 License: BSD-2-Clause

README

pipeline status

Latest Release

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.

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

  • Простота интеграции (готовые SDK, минимальные зависимости)
  • Низкая нагрузка на сервер за счёт стриминга обновлений
  • Стабильная раскатка (детерминированное распределение по бакетам)
  • Масштабируемая архитектура (Postgres + кэш, отдельные репозитории и сервисы)

Быстрый старт

Полная документация

Требования

  • Postgres 13+
  • Go 1.23+ (рекомендуется 1.24)
  • Redis (для кэширования)

Как принимается решение включения фичи

Порядок приоритета процентов:

  1. Точное совпадение пары ключ=значение → процент из параметра
  2. Если точного совпадения не найдено — процент на уровне фичи
  3. Процент клэмпится в диапазон 0..100. При 0 — всегда выключено, при 100 — всегда включено. Распределение стабильное относительно пары (featureName, seed) с использованием быстрых хешей, чтобы один и тот же пользователь стабильно попадал в свою группу.

Статистика

  • SDK по умолчанию отправляет события использования (можно отключить AutoSendStats=false / auto_send_stats=False).
  • Сервис хранит агрегаты, использует их для индикации активности и блокировки удаления активных фич/сервисов.

Безопасность и развёртывание

  • Admin API не содержит встроенной аутентификации — рекомендовано размещать за обратным прокси с аутентификацией и TLS, ограничить доступ сетью.
  • Храните cfg.yaml и секреты отдельно от образа, монтируйте их при запуске.
  • Следите за резервным копированием Postgres.

Лицензия

См. LICENSE.txt.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL