Service de gestion
des Feature Flags
en open source
Innovate Your Software Faster without Risk
Quelles sont les alternatives viables à LaunchDarkly pour le feature flagging?
Cet article a été écrit par LifeCycle. Pour plus d'informations, consultez la version anglaise.
Avec une pléthore d'Feature Flags et d'outils d'expérimentation disponibles, identifier une alternative viable à LaunchDarkly peut s'avérer complexe. Pour faciliter cette exploration, j'ai passé en revue de nombreux outils de gestion des Feature Flags — bien que pas tous — en examinant leurs sites officiels, leur documentation, leurs dépôts GitHub et leurs blogs. Cette comparaison se concentre sur divers aspects, y compris la disponibilité en open-source, les offres SaaS et les comparaisons de fonctionnalités avec LaunchDarkly.
Pour un aperçu rapide, référez-vous à la ToC (Table des matières) « Sur cette page » sur le côté gauche pour naviguer vers les sections qui vous intéressent.
Outils de Feature Flags
J'ai mené une recherche approfondie sur divers outils d'Feature Flags, en utilisant des ressources telles que Google, GitHub, Reddit, Hacker News et d'autres plateformes en ligne renommées. Voici une liste de mes découvertes :
Apptimize, Bucketeer, CloudBees, ConfigCat, DevCycle, FeatBit, FeatureHub, FeatureProbe, ff4j, Flagship, Flagr, Flagsmith, Flipper, Flipt, geteppo, GoFeatureFlag, Growthbook, Harness, piranha, PostHog, prefab.cloud, rmflags, split.io, StatSig, tggl.io, Unleash
Outils de Feature Flags Open Source
LaunchDarkly offre un outil/plateforme pour développeurs au niveau de l'infrastructure. Pour les développeurs, la nature open-source de tels outils est cruciale, surtout lorsqu'ils sont profondément intégrés dans leur logiciel. Par conséquent, les outils open-source méritent une attention particulière en tant qu'alternatives viables à LaunchDarkly. Voici une liste d'outils d'Feature Flags open-source :
Bucketeer, FeatBit, FeatureHub, FeatureProbe, ff4j, Flagr, Flagsmith, Flipper, Flipt, GoFeatureFlag, Growthbook, piranha, PostHog, Unleash
Pile Technologique
La majorité des alternatives utilisent JavaScript/TypeScript pour leurs applications front-end. Dans ce contexte, « pile technologique » fait principalement référence à leurs services back-end et de données. Je n'ai pas inclus les outils qui ne sont pas open-source dans cette discussion.
Langage de Programmation | Outils |
---|---|
JavaScript/TypeScript | Bucketeer, Growthbook, Unleash |
Python | PostHog, Flagsmith |
C# | FeatBit |
Java | ff4j, piranha |
Go | Flagr, Flipt, GoFeatureFlag |
Rust | FeatureProbe |
Dart | FeatureHub |
Ruby | Flipper |
Solution de Déploiement Helm Chart Open Source
Alors que ces outils open-source offrent des options d'installation Docker Compose, le déploiement via Helm Chart est de plus en plus privilégié par les entreprises. Voici une liste d'outils que j'ai trouvés en ligne qui proposent des solutions de déploiement Helm Chart open-source :
FeatBit, Flagsmith, PostHog, Unleash
Fonctionnalités
Les différents fournisseurs proposent une variété de fonctionnalités, et il est difficile de les lister de manière exhaustive. Par conséquent, j'ai mis en évidence certaines des fonctionnalités clés de LaunchDarkly. Dans cette comparaison, je considère qu'un outil possède une fonctionnalité particulière même s'il ne l'implémente que partiellement.
Ciblage des Drapeaux
Le « ciblage » fait référence à la capacité de configurer un indicateur de fonctionnalité pour qu'il se comporte différemment selon son contexte. Cela permet d'exécuter des fonctionnalités ou du code spécifiques uniquement sous certaines conditions. Des exemples d'utilisation du ciblage incluent l'affichage d'une fonctionnalité de site web uniquement aux visiteurs utilisant un navigateur spécifique, l'offre d'une option de mise à niveau de compte aux utilisateurs éligibles ou l'affichage de différents messages d'accueil en fonction du fuseau horaire de l'utilisateur. La mise en place du ciblage nécessite de fournir du contexte dans le code et de définir des règles dans la configuration de l'indicateur. Voici quelques fournisseurs qui prennent en charge cette fonctionnalité :
Apptimize, Bucketeer, CloudBees, ConfigCat, DevCycle, FeatBit, FeatureHub, FeatureProbe, ff4j, Flagship, Flagr, Flagsmith, Flipper, Flipt, geteppo, GoFeatureFlag, Growthbook, Harness, piranha, PostHog, prefab.cloud, rmflags, split.io, tggl.io, Unleash
Segment Réutilisable
Un « segment réutilisable » fait référence à la capacité de créer des segments qui peuvent être utilisés pour plusieurs Feature Flags. Cela signifie que vous pouvez définir un groupe spécifique d'utilisateurs ou de contextes une seule fois, puis appliquer ce segment pour contrôler le comportement de différents Feature Flags. Il est qualifié de « réutilisable » car une fois qu'un segment est créé, il peut être utilisé à plusieurs reprises pour différents drapeaux ou scénarios, sans avoir à recréer les mêmes définitions de groupe à chaque fois. Cette fonctionnalité simplifie et rationalise la gestion des Feature Flags, en particulier lorsqu'il s'agit de cibler le même groupe d'utilisateurs dans plusieurs scénarios. Voici quelques fournisseurs qui prennent en charge cette fonctionnalité :
Bucketeer, CloudBees, ConfigCat, DevCycle, FeatBit, Flagsmith, Growthbook, Harness, split.io, Unleash
Flux de Travail
« Flux de travail » fait référence à une fonctionnalité qui permet la planification et l'automatisation des actions liées aux Feature Flags. Les flux de travail sont essentiellement des ensembles d'actions programmées à l'avance pour effectuer des changements sur un indicateur de fonctionnalité. Ils automatisent les tâches manuelles requises pour la gestion des Feature Flags, souvent par étapes. Cela peut inclure :
- Flux de travail de déploiement progressif : Ces flux de travail augmentent progressivement le pourcentage de contextes ciblés par un indicateur de fonctionnalité.
- Fenêtres de maintenance : Ce type de flux de travail permet de basculer temporairement le ciblage on ou off.
- Flux de travail personnalisés : Ils sont adaptés pour gérer des processus de déploiement spécifiques tels que définis par l'utilisateur.
Voici quelques fournisseurs qui prennent en charge cette fonctionnalité :
CloudBees, ConfigCat, DevCycle, FeatBit, Flagsmith, Growthbook, Harness, split.io, Unleash
Intégration et API
Contrôles d'API
Les « Contrôles d'API » font référence aux capacités offertes par leur API pour gérer et automatiser divers aspects des flux de travail des Feature Flags. Ces contrôles permettent de :
- Construire des intégrations personnalisées : Créer des solutions sur mesure qui s'intègrent avec le système d'Feature Flags.
- Automatiser les changements d'état des Feature Flags : Utiliser d'autres outils de votre pile technologique pour modifier automatiquement l'état des Feature Flags.
- Intégrer avec les tableaux de bord des développeurs : Incorporer l'outil de manière transparente dans des environnements de développement personnalisés.
- Extraction et intégration de données : Récupérer les données de variation des indicateurs pour les utiliser avec d'autres données d'événements dans des entrepôts de données.
- Automatiser la gestion des indicateurs, des segments et des règles : Créer des scripts pour copier des règles de variation, des segments et des indicateurs à travers plusieurs projets.
- Mise à jour dynamique des règles : Modifier les règles de ciblage en temps réel en fonction de la logique métier d'autres outils.
- Création d'interfaces utilisateur et de visualisations personnalisées : Concevoir des interfaces utilisateur et des visualisations uniques pour la gestion et la visualisation des Feature Flags.
Voici quelques fournisseurs qui prennent en charge cette fonctionnalité :
Apptimize, ConfigCat, FeatBit, Flagr, Flagsmith, Flipper, Growthbook, split.io, Unleash
Webhooks
« Webhook » fait référence à une fonctionnalité qui permet de créer des intégrations qui réagissent aux changements au sein des Outils d'Feature Flags. Lorsqu'un changement survient, comme une mise à jour d'un indicateur de fonctionnalité ou une invitation d'un nouveau membre de compte, l'Outil d'Feature Flags envoie une charge utile HTTP POST à une URL configurée pour le webhook. Cette fonctionnalité est utile pour une variété d'applications, telles que la mise à jour des outils de suivi des problèmes externes, la gestion des tickets de support et la notification aux clients des nouveaux déploiements de fonctionnalités. De nombreuses intégrations sont construites à l'aide de webhooks. Voici quelques fournisseurs qui prennent en charge cette fonctionnalité :
Bucketeer, CloudBees, ConfigCat, FeatBit, FeatureHub, Flagsmith, Flipper, Flipt, geteppo, GoFeatureFlag, Growthbook, Harness, split.io, tggl.io, Unleash
Intégration avec les Outils d'Observabilité
« Intégration avec les Outils d'Observabilité » fait référence à l'intégration d'applications tierces liées à l'observabilité, au Monitoring des Utilisateurs Réels (RUM) et à la Gestion des Performances des Applications (APM). Cela inclut des outils qui aident à surveiller, analyser et optimiser les performances et la fiabilité des applications. Voici quelques fournisseurs qui prennent en charge cette fonctionnalité :
ConfigCat, FeatBit, FeatureProbe, Flagsmith, split.io, Unleash
Intégration avec les Outils d'Expérimentation
Outils d'Intégration pour l'Expérimentation
"Outils d'Intégration pour l'Expérimentation" fait référence aux intégrations avec des applications tierces spécifiquement liées à l'expérimentation. Ces intégrations permettent aux utilisateurs d'améliorer leurs stratégies d'expérimentation en utilisant des outils externes. Voici quelques fournisseurs qui offrent cette fonctionnalité :
Apptimize, ConfigCat, FeatBit, FeatureHub, Flagsmith, Growthbook, PostHog, split.io, StatSig, Unleash
Autres
LaunchDarkly propose de nombreuses méthodes d'intégration pour optimiser l'expérience des développeurs. En tant que l'un des principaux fournisseurs de services de gestion de feature flags, split.io offre bien plus que d'autres alternatives.
Outils d'Expérimentation
Certains outils de feature flags, conçus à l'origine pour les tests A/B et l'analyse de données, proposent désormais également des capacités de feature flags natifs pour compléter leurs fonctionnalités analytiques. Il existe également des outils qui offrent des fonctionnalités analytiques avancées pour les tests A/B.
Outils de feature flags issus des tests A/B ou de l'analyse de données :
Apptimize, geteppo, Flagship, Growthbook, PostHog, StatSig
Outils de feature flags offrant des fonctionnalités analytiques pour les tests A/B :
DevCycle, FeatBit, FeatureProbe, split.io
Journaux d'Audit
Les "Journaux d'Audit" désignent les enregistrements qui suivent et consignent les activités des utilisateurs au sein de la plateforme. Ces journaux comprennent généralement des détails sur qui a effectué quelles actions et quand, comme les modifications des feature flags, les changements dans les configurations ou les mises à jour des permissions des membres de l'équipe. Les Journaux d'Audit sont essentiels pour la sécurité et la conformité, car ils offrent un historique transparent des changements et peuvent être utilisés pour la surveillance, le dépannage et la vérification de l'intégrité du système. Ils sont une fonctionnalité indispensable pour les organisations qui doivent maintenir une surveillance rigoureuse et une tenue de registres de leurs activités de feature flags. Voici quelques fournisseurs qui proposent cette fonctionnalité :
CloudBee, ConfigCat, DevCycle, FeatBit, Flagsmith, Flipper, geteppo, split.io, StatSig, Unleash
SSO
"SSO" signifie Single Sign-On (Authentification Unique). Le SSO est un service d'authentification de session et d'utilisateur qui permet à un utilisateur d'utiliser un ensemble unique d'identifiants de connexion (par exemple, nom d'utilisateur et mot de passe) pour accéder à plusieurs applications. L'utilisation du SSO simplifie le processus de connexion pour les utilisateurs, car ils n'ont pas besoin de se souvenir et de saisir différents noms d'utilisateur et mots de passe pour chaque application. Dans le contexte de LaunchDarkly, cette fonctionnalité se réfère probablement à la capacité d'intégrer la plateforme avec le système SSO existant d'une organisation, permettant ainsi un contrôle d'accès transparent et sécurisé. Voici quelques fournisseurs qui offrent cette fonctionnalité :
CloudBee, ConfigCat, FeatBit, FeatureHub, Flagsmith, Growthbook, Harness, PostHog, split.io, StatSig, Unleash
Contrôle d'Accès
Le "Contrôle d'Accès" fait référence à la capacité de gérer et de restreindre l'accès à différentes fonctionnalités et ressources au sein de la plateforme. Cela implique généralement de définir des permissions et des rôles pour différents utilisateurs ou groupes, déterminant qui peut voir, éditer ou gérer les feature flags et autres éléments au sein de LaunchDarkly. Un contrôle d'accès efficace est essentiel pour maintenir la sécurité et l'intégrité du système, en s'assurant que seuls les personnels autorisés peuvent effectuer des changements ou accéder à des informations sensibles. Voici quelques fournisseurs qui proposent cette fonctionnalité :
CloudBee, ConfigCat, FeatBit, FeatureHub, Flagsmith, Growthbook, split.io, StatSig, Unleash
Suppresseurs de Feature Flags Obsolètes
Les suppresseurs de feature flags obsolètes sont des outils conçus pour identifier et retirer les feature flags qui ne sont plus utilisés activement dans la base de code. Cela est important car les feature flags périmés ou obsolètes peuvent entraîner de l'encombrement et une dette technique potentielle. Les outils mentionnés sont :
- rmflags : C'est un outil conçu pour retirer les feature flags obsolètes de votre code. Il aide à nettoyer et à maintenir une base de code épurée.
- Copilot : Bien que n'étant pas spécifiquement un suppresseur de feature flags obsolètes, GitHub Copilot est un assistant de programmation IA qui peut aider dans diverses tâches de codage. Il pourrait être utilisé pour aider à identifier et retirer du code désuet, y compris les feature flags périmés.
- piranha : Piranha est un outil open source développé par Uber pour supprimer automatiquement les feature flags obsolètes. Il identifie et retire le code associé aux feature flags qui ne sont plus nécessaires, simplifiant la gestion du code et réduisant la dette technique.
Chaque outil a sa propre méthodologie et capacités pour gérer le cycle de vie des feature flags dans le développement logiciel.
Implémentation d'OpenFeature
La norme OpenFeature est spécialement conçue pour éviter le verrouillage par un fournisseur de systèmes de feature flags. En offrant une norme open source et neutre vis-à-vis des fournisseurs, elle permet aux développeurs d'implémenter des feature flags d'une manière qui n'est pas liée à un système ou une plateforme spécifique d'un fournisseur. Cela signifie que les développeurs peuvent passer d'un service de feature flags à un autre sans avoir besoin de réécrire ou d'ajuster significativement leur code. La norme assure la compatibilité et l'interopérabilité entre différents outils de feature flags, donnant aux organisations la flexibilité de choisir ou de changer leurs solutions de feature flags sans être restreintes par des formats ou des intégrations propriétaires. Ces outils de feature flags ont annoncé leur soutien à OpenFeature en fournissant des SDK compatibles :
CloudBee, ConfigCat, DevCycle, FeatBit, Flagsmith, Flipt, GoFeatureFlag, Harness, PostHog, split.io, Unleash
Aspects Cruciaux mais Souvent Non Mesurés
- Performance : L'outil peut-il gérer un grand nombre de requêtes concurrentes, telles que plus d'un million d'utilisateurs actifs quotidiens, ainsi que de grands entrepôts de données d'insights ?
- Coût : Quels sont les modèles de tarification pour le SaaS ou l'auto-hébergement à de tels volumes élevés ?
- Similarité avec LaunchDarkly : Comment l'outil se compare-t-il à LaunchDarkly en termes d'opérations logiques de feature flags, de mise en œuvre du SDK et d'expérience utilisateur globale ?
- Et ainsi de suite.
Support Commercial pour les Outils de Feature Flags
Le support commercial est essentiel pour les outils de feature flags en raison de son rôle dans l'assurance de la fiabilité et la résolution rapide des problèmes, ce qui est crucial pour des opérations logicielles stables. Il offre des conseils d'experts pour une mise en œuvre efficace, le respect des normes de sécurité et de conformité, l'évolutivité et les capacités d'intégration. De plus, il donne accès à des fonctionnalités avancées et à des formations, permettant une prise de décision basée sur les données et une gestion efficace des logiciels. Je catégorise le support commercial en deux types : SaaS et auto-hébergé.
Outils Supportant des Solutions Commerciales Auto-Hébergées. Cette catégorie inclut des outils qui offrent des solutions commerciales auto-hébergées, adaptées aux entreprises qui préfèrent ou nécessitent des déploiements sur site.
ConfigCat, FeatBit, Flagship, Flagsmith, Growthbook, PostHog, split.io, Unleash
Outils Non Basés sur le Nombre de Sièges. Ce sont des outils qui proposent des modèles de tarification qui ne sont pas basés sur le nombre d'utilisateurs ou de "sièges", offrant une option plus économique pour les entreprises de taille moyenne et grande.
ConfigCat, FeatBit, StatSig, prefab.cloud
Outils Supportant le SaaS avec Conformité à la Confidentialité et SLA. Ces outils proposent des solutions SaaS qui respectent les normes de conformité en matière de confidentialité et fournissent des accords de niveau de service (SLA) pour assurer un service fiable.
CloudBee, ConfigCat, DevCycle, Flagsmith, Growthbook, PostHog, split.io, StatSig, Unleash
Pourquoi LaunchDarkly est Coûteux et Opportunités pour les Autres
LaunchDarkly est onéreux car il propose une large gamme de fonctionnalités qui sont devenues des standards dans l'industrie, souvent supérieures aux offres d'autres services de feature flags. Cependant, tous les clients n'ont pas besoin de toutes ces fonctionnalités, surtout en considérant le coût annuel substantiel d'environ 70 000 dollars. Cela crée des opportunités pour des alternatives qui correspondent mieux à leurs besoins.
Migration depuis LaunchDarkly
La transition depuis LaunchDarkly peut être révélatrice ; vous ne réalisez peut-être la valeur de LaunchDarkly qu'après avoir changé. Pour éviter le verrouillage par un fournisseur, il est recommandé d'utiliser des feature flags compatibles avec les normes OpenFeature avec votre nouveau fournisseur. Certaines alternatives offrent même des outils ou des services pour faciliter la migration depuis LaunchDarkly.
Conclusion - Alternatives Viables
En tant qu'ingénieur senior évaluant les alternatives à LaunchDarkly, je privilégie les critères suivants :
- Open Source avec une Pile Technologique Familière
- Intégration avec les Outils d'Observabilité
- Intégration avec les Outils d'Expérimentation
- Ensemble de Fonctionnalités Essentielles
- Implémentation d'OpenFeature
- Support Commercial et Prix
- Performance
- Facilité de Migration et Similarité avec LaunchDarkly
- Focus sur les Services de Feature Flags plutôt que sur l'Expérimentation (car il existe de nombreux outils excellant dans l'expérimentation qui s'intègrent bien avec les feature flags).
Mes options préférées incluent FeatBit, Flagsmith, et Unleash pour des solutions open source avec support commercial. Pour ceux qui ne se soucient pas de l'open source, Apptimize et ConfigCat sont des choix viables.
J'insiste sur le fait que cette exploration va au-delà de LaunchDarkly pour inclure d'autres acteurs majeurs comme Split.io dans le domaine des services de gestion de fonctionnalités.
Donnez-moi votre avis
Si j'ai mentionné de manière inexacte votre outil de gestion de fonctionnalités, veuillez me contacter sur Twitter pour des corrections. De plus, si votre outil constitue une alternative à LaunchDarkly et qu'il n'est pas listé, informez-moi afin que je puisse l'ajouter.