Feature flag
Qu'est-ce qu'un feature flag ?
Un feature flag (ou feature toggle, « interrupteur de fonctionnalité ») est une condition dans le code qui décide si une fonctionnalité est visible ou active. L'équipe modifie sa valeur depuis un tableau de bord ou un fichier de configuration, sans livrer de nouvelle version. Une fonctionnalité peut ainsi être déployée en production tout en restant masquée jusqu'à ce que l'équipe soit prête à la mettre en service.
Le principe sépare deux moments autrefois liés : déployer du code et publier une fonctionnalité auprès des utilisateurs. Cette séparation réduit les risques et rend les mises en production bien plus sereines.
Comment fonctionne un feature flag
L'application interroge un service de flags, ou lit une valeur de configuration, pour savoir si la fonctionnalité est activée pour l'utilisateur courant. La réponse détermine le chemin de code exécuté.
if (flags.isEnabled('new-checkout', user)) {
renderNewCheckout();
} else {
renderOldCheckout();
}Les flags peuvent être évalués côté serveur ou dans le navigateur, et leur valeur peut dépendre de l'utilisateur, du pays, de l'offre ou d'un pourcentage aléatoire du trafic.
Les types de feature flags
- Flags de release : masquent un travail inachevé et permettent des déploiements progressifs.
- Flags d'expérimentation : répartissent le trafic entre plusieurs variantes pour des tests A/B.
- Flags d'exploitation : servent d'interrupteur d'urgence pour couper vite une fonctionnalité lourde ou défaillante.
- Flags de permission : réservent une fonctionnalité à une offre, à un groupe bêta ou à des utilisateurs internes.
Feature flag, branche ou configuration : les différences
| Approche | Moment où le changement s'applique | Principal inconvénient |
|---|---|---|
| Feature flag | À l'exécution, instantanément | Ajoute du code conditionnel à maintenir |
| Branche de longue durée | Au merge et au déploiement | Fusions pénibles et retours tardifs |
| Configuration statique | Au prochain redémarrage ou déploiement | Pas de ciblage par utilisateur |
Bonnes pratiques et pièges courants
- Donnez à chaque flag un nom clair, un responsable et une date de suppression prévue.
- Supprimez un flag dès que la fonctionnalité est entièrement déployée, sinon il devient de la dette technique.
- Limitez le nombre de flags actifs et testez les chemins activé et désactivé.
- Prévoyez un état par défaut sûr si le service de flags ne répond pas.
- Journalisez les valeurs vues par un utilisateur pour rendre les bugs reproductibles.
Feature flag chez BeBranded
Les flags s'intègrent naturellement aux workflows automatisés : un webhook peut basculer un flag, et un déploiement peut être échelonné sans nouvelle mise en production. Avec nos services d'automatisation, notre équipe relie flags, alertes et étapes de release pour que les lancements restent maîtrisés et faciles à annuler.