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: 3063
SDK підключається до 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, щоб прискорити релізний цикл. Пишіть, ми завжди на зв'язку.







