Développement sur mesure

Feature flags et déploiement progressif : livrer plus vite et réduire les risques en production

🤖 Analyser avec l'IA

Obtenez un résumé intelligent et des insights personnalisés

Un feature flag est un interrupteur placé dans le code. Il active ou désactive une fonctionnalité sans nouveau déploiement. Le déploiement progressif expose une nouvelle version à une part croissante des utilisateurs. Ensemble, ces deux techniques séparent la mise en production de la mise à disposition aux utilisateurs.

Une mise en production « tout ou rien » expose 100 % des utilisateurs au moindre défaut. Le 1er août 2012, Knight Capital a perdu environ 440 millions de dollars après un problème d’installation logicielle. Alors, nous vous aidons à éviter ce scénario. Voyons ensemble trouverez les types de flags, les stratégies de déploiement, les outils et les règles d’hygiène. AquilApp vous applique ces pratiques pour aider ses clients à réussir le déploiement logiciel.

Qu’est-ce qu’un feature flag et pourquoi en utiliser ?

Feature Flags

Un feature flag (ou feature toggle) est une condition dans le code qui décide si une fonctionnalité est visible. L’équipe change sa valeur depuis une console, sans redéployer.

Pourquoi l’utiliser ? Voici quatre raisons valables :

  • Déployer sans exposer : le code part en production, mais reste désactivé.
  • Couper en quelques secondes : le flag sert d’interrupteur d’urgence en cas d’incident.
  • Tester sur un segment : vous activez la fonction pour vos collaborateurs, puis pour 5 % des clients.
  • Fusionner plus souvent : les branches de code restent courtes, ce qui limite les conflits.

Ces pratiques accompagnent les équipes les plus performantes. Selon le rapport DORA (DevOps Research and Assessment) 2025 de Google Cloud, 16,2 % des équipes déploient à la demande, en continu.

Le sujet est encore plus sensible sur mobile. Les stores valident chaque version. Donc, vous ne pouvez pas annuler une mise à jour en quelques minutes. Par exemple, un flag distant, via Firebase Remote Config, désactive une fonctionnalité défaillante sans publier de nouvelle version.

Quels sont les types de feature flags ?

La classification de référence vient de Pete Hodgson. Elle distingue quatre types selon l’objectif et la durée de vie.

TypeUsageDurée de vieExemple
ReleaseLivrer du code inachevé, masquéJours à semainesNouveau tunnel de paiement caché
ExperimentComparer deux variantesSemainesDeux versions d’un bouton
OpsCouper une fonction sous forte chargeCourte à longueDésactiver les recommandations lors d’un pic
PermissionRéserver une fonction à un segmentLongueOption réservée aux abonnés premium

Source : Pete Hodgson, « Feature Toggles (aka Feature Flags) », martinfowler.com, 2017.

Les flags de release sont temporaires. D’un autre côté, les flags ops et permission peuvent durer des années. Cette différence structure la gouvernance, détaillée plus bas.

Déploiement progressif : quelle différence entre canary, blue-green et rolling update ?

Un déploiement progressif remplace ou expose une nouvelle version par étapes. De quoi limiter le nombre d’utilisateurs touchés en cas de défaut. Trois stratégies dominent.

CritèreCanaryBlue-greenRolling update
PrincipePetit pourcentage du trafic vers la nouvelle versionDeux environnements identiques, bascule du traficRemplacement progressif des instances
Retour arrièreRapideQuasi instantanéPlus lent
Coût d’infrastructureFaible à moyenÉlevé (environnement doublé)Faible
Cas idéalValider sous trafic réelMise à jour critiqueMise à jour courante sur Kubernetes

Sources : Google SRE Workbook, « Canarying Releases » (sre.google) ; Kubernetes, documentation « Deployments » (kubernetes.io) ; Martin Fowler, « BlueGreenDeployment » (martinfowler.com).

Nous recommandons le canary dans la majorité des projets. Le blue-green convient quand le retour arrière doit être immédiat, à condition d’accepter le surcoût.

Le flag et le canary ne jouent pas le même rôle. En effet, le flag agit sur une fonctionnalité. D’un autre côté, le canary agit sur une version déployée. Vous pouvez donc les combiner.

