Qu’est-ce qu’un feature flag
Un feature flag est une technique pour activer ou désactiver certaines fonctionnalités ou segments de code dans une application à l’exécution.
De cette façon, on contrôle la sortie de nouvelles fonctionnalités, on peut expérimenter avec des fonctionnalités, et gérer les changements avec plus de flexibilité.
Pourquoi est-ce bien ?
Les feature flags peuvent être pratiques pour les tests, faire des déploiements graduels, et répondre rapidement aux problèmes en activant ou désactivant des fonctionnalités spécifiques sans redéployer toute l’application.
Quelques avantages moins évidents :
- Réduire l’écart entre les déploiements
En découplant la sortie de fonctionnalité du déploiement de code, on peut intégrer des fonctionnalités dans la base de code sans les activer immédiatement.
Donc on peut déployer son code en production sans sortir les fonctionnalités elles-mêmes.
Minimiser l’écart entre les déploiements augmente la confiance, rendant le déploiement moins risqué car si on continue à déployer régulièrement, les déploiements restent petits, ce qui facilite l’identification de la source du problème quand il survient.
-
Tester avec des groupes spécifiques
Les feature flags permettent de tester avec des sous-groupes d’utilisateurs spécifiques. On peut activer sélectivement une fonctionnalité pour un sous-ensemble d’utilisateurs tout en la gardant cachée pour les autres.
Cette approche ciblée est utile pour collecter les retours utilisateurs. (Pensez : groupe QA, management, power users, etc.)
Comment faire des feature flags
-
SaaS / OpenSource basés sur le réseau Je ne ferai pas de review, mais c’est du bon matériel, parfois avec un price tag.
- https://launchdarkly.com/
- https://www.flagsmith.com/ (a une version open source)
- https://www.getunleash.io/ (est principalement open source)
- https://www.growthbook.io/ (a une version open source)
- https://openfeature.dev/ (open source)
-
Solutions alternatives
-
Mettez juste du YAML dessus Voici un exemple de comment hacker sa propre solution de feature flag avec du YAML
-
Library de langage - un exemple avec Go
-
Spécifique au framework, un exemple avec Django
J’ai récemment commencé à utiliser Django-Waffle et c’est plutôt sympa.
-