Feature flag система нужна, когда кодовых путей становится слишком много и выкатка через Git репозиторий занимает часы. При 50+ микросервисах каждое изменение требует координации, а время выкатки растёт до 3–4 часов. Без хорошего toggle-менеджера легко получить каскад ошибок при раскатке нового функционала. Мы в своей практике разворачиваем Unleash для снижения рисков при A/B тестах и canary релизах. Как указано в официальной документации Unleash, система поддерживает множество стратегий активации из коробки. За 5 лет мы внедрили его в проектах с трафиком 1 млн запросов в день, сократив время отката с 30 минут до нескольких секунд.
Unleash — self-hosted система с самым богатым набором встроенных стратегий активации. В отличие от простых on/off систем, Unleash из коробки поддерживает gradualRollout, userWithId, remoteAddress, flexibleRollout с sticky sessioning — без написания кастомной логики. Это позволяет включать функционал постепенно, по пользователям, IP или случайному проценту.
Мы на рынке 5+ лет, реализовали 30+ проектов с feature toggle системами. Ниже — практический опыт настройки Unleash в Kubernetes.
Развёртывание Unleash в Kubernetes
Пример манифеста Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: unleash
spec:
replicas: 2
template:
spec:
containers:
- name: unleash
image: unleashorg/unleash-server:5.12
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: unleash-secrets
key: database-url
- name: SECRET
valueFrom:
secretKeyRef:
name: unleash-secrets
key: admin-secret
- name: INIT_FRONTEND_API_TOKENS
value: "frontend:default.frontend-token"
ports:
- containerPort: 4242
readinessProbe:
httpGet:
path: /health
port: 4242
initialDelaySeconds: 10
PostgreSQL — обязательное требование. SQLite для продакшна не подходит.
Стратегии активации
Unleash разделяет toggle на несколько видов:
- release — постепенная раскатка на процент пользователей
- experiment — A/B тест с несколькими вариантами
- operational — kill switch для проблемного кода
- permission — включение для конкретных ролей/групп
Для gradual rollout с sticky sessioning (пользователь всегда видит одно и то же):
import { Unleash } from 'unleash-client';
const unleash = new Unleash({
url: 'https://unleash.internal/api',
appName: 'api-service',
customHeaders: {
Authorization: 'srv-*****',
},
});
await unleash.start();
// Sticky rollout — пользователь всегда в одном бакете
const context = {
userId: user.id,
sessionId: session.id,
};
if (unleash.isEnabled('new-pricing-page', context)) {
// показываем новую страницу
}flexibleRollout стратегия использует userId или sessionId для consistent hashing — один и тот же пользователь всегда получает одинаковый результат независимо от сервера.
Unleash Edge для снижения задержки
В распределённых системах SDK делает HTTP запрос к Unleash API при каждой evaluate. Unleash Edge — легковесный прокси, который кешируется на уровне kubernetes namespace или даже пода:
- name: unleash-edge
image: unleashorg/unleash-edge:latest
env:
- name: UPSTREAM_URL
value: "https://unleash.internal"
- name: TOKENS
value: "srv-*****"
ports:
- containerPort: 3063SDK подключается к Edge по сети кластера — latency микросекунды вместо миллисекунд на внешний Unleash сервер.
Сравнение Unleash vs LaunchDarkly
| Критерий | Unleash | LaunchDarkly |
|---|---|---|
| Цена | Бесплатно (self-hosted) + Ops-затраты | От $1,000/мес за 10,000 флагов |
| Контроль данных | Полный (ваша инфраструктура) | Данные на серверах вендора |
| Open-source | Да (Apache 2.0) | Нет |
| Производительность | ~5ms evaluate на сервере, <1ms через Edge | ~100ms evaluate без кеша |
| Простота настройки | Средняя (нужен DevOps) | Высокая (SaaS) |
Экономия на подписке при переходе с LaunchDarkly составляет 50-70% при объёме более 10 000 флагов, что в денежном выражении означает сокращение расходов с $2,000/мес до $600-1,000/мес. Однако Unleash требует инженерных часов на поддержку — в среднем 4 часа в месяц, что при ставке $100/час даёт $400/мес дополнительных затрат. Чистая экономия может достигать $1,000-1,600/мес.
Как мы настраиваем Unleash: пошаговый план
- Аудит инфраструктуры — оцениваем текущие микросервисы, количество флагов, требования к latency.
- Деплой сервера и базы — разворачиваем Unleash + PostgreSQL в Kubernetes с помощью Helm или Kustomize.
- Интеграция SDK — подключаем клиенты (Node.js, Go, Python) к серверу или Edge, настраиваем токены.
- Настройка стратегий — создаём кастомные стратегии для canary, A/B, kill switch, импортируем существующие тогглы.
- Мониторинг и алерты — устанавливаем дашборды Grafana, алерты на SLO и MTTR, пишем runbook для инцидентов.
Почему стоит выбрать Unleash, а не LaunchDarkly?
Unleash лучше LaunchDarkly в сценариях, где важны контроль данных и стоимость. При объёме более 10 000 флагов экономия на подписке составляет 50-70%, но вы платите Ops-временем. Unleash полностью open-source — можно форкнуть и дорабатывать под себя. LaunchDarkly даёт меньше хлопот с инфраструктурой, но привязывает к облаку.
Как снизить задержку оценивания флагов?
Используйте Unleash Edge — легковесный прокси, кеширующий флаги в памяти. Edge можно разместить в каждом namespace Kubernetes, чтобы SDK обращался локально. При 1 000 000 evaluate в час Edge снижает нагрузку на сервер в 10 раз и гарантирует latency <1ms.
Что входит в настройку Unleash под ключ
| Компонент | Результат |
|---|---|
| Развёртывание сервера | Рабочий Unleash в вашем кластере с PostgreSQL |
| Интеграция SDK | Подключение одного или нескольких приложений |
| Настройка стратегий | Создание кастомных стратегий для canary, A/B, kill switch |
| Unleash Edge | Установка и настройка Edge для низкой задержки |
| Мониторинг | Дашборды Grafana и алерты на критичные метрики |
Как мы гарантируем надёжность развёртывания?
Мы используем GitOps с ArgoCD, покрываем конфигурацию тестами и предоставляем runbook для инцидентов. Опыт 30+ проектов позволяет избежать типовых ошибок при настройке RBAC, NetworkPolicy и масштабировании. Гарантируем стабильную работу: SLO 99.9% для сервера Unleash.
Срок реализации и как заказать
Развёртывание сервера + базовая интеграция SDK — от 1 дня. Настройка стратегий, Edge прокси, импорт существующих флагов — от 1 до 2 дней. Стоимость рассчитывается индивидуально после аудита инфраструктуры.
Свяжитесь с нами для аудита вашего проекта. Получите консультацию по оптимальной конфигурации Unleash. Закажите настройку feature flags, чтобы ускорить релизный цикл. Пишите, мы всегда на связи.