Sur mobile, les stores proposent déjà un déploiement par paliers. En effet : 

  • Apple offre une « phased release » sur 7 jours. 
  • Google Play propose des « staged rollouts » par pourcentage 

Quels outils choisir pour votre feature flags : LaunchDarkly, Unleash, Flagsmith ou Statsig ?

Choisissez selon quatre critères : hébergement, open source, expérimentation intégrée et SDK (Software Development Kit) mobile.

OutilModèleOpen sourceA/B testingSDK mobile
LaunchDarklySaaSNonOui, intégréOui
UnleashAuto-hébergé ou SaaSOuiLimité (variantes)Oui
FlagsmithAuto-hébergé ou SaaSOuiVia outils d’analyse tiersOui
StatsigSaaSNonOui, cœur de l’offreOui

Source : documentations officielles des éditeurs, consultées en [date de rédaction]. Vérifiez les offres et les prix à cette date.

Le standard OpenFeature limite la dépendance à un éditeur. Ce projet propose une API neutre pour évaluer les flags. La CNCF (Cloud Native Computing Foundation) l’a accepté comme projet « incubating » en décembre 2023.

Notre avis : une PME choisit Unleash ou Flagsmith pour maîtriser ses coûts. Une ETI ou un grand compte qui veut de l’expérimentation intégrée choisit LaunchDarkly ou Statsig. Vérifiez aussi où vos données de ciblage sont hébergées, au regard du RGPD (Règlement général sur la protection des données). Notre article sur la sécurité à la mise en production détaille ce point.

Comment intégrer les feature flags dans votre pipeline CI/CD ?

Intégration Feature Flags

La CI/CD (intégration et livraison continues) est la chaîne automatisée qui teste et déploie votre code. Les flags s’y intègrent en cinq étapes :

  1. Fusionnez le code sur la branche principale, flag désactivé.
  2. Déployez en production.
  3. Activez le flag pour l’équipe interne.
  4. Élargissez par paliers : 1 %, 10 %, 50 %, puis 100 %.
  5. Supprimez le flag une fois la fonction stabilisée.

Fixez des critères d’arrêt avant chaque palier : taux d’erreur, latence, taux de sessions sans plantage sur mobile. Un dépassement déclenche la désactivation. Cette discipline s’inscrit dans la méthode DevOps.

Quelles bonnes pratiques adopter pour votre feature flags : nommage, nettoyage et gouvernance ?

Un flag oublié devient une dette technique. Appliquez ces règles :

  • Adoptez une convention de nommage (équipe, fonction, date).
  • Attribuez un propriétaire et une date d’expiration à chaque flag.
  • Supprimez les flags de release dès 100 % d’exposition.
  • Testez les deux chemins : flag actif et flag inactif.
  • Tracez qui modifie quoi dans un journal d’audit.

Le cas Knight Capital l’illustre. Selon l’ordonnance de la SEC (2013), un ancien code dormant a été réactivé par un flag réutilisé. Le déploiement incomplet a fait le reste.

Comment mesurer l’impact réel de votre feature flags avec l’A/B testing ?

Test Feature Flags

Un test A/B compare deux variantes auprès de groupes d’utilisateurs distincts. De quoi vous permettre de mesurer laquelle produit le meilleur résultat. Le flag répartit le trafic entre les variantes.

Suivez quatre étapes :

  1. Formulez une hypothèse.
  2. Choisissez une seule métrique principale.
  3. Fixez une durée minimale avant de lancer.
  4. Définissez un seuil de significativité statistique.

Néanmoins, faites attention à deux erreurs : arrêter le test trop tôt et suivre trop de métriques. Mesurez aussi l’effet technique avec les indicateurs DORA, comme le taux d’échec des changements.

FAQ sur les feature flags

Un feature flag active une fonctionnalité précise, sans redéployer. Un canary release expose une nouvelle version à une petite part du trafic. Les deux techniques se combinent.

Oui. Un SDK mobile ou un service comme Firebase Remote Config récupère la valeur du flag à distance. Vous désactivez ainsi une fonction sans nouvelle validation des stores.

Non. Unleash et Flagsmith existent en open source et s’auto-hébergent. Un outil payant apporte surtout l’expérimentation intégrée et le support.

