Mécanisme runtime pour activer/désactiver des fonctionnalités sans redéployer.
Un Feature Flag (aussi Feature Toggle ou Feature Switch) est un mécanisme logiciel permettant d'activer ou désactiver une fonctionnalité au runtime sans modifier le code et sans redéployer. Découple deployment (code en prod) de release (feature accessible aux utilisateurs), permettant des stratégies sophistiquées : dark launches, canary releases, A/B testing, kill switches, entitlements per tenant/user.
Catégories de feature flags (Pete Hodgson taxonomy) : (1) Release Toggles — flags court-terme pour activer/désactiver new features during rollout, removed après stabilisation (cycle days/weeks) ; (2) Experiment Toggles — A/B/n testing pour mesurer impact business d'une variante (cycle weeks) ; (3) Ops Toggles — kill switches pour désactiver feature dégradant performance en cas d'incident (long-lived, maintained) ; (4) Permissioning Toggles — entitlements per customer (premium features, beta access, region-specific) ; (5) Circuit Breakers — auto-toggle off dependency failing.
Implémentation simple : code conditionnel `if (featureFlag("new-checkout-flow", user)) { newCheckout() } else { oldCheckout() }`. Le flag service retourne true/false basé sur evaluation rules : user attributes (segment, plan, geo, device), percentage rollout, environment, time-based.
Feature Flag platforms : (1) LaunchDarkly — leader marché, enterprise, real-time updates, ML-based experiment analysis, very expensive (~10/MAU) ; (2) Split.io — A/B testing fort ; (3) Unleash — open source self-hosted (cloud disponible), good free tier ; (4) ConfigCat — abordable, simple UX ; (5) Flagsmith — open source ; (6) GrowthBook — open source A/B testing ; (7) Statsig — analytics fort ; (8) AWS AppConfig + CloudWatch Evidently ; (9) Azure App Configuration Feature Management ; (10) Optimizely (focus experimentation) ; (11) PostHog (open source, analytics + flags + product analytics). Build-vs-buy decision : simple boolean flags faisables en interne (env vars, ConfigMap K8s, Redis-backed), mais full platform features (percentage rollouts, user targeting, audit, A/B testing analytics, SDK polyglot, real-time updates) justifient buy.
Best practices : (1) flag lifecycle management — tag flags by category, owner, expected removal date, audit dead flags ; (2) flag debt cleanup — supprimer flags après feature stable (sinon code spaghetti, conditional hell, regression risks) ; (3) default to OFF — new flags safe-by-default ; (4) gradual rollout via percentage targeting ; (5) cohort targeting (employees first → power users → all) ; (6) instrument analytics (track flag evaluations) ; (7) testing both branches in CI (les 2 codepaths doivent être testés) ; (8) avoid nested flags ; (9) document flag purpose et expected lifecycle dans code ; (10) feature flags as code in version control quand possible (ConfigCat, etc. support).
Kill switches : ops-toggle pattern pour disabling problematic feature without rollback. Example : during incident new feature causing memory leak, ops toggle off feature in seconds via dashboard, hotfix dev calmly, redeploy when ready, toggle back on. Critical for SRE practice. Compétences DOP-C02, AZ-400.
200+ certifications, 400 000+ questions, examens blancs chronométrés.
Voir le catalogue →