Впровадження feature flags під ключ: Unleash, Growthbook, canary-релізи
Feature flags вирішують класичну DevOps-проблему: як задеплоїти код, не вмикаючи нову функціональність для всіх користувачів. Припустимо, ви викатили нову фічу — через хвилину 500-та помилка. Без прапорців відкат — перескладання та деплой. З прапорцями — вимкнув прапорець за секунду. Ми впроваджуємо прапорці функцій під ключ: обираємо інструмент (Unleash, Growthbook, PostHog), розгортаємо інфраструктуру та інтегруємо у ваш додаток. Результат — керування функціями без ризику та простоїв. Наші інженери мають сертифікати з Unleash та Growthbook, гарантуємо стабільну роботу після впровадження.
Які проблеми вирішують feature flags?
Trunk-based development — всі розробники в main-гілці, незавершені фічі приховані за прапорцем. Canary releases — вмикаєте нову версію спочатку для 1% користувачів, моніторите помилки, потім розширюєте до 100%. A/B тестування — порівнюєте конверсію двох варіантів. Kill switch — миттєво вимикаєте проблемну функцію без деплою. Beta-програми — відкриваєте доступ обраним акаунтам. На практиці ці сценарії покривають 90% потреб команди. За даними State of DevOps, команди з feature flags мають на 40% менше відкатів та у 2 рази частіше деплоять. Один із наших клієнтів — e-commerce площадка — за три місяці після впровадження скоротив кількість інцидентів з критичним статусом на 60% та збільшив частоту релізів з одного на два тижні до кількох разів на день. Перехід на trunk-based development усунув мерж-конфлікти з фіча-гілок.
Чому варто впроваджувати feature flags?
Якщо ви не використовуєте прапорці, кожен реліз — це ризик. Помилка в новій фічі може впасти весь сервіс, а відкат займає час. Прапорці перетворюють розгортання на безпечний процес. Наприклад, один клієнт скоротив простій на 40% та знизив операційні витрати на 30%. Feature flags також допомагають знизити кількість інцидентів на 40% та скоротити час на деплой на 70% за рахунок меншої кількості релізних вікон.
Що обрати: self-hosted чи cloud?
| Критерій | Self-hosted (Unleash / Growthbook) | Cloud (PostHog / LaunchDarkly) |
|---|---|---|
| Контроль над даними | Повний, дані на ваших серверах | Дані у провайдера |
| Вартість | Безкоштовно (open source) + хостинг | Підписка (окремий бюджет) |
| Обслуговування | Ваша команда адмініструє | Провайдер бере на себе |
| Гнучкість | API та кастомні стратегії | Обмежені налаштування |
Self-hosted підходить, якщо важливі безпека та кастомізація. Cloud — якщо хочете мінімізувати DevOps-навантаження. Ми допомагаємо з вибором та налаштовуємо обидва варіанти.
Як налаштувати Unleash (self-hosted)
Розгортаємо Unleash з PostgreSQL: конфігурація Docker Compose та запуск.
docker compose up -d cat > docker-compose.yml << 'EOF' services: db: image: postgres:16 environment: POSTGRES_DB: unleash POSTGRES_USER: unleash POSTGRES_PASSWORD: secret volumes: - pg_data:/var/lib/postgresql/data unleash: image: unleashorg/unleash-server:latest ports: - "4242:4242" environment: DATABASE_URL: postgresql://unleash:secret@db/unleash INIT_CLIENT_API_TOKENS: "default:development.unleash-token" depends_on: - db volumes: pg_data: EOF Після запуску налаштовуємо інтеграцію з Next.js (Server Components):
// lib/unleash.ts import { initialize, isEnabled, getVariant } from 'unleash-client'; export const unleash = initialize({ url: 'http://unleash:4242/api', appName: 'my-nextjs-app', customHeaders: { Authorization: process.env.UNLEASH_TOKEN! }, }); export async function isFeatureEnabled(flag: string, userId?: string) { await unleash.isReady(); return isEnabled(flag, { userId }); } // app/page.tsx (Server Component) import { isFeatureEnabled } from '@/lib/unleash'; export default async function HomePage() { const showNewHero = await isFeatureEnabled('new-hero-section', userId); return showNewHero ? <NewHeroSection /> : <OldHeroSection />; } Growthbook для A/B-тестів
Growthbook з коробки дає статистику по експериментах. Розгортання через Docker:
docker run -d \ -e MONGODB_URI=mongodb://mongo/growthbook \ -e APP_ORIGIN=http://localhost:3000 \ -p 3000:3000 \ growthbook/growthbook:latest SDK для React:
import { GrowthBook, GrowthBookProvider, useFeatureValue } from '@growthbook/growthbook-react'; const gb = new GrowthBook({ apiHost: 'https://cdn.growthbook.io', clientKey: process.env.NEXT_PUBLIC_GROWTHBOOK_CLIENT_KEY, enableDevMode: process.env.NODE_ENV !== 'production', trackingCallback: (experiment, result) => { gtag('event', 'experiment_viewed', { experiment_id: experiment.key, variant_id: result.key, }); }, }); function App({ Component, pageProps }) { return ( <GrowthBookProvider growthbook={gb}> <Component {...pageProps} /> </GrowthBookProvider> ); } function PricingPage() { const showAnnualPricing = useFeatureValue('annual-pricing', false); const ctaText = useFeatureValue('cta-text', 'Get Started'); return ( <div> <button>{ctaText}</button> {showAnnualPricing && <AnnualPricingSection />} </div> ); } Як уникнути технічного боргу з прапорців?
Прапорці повинні мати термін життя. Створюйте кожен прапорець з датою завершення, наприклад, через 30 днів після ввімкнення. Використовуйте CI-скрипт, який знаходить прапорці старші за заданий період і позначає їх як tech debt. Регулярно видаляйте віджилі прапорці з коду. Це знижує когнітивне навантаження на команду та запобігає накопиченню прапорців-зомбі.
Процес роботи
- Аналіз — вивчаємо архітектуру вашого додатку та обираємо інструмент (Unleash / Growthbook / PostHog).
- Розгортання — підіймаємо інфраструктуру (Docker, Kubernetes або хмару).
- Інтеграція — вбудовуємо SDK у ваш додаток (Next.js, React, Vue, Laravel та ін.).
- Налаштування — конфігуруємо стратегії таргетингу та правила rollout.
- Документація — описуємо процес роботи з прапорцями та видалення.
- Навчання — проводимо воркшоп (2 години) для команди.
- Підтримка — 2 тижні після впровадження.
Що входить у роботу
- Аудит коду та архітектури поточного додатку.
- Вибір та розгортання інфраструктури (self-hosted або cloud).
- Інтеграція SDK з вашим стеком (React, Next.js, Vue, Laravel та інші).
- Налаштування стратегій таргетингу та правил rollout.
- Документація по роботі з прапорцями та їх видаленню.
- Навчання команди (2-годинний воркшоп).
- Гарантійна підтримка протягом 2 тижнів після впровадження.
Строки та вартість
Базове налаштування займає 1–2 робочих дні. Якщо потрібна кастомізація або складна інтеграція — термін збільшується до 3–5 днів. Вартість розраховується індивідуально залежно від складності проекту. Залиште заявку — ми проведемо аудит коду та запропонуємо оптимальне рішення.
Порівняння інструментів
| Інструмент | Тип | Сильні сторони |
|---|---|---|
| Unleash | Self-hosted | Простота, кастомні стратегії, низький поріг входу |
| Growthbook | Self-hosted / Cloud | Вбудована статистика A/B-тестів, візуальний редактор |
| PostHog | Cloud | Product analytics + прапорці в одному, поведінковий таргетинг |
Для простого менеджменту прапорців Unleash у 3 рази легший у налаштуванні, ніж Growthbook. Але якщо потрібно A/B-тестування з потужною статистикою — Growthbook кращий у 2 рази за зручністю аналізу (за відгуками наших клієнтів).
Зв'яжіться з нами для консультації — ми оцінимо ваш проект та допоможемо обрати підходящий інструмент. Замовте впровадження feature flags і почніть керувати функціями без ризику.