Un flag de release se supprime dès 100 % d’exposition, souvent en quelques semaines. Un flag ops ou permission peut rester durablement, avec un propriétaire identifié.

Conclusion

Les feature flags et le déploiement progressif réduisent le risque de chaque mise en production. Commencez petit : un flag de release et un canary sur une seule fonctionnalité. Étendez ensuite la pratique, avec des règles de nettoyage claires. 

Pour cadrer l’ensemble, consultez notre guide de gestion de projet informatique. Pour être accompagné, contactez notre agence de développement logiciel à Nantes.

Passez à la vitesse supérieure
Nos experts vous accompagnent pour optimiser le code, alléger les fonctionnalités et intégrer les meilleures pratiques de développement mobile. Offrez à vos utilisateurs une expérience sans ralentissement.
Être accompagné

Contactez-nous

Vos coordonnées

Votre projet

Décrivez votre projet, vos objectifs et toute information utile pour mieux comprendre votre besoin.

Réponse sous 24h ouvrées — Vos données restent confidentielles.
Partagez ce contenu
ando, Author at AquilApp
En savoir plus sur l'auteur

Retrouvez d'autres articles dans la même catégorie

Test-Driven Development (TDD) en pratique : écrire des tests avant le code pour une qualité garantie

Le TDD Test-Driven Development (développement piloté par les tests) est une méthode où le développeur écrit un test avant le code. Le cycle tient en trois temps : un test échoue. Le code le fait passer. Puis, le développeur nettoie. Selon l’étude de Nagappan et ses collègues (Microsoft et IBM, 2008), le TDD réduit la… Poursuivre la lecture Test-Driven Development (TDD) en pratique : écrire des tests avant le code pour une qualité garantie

Développement sur mesure
WebSocket vs Server-Sent Events (SSE) : quel protocole temps réel pour votre application en 2026 ?

Le comparatif WebSocket vs SSE arbitre le choix technologique des échanges d’informations instantanés sur le web moderne. Selon Cloudflare, 65 % des flux de streaming d’intelligence artificielle exploitent désormais Server-Sent Events en 2026. Cette sélection détermine directement la latence perçue, la charge processeur des serveurs et la résilience réseau des interfaces clientes. L’exigence d’interactivité immédiate… Poursuivre la lecture WebSocket vs Server-Sent Events (SSE) : quel protocole temps réel pour votre application en 2026 ?

Développement sur mesure
Storybook : documenter et tester vos composants UI en isolation pour un développement plus fiable

Storybook : cet environnement de développement frontend isole la conception des composants d’interface des contraintes applicatives complexes. Selon State of JS, 82 % des équipes d’ingénierie UI utilisent cet atelier logiciel pour documenter leurs briques graphiques en 2026. Cette méthode élimine les dépendances d’arrière-plan, accélère l’intégration visuelle et garantit une réutilisabilité parfaite du code. La… Poursuivre la lecture Storybook : documenter et tester vos composants UI en isolation pour un développement plus fiable

Développement sur mesure
Monorepo avec Nx et Turborepo : simplifier la gestion de vos projets multi-packages en 2026

Un monorepo est un dépôt Git unique qui regroupe plusieurs applications et bibliothèques. Nx et Turborepo sont deux outils qui accélèrent les builds et les tests d’un monorepo grâce au cache. Notamment, Turborepo convient aux espaces de travail JavaScript simples. De son côté, Nx convient aux organisations qui veulent une plateforme complète. Votre équipe maintient… Poursuivre la lecture Monorepo avec Nx et Turborepo : simplifier la gestion de vos projets multi-packages en 2026

Développement sur mesure
AquilAppAQUILAPP
275 boulevard Marcel Paul
44800 Saint Herblain
Du lundi au vendredi - 9h à 18h
Une idée de projet digital ?

AquilApp est une agence web spécialisée dans le développement d'applications web et mobiles sur-mesure. Basés à Nantes, nous intervenons dans toute la France pour accompagner les startups, PME et grands groupes dans leur transformation digitale.

Contactez-nous

Rejoignez notre newsletter

Inscrivez-vous pour recevoir nos dernières actualités et conseils en développement web et mobile.
Ce site a été créé avec <3 par AquilApp

Haut de page

Contactez-nous

Appelez-nous

WhatsApp

Prendre RDV