GitScrum / Docs
Toutes les Bonnes Pratiques

Feature Flags Progressif | GitScrum

Gérez releases en toute sécurité avec feature flags. GitScrum coordonne déploiements progressifs pour réduire les risques.

6 min de lecture

Les feature flags séparent le déploiement de la release. GitScrum aide les équipes à suivre les fonctionnalités sous flag et à coordonner les déploiements progressifs.

Bases des feature flags

Pourquoi les feature flags

AVANTAGES DES FEATURE FLAGS :
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ SANS FLAGS :                                                │
│ ────────────                                                │
│ Déployer = Releaser                                         │
│ Tous les utilisateurs ont la feature immédiatement          │
│ Rollback nécessite nouveau déploiement                      │
│ Risque big bang                                             │
│                                                             │
│ AVEC FLAGS :                                                │
│ ───────────                                                 │
│ Déployer ≠ Releaser                                         │
│ Activer quand prêt                                          │
│ Désactiver instantanément si problèmes                      │
│ Déploiement graduel possible                                │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ CAS D'USAGE DES FLAGS :                                     │
│                                                             │
│ TOGGLES DE RELEASE :                                        │
│ Déployer feature incomplète, activer quand terminée         │
│ "Ship dark" - code en prod mais off                         │
│                                                             │
│ TOGGLES D'EXPÉRIMENT :                                      │
│ Tester des features en A/B                                  │
│ Comparer les métriques entre variantes                      │
│                                                             │
│ TOGGLES OPS :                                               │
│ Kill switch pour features problématiques                    │
│ Dégradation gracieuse                                       │
│                                                             │
│ TOGGLES DE PERMISSION :                                     │
│ Features premium pour utilisateurs payants                  │
│ Features beta pour early adopters                           │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ EXEMPLE DE CODE :                                           │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ if (featureFlags.isEnabled('new-search')) {             │ │
│ │   return <NewSearchComponent />;                        │ │
│ │ }                                                        │ │
│ │ return <OldSearchComponent />;                          │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

Déploiement progressif

Stratégie de déploiement

ÉTAPES DE DÉPLOIEMENT PROGRESSIF :
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ ÉTAPE 1 : INTERNE (0.1%)                                    │
│ ─────────────────────────                                   │
│ • Équipe de développement uniquement                        │
│ • Attraper les problèmes évidents                           │
│ • Durée : 1-2 jours                                         │
│                                                             │
│ ÉTAPE 2 : EMPLOYÉS (1%)                                     │
│ ────────────────────────                                    │
│ • Tous les employés de l'entreprise                         │
│ • Tests en conditions réelles                               │
│ • Durée : 1-3 jours                                         │
│                                                             │
│ ÉTAPE 3 : UTILISATEURS BETA (5%)                            │
│ ────────────────────────────────                            │
│ • Early adopters inscrits                                   │
│ • Collecter le feedback                                     │
│ • Durée : 3-5 jours                                         │
│                                                             │
│ ÉTAPE 4 : CANARY (10%)                                      │
│ ─────────────────────                                       │
│ • Échantillon aléatoire d'utilisateurs                      │
│ • Surveiller les métriques                                  │
│ • Durée : 2-3 jours                                         │
│                                                             │
│ ÉTAPE 5 : PARTIEL (25%, 50%)                                │
│ ───────────────────────────                                 │
│ • Population plus large                                     │
│ • Confirmer à l'échelle                                     │
│ • Durée : 1-2 jours chaque                                  │
│                                                             │
│ ÉTAPE 6 : DÉPLOIEMENT COMPLET (100%)                        │
│ ────────────────────────────────────                        │
│ • Tous les utilisateurs                                     │
│ • Continuer la surveillance                                 │
│ • Retirer le flag quand stable                              │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ À CHAQUE ÉTAPE :                                            │
│ • Surveiller les taux d'erreur                              │
│ • Observer les métriques de performance                     │
│ • Collecter le feedback utilisateur                         │
│ • Prêt à pauser ou rollback                                 │
└─────────────────────────────────────────────────────────────┘

Suivi des déploiements

SUIVI DES DÉPLOIEMENTS :
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ TÂCHE FEATURE FLAG :                                        │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ FLAG-012 : Déploiement nouvelle expérience recherche   │ │
│ │                                                         │ │
│ │ NOM DU FLAG : new-search-experience                     │ │
│ │ CRÉÉ : 10 Jan 2025                                      │ │
│ │ PROPRIÉTAIRE : @product-lead                            │ │
│ │                                                         │ │
│ │ PLAN DE DÉPLOIEMENT :                                   │ │
│ │ ☑ 12 Jan : Interne (0.1%)                               │ │
│ │ ☑ 14 Jan : Employés (1%)                                │ │
│ │ ☑ 17 Jan : Utilisateurs beta (5%)                       │ │
│ │ ☑ 20 Jan : Canary (10%)                                 │ │
│ │ ☐ 22 Jan : 25% (approbation en attente)                 │ │
│ │ ☐ 24 Jan : 50%                                          │ │
│ │ ☐ 27 Jan : 100%                                         │ │
│ │ ☐ 10 Fév : Retirer le flag                              │ │
│ │                                                         │ │
│ │ MÉTRIQUES À SURVEILLER :                                │ │
│ │ • Latence recherche (p95 < 200ms)                       │ │
│ │ • Taux de clic (≥ baseline)                             │ │
│ │ • Taux d'erreur (< 0.1%)                                │ │
│ │                                                         │ │
│ │ STATUT ACTUEL : Déploiement 10%                         │ │
│ │ Métriques : Tout au vert ✅                              │ │
│ │                                                         │ │
│ │ TRIGGER DE ROLLBACK :                                   │ │
│ │ • Taux d'erreur > 1%                                    │ │
│ │ • Latence > 500ms                                       │ │
│ │ • Plaintes utilisateurs significatives                  │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

Bonnes pratiques

  • Commencez toujours petit avec l'équipe interne
  • Définissez des métriques de succès avant le déploiement
  • Préparez le plan de rollback à l'avance
  • Surveillez activement à chaque étape
  • Documentez le statut dans les tâches GitScrum
  • Définissez une date d'expiration pour chaque flag
  • Nettoyez rapidement après stabilisation
  • Apprenez de chaque déploiement pour améliorer
  • Solutions connexes