Service de gestion
des Feature Flags
en open source

FeatBit, un service de gestion de Feature Flags rapide, évolutif et open source. La solution idéale pour l'auto-hébergement.

Innovate Your Software Faster without Risk

A Fast, Scalable, and Open-source Feature Flags Management Service. For Cloud & Self-hosting.

Quels sont les meilleurs outils open source de Feature Flags disponibles en 2023 ?

Last updated date:

Cet article a été écrit par LifeCycle. Pour plus d'informations, consultez la version anglaise.

Introduction

Les Feature Flags sont devenus un aspect vital du développement de logiciels modernes. Ils permettent aux développeurs de gérer et de contrôler facilement le déploiement de nouvelles fonctionnalités avec facilité et flexibilité. Le paysage des outils d'Feature Flags open source en 2023 est diversifié, avec de nombreuses options offrant des fonctionnalités et des avantages uniques. Dans ce guide complet, nous explorerons les meilleurs outils d'Feature Flags open source disponibles, en distinguant les outils dédiés aux Feature Flags et ceux principalement axés sur l'analyse des données.

Outils mentionnés dans cet article : FeatBit, Flagsmith, Unleash, GoFeatureFlag, FlagR, Flipper, Flipt, FeatureHub, PostHog, Growthbook

Principaux outils d'Feature Flags open source

FeatBit

FeatBit est un service de gestion d'Feature Flags open source. Il permet aux équipes de développement de logiciels de contrôler et de gérer facilement les nouvelles fonctionnalités de leurs applications. Avec FeatBit, les développeurs peuvent déployer du code en toute sécurité, tester de nouvelles fonctionnalités et gérer le déploiement de fonctionnalités dans différents environnements, y compris les applications web, mobiles et côté serveur. FeatBit est conçu pour l'auto-hébergement et convient aux organisations qui préfèrent gérer leurs solutions d'Feature Flags en interne. C'est un choix idéal pour les entreprises qui accordent une grande importance au contrôle de leurs données et de leur infrastructure, avec des options de déploiement sur site ou dans des environnements de cloud privé.

Principales fonctionnalités de FeatBit:

  • Idéal pour les besoins d'auto-hébergement : FeatBit prend en charge les déploiements via Helm Chart et Terraform, ainsi que la prise en charge d'OpenTelemetry pour l'observabilité. Il offre des solutions hautement disponibles et multi-centres de données, répondant aux besoins complexes d'hébergement.
  • Performances et évolutivité : Conçu pour la vitesse et l'évolutivité, la plateforme prend en charge sans effort plus d'un million d'utilisateurs en ligne simultanés, démontrant sa capacité à gérer des opérations à grande échelle.
  • Capacités d'intégration étendues : FeatBit propose une intégration étendue avec les webhooks, se connectant de manière transparente à divers outils de gestion des performances des applications (APM), des outils de collaboration d'équipe et d'autres services tiers via des API REST. De plus, il offre une fonctionnalité d'exportation de données pour exporter les évaluations des Feature Flags et les données d'événements métriques vers des entrepôts de données tiers et des outils d'analyse.
  • Modèle de tarification flexible et simple : FeatBit utilise un modèle de tarification clair, sans frais basés sur le nombre d'utilisateurs, l'environnement ou les appels d'API. Cette approche améliore la transparence et la prévisibilité pour les entreprises, simplifiant la planification budgétaire.

Stack technique : .NET (C#)

Licence : MIT

FeatBit sur GitHub : https://github.com/featbit/featbit

Flagsmith

Flagsmith est un service open source d'Feature Flags et de configuration à distance qui offre une flexibilité de déploiement dans différents environnements. Il permet aux utilisateurs de choisir entre une API hébergée, un déploiement sur un cloud privé ou une exécution sur site. Flagsmith simplifie le processus de création et de gestion des Feature Flags sur différentes plates-formes, y compris les applications web, mobiles et côté serveur. En enveloppant des sections de code avec des indicateurs, les développeurs peuvent facilement gérer ces fonctionnalités, adaptant le comportement de leur application en fonction de différents environnements, segments d'utilisateurs ou autres conditions.

Principales fonctionnalités de Flagsmith:

  • Configuration multiplateforme : Les indicateurs de Flagsmith peuvent être configurés pour une configuration à distance sur différentes plates-formes, permettant des modifications en temps réel sans attendre les approbations de l'App Store.
  • Flagsmith propose des intégrations solides avec différentes plates-formes, améliorant ainsi son utilité et sa polyvalence. Cela inclut l'intégration avec des plates-formes CI/CD telles que Terraform, des plates-formes d'analyse telles que Amplitude, Heap Analytics, Mixpanel, Segment et Rudderstack, ainsi que la possibilité d'intégrer des plates-formes d'analyse personnalisées ou des entrepôts de données.
  • Large compatibilité avec les SDK :
    • Côté client : Prise en charge de JavaScript, React Native, React, Android, iOS, Next.js.
    • Côté serveur : Fonctionne avec Node.js, Python, PHP, Ruby, Go, .NET, Ruby, Rust, Elixir.
  • Tarification flexible : Flagsmith est gratuit jusqu'à 50 000 requêtes mensuelles sur le service cloud. Au-delà de cela, des options d'auto-hébergement et de cloud privé sont disponibles pour des besoins plus importants.

Stack technique : Python

Licence : BSD 3 clauses

Flagsmith sur GitHub : https://github.com/flagsmith/flagsmith

Unleash

Unleash se distingue en tant que service d'Feature Flags open source de premier plan, soutenu par une communauté solide et une feuille de route de développement claire. C'est une plateforme largement utilisée, principalement développée en TypeScript, qui offre une vue détaillée des bascules et des Feature Flags dans différentes applications et services. Cette plateforme permet aux équipes de développement de logiciels du monde entier de contrôler efficacement le déploiement de nouvelles fonctionnalités. Unleash se distingue comme la solution open source la plus populaire pour le marquage des fonctionnalités sur GitHub et est compatible avec différents langages et frameworks, offrant une prise en charge de plus de 10 SDK clients et serveurs officiels et de plus de 5 SDK communautaires.

Principales fonctionnalités d'Unleash:

  • Sécurité et évolutivité de niveau entreprise : Conçu avec la sécurité et la confidentialité de l'entreprise à l'esprit, Unleash peut être exécuté dans un centre de données privé ou hébergé en tant qu'offre SaaS à locataire unique. Cette flexibilité répond aux besoins des organisations ayant des exigences strictes en matière de sécurité et de confidentialité.
  • Prise en charge étendue des SDK : Unleash fournit des SDK officiels pour les principaux frameworks et langages de programmation. De plus, la communauté a contribué à des SDK pour d'autres frameworks moins courants, améliorant ainsi sa polyvalence. Large gamme de SDK pris en charge :
    • Côté client : JavaScript, Android, Flutter, iOS, React, Svelte, Vue.
    • Côté serveur : Go, Java, Node.js, PHP, Python, Ruby, Rust, .NET.
    • Communauté maintenue : Angular, Clojure, C++, ColdBox, Dart, Elixir, Haskell, Laravel, NestJS, React Native, Solid.
  • Solution rentable : Unleash propose une version gratuite pour l'auto-hébergement jusqu'à deux environnements. Pour des fonctionnalités plus avancées telles que la segmentation ou les stratégies d'activation personnalisées, une version gérée payante (SaaS) est également disponible.

Stack technique : TypeScript

Licence : Apache

Unleash sur GitHub : https://github.com/unleash/unleash

GoFeatureFlag

GoFeatureFlag est une solution open source qui offre une approche simplifiée et complète de la mise en œuvre des Feature Flags. Cet outil est conçu pour simplifier l'utilisation des Feature Flags dans votre code sans avoir besoin de l'intervention d'un fournisseur. Il a été initialement créé pour le langage de programmation Go, mais il prend désormais en charge plusieurs langages grâce au projet OpenFeature. Cette extension est rendue possible par un simple serveur API appelé le proxy relais, qui peut être hébergé pour prendre en charge différents langages.

Principales fonctionnalités de GoFeatureFlag:

  • Léger et open source : GoFeatureFlag est connu pour sa simplicité et sa légèreté, ce qui en fait une solution facile à mettre en œuvre pour les Feature Flags.
  • Prise en charge de plusieurs langages : Bien qu'il ait été initialement conçu pour Go, GoFeatureFlag prend désormais en charge plusieurs langages grâce aux efforts de normalisation du projet OpenFeature. Cela en fait un outil polyvalent pour différents environnements de développement.
  • Stockage de configuration flexible : L'outil permet de stocker les indicateurs de configuration à différents emplacements, notamment HTTP, S3 et Kubernetes, offrant ainsi une flexibilité dans la gestion de la configuration.

Stack technique : Go

Licence : MIT

GoFeatureFlag sur GitHub : https://github.com/thomaspoignant/go-feature-flag

FlagR

FlagR est un microservice dynamique conçu pour les Feature Flags, les tests A/B et la configuration dynamique. Il s'agit d'un service Go open source qui se concentre sur la fourniture d'expériences personnalisées aux utilisateurs et aux entités, tout en surveillant l'impact de ces changements. FlagR propose une gamme d'outils pour la gestion des Feature Flags et la réalisation d'expérimentations, avec des API REST Swagger claires pour une gestion et une évaluation faciles des indicateurs.

Principales fonctionnalités de FlagR:

  • FlagR offre une fonctionnalité robuste pour les Feature Flags et les tests A/B. Cela permet aux équipes de réaliser des déploiements contrôlés de nouvelles fonctionnalités, de tester différentes variations et de prendre des décisions basées sur les données concernant les améliorations du produit.
  • Configuration dynamique : Le service permet une configuration dynamique, ce qui signifie que des ajustements peuvent être apportés en temps réel sans avoir besoin de redéployer les applications. Cette flexibilité est essentielle pour répondre rapidement aux commentaires des utilisateurs ou aux évolutions du marché.

Stack technique : Go

Licence : MIT

FlagR sur GitHub : https://github.com/openflagr/flagr

Flipper

Flipper est une bibliothèque open source spécialement conçue pour offrir des Feature Flags pour Ruby et Rails. Elle est connue pour sa simplicité, son attrait esthétique et ses performances élevées. Flipper Cloud, une extension de Flipper, propose une plateforme complète basée sur la bibliothèque Flipper principale. Cette plateforme simplifie la gestion des Feature Flags dans différents projets et environnements, ce qui en fait un outil idéal pour les organisations souhaitant centraliser le contrôle, l'accès et l'audit des Feature Flags.

Principales fonctionnalités de Flipper:

Flipper Cloud permet la gestion centralisée de tous les projets. Cette centralisation élimine la nécessité de configurer les Feature Flags de différentes manières dans différentes applications ou microservices. Elle simplifie le contrôle, l'accès et les processus d'audit pour l'ensemble de l'organisation, garantissant ainsi la cohérence et l'efficacité.

Stack technique : Ruby

Licence : MIT

Flipper sur GitHub : https://github.com/flippercloud/flipper

Flipt

Flipt est une solution de gestion des fonctionnalités qui est prête pour l'entreprise, alimentée par GRPC et compatible avec GitOps. Elle est conçue pour respecter les meilleures pratiques DevOps en séparant les versions des déploiements, et elle est construite en tenant compte des organisations d'ingénierie à haute performance. Flipt peut être intégré de manière transparente dans les infrastructures existantes, garantissant que les informations sensibles ne sont pas envoyées à des tiers et réduisant la latence souvent associée aux communications sur Internet.

Principales fonctionnalités de Flipt:

  • Flipt est conçu pour s'intégrer aux flux de travail DevOps et GitOps, permettant une configuration et un déploiement continus. Cette intégration prend en charge les flux de développement basés sur le tronc commun et facilite les tests de nouvelles fonctionnalités en interne pendant le développement avant la mise en production complète. Elle comprend également des fonctionnalités pour les interrupteurs d'urgence afin de garantir la sécurité du système et le marquage des fonctionnalités pour différents niveaux d'autorisation.
  • Flipt est conçu pour la rapidité, en se co-localisant avec les services existants pour minimiser la latence et accélérer les performances des applications. Sa conception est simple, avec un seul binaire sans dépendances externes par défaut, ce qui simplifie l'installation et la maintenance.

Stack technique : Go

Licence : GPL-3.0

Flipper sur GitHub : https://github.com/flipt-io/flipt

FeatureHub

FeatureHub est une plateforme Cloud Native conçue pour aider les équipes de développement de logiciels à gérer leurs fonctionnalités, en passant des Feature Flags (également appelés bascules de fonctionnalités) aux expériences A/B et à la configuration à distance ou centralisée. Elle sert d'outil essentiel pour permettre les boucles de rétroaction, les tests de fonctionnalités et les expérimentations dans des environnements de production avec de vrais utilisateurs. FeatureHub propose à la fois une plateforme auto-hébergée et une solution SaaS hébergée dans le cloud, adaptable à différents contextes organisationnels, des petites startups aux grandes entreprises avec de nombreuses applications et équipes.

Principales fonctionnalités de FeatureHub:

FeatureHub peut être exécuté sur votre propre infrastructure en tant que plateforme auto-hébergée, offrant un contrôle et une personnalisation adaptés aux besoins spécifiques de votre organisation. De plus, il propose une solution SaaS hébergée dans le cloud avec une tarification simple à la demande, qui comprend un essai gratuit de 30 jours. Cette flexibilité le rend accessible à un large éventail de tailles et de types d'entreprises.

Stack technique : Dart

Licence : Apache 2.0

FeatureHub sur GitHub : https://github.com/featurehub-io/featurehub

Outils axés principalement sur l'analyse des données

Bien que les outils suivants offrent des fonctionnalités d'Feature Flags, leur principal objectif est l'analyse des données et les tests A/B. Ces outils doivent être pris en compte lorsque les Feature Flags font partie d'une stratégie plus large d'analyse des données et d'expérimentation.

PostHog

PostHog est une alternative populaire aux outils d'analyse tels qu'Amplitude. Il s'agit d'une plateforme tout-en-un qui offre des analyses de produit, une relecture de session, des tests A/B et des enquêtes auprès des utilisateurs, en plus des Feature Flags. Les Feature Flags de PostHog permettent des déploiements conditionnels, des indicateurs multivariés, des charges utiles JSON, des rapports d'utilisation automatisés, une évaluation locale, et bien plus encore. Ils alimentent ses fonctionnalités de test A/B, vous permettant de tester les modifications de produit pour leur impact sur les principaux indicateurs. PostHog propose également une fonctionnalité de gestion des fonctionnalités en accès anticipé, qui permet aux utilisateurs de s'auto-inscrire aux fonctionnalités bêta derrière des Feature Flags.

Stack technique : Javascript

Licence : MIT

PostHog sur GitHub : https://github.com/posthog/posthog

Growthbook

GrowthBook est une plateforme open source conçue pour les Feature Flags et les tests A/B. Elle répond aux besoins des équipes de données, des ingénieurs et des chefs de produit, en offrant un outil polyvalent et personnalisable pour analyser les résultats des expériences et faciliter le déploiement du code. La plateforme est développée dans le but de fournir aux équipes un outil interne puissant sans avoir besoin de développer des outils internes complexes. Elle est conçue pour fonctionner de manière transparente avec les données et les métriques existantes, garantissant la transparence des données et des performances élevées.

Stack technique : Javascript

Licence : MIT

Growthbook sur GitHub : https://github.com/growthbook/growthbook

Principes clés pour choisir un outil de gestion d'Feature Flags open source

Lors du choix d'un outil d'Feature Flags, il est essentiel de prendre en compte les facteurs suivants:

Maintenance active

  • Importance : Les mises à jour régulières et la maintenance active indiquent la fiabilité de l'outil et l'engagement des développeurs à l'améliorer.
  • Liste de contrôle : Recherchez les commits récents, les problèmes résolus et les discussions en cours dans le référentiel du projet.

Alignement avec la pile technique

  • Importance : L'outil doit s'intégrer parfaitement à votre pile technique actuelle pour éviter les problèmes de compatibilité.
  • Liste de contrôle : Assurez-vous que l'outil prend en charge vos langages de programmation et frameworks, et vérifiez la disponibilité des SDK ou des API.

Implication de la communauté

  • Importance : Une communauté dynamique contribue à la robustesse de l'outil et offre une plateforme pour obtenir de l'aide et partager des connaissances.
  • Liste de contrôle : Recherchez des forums actifs, des groupes d'utilisateurs ou des canaux de discussion, et notez la réactivité de la communauté aux questions et aux commentaires.

Documentation de qualité

  • Importance : Une documentation complète est essentielle pour faciliter l'installation, le dépannage et l'utilisation efficace de l'outil.
  • Liste de contrôle : Recherchez des guides détaillés, une documentation API, des FAQ et des exemples ou des études de cas concrets.

Support commercial

  • Importance : L'accès à un support professionnel peut être crucial pour résoudre des problèmes complexes ou personnaliser l'outil en fonction de besoins spécifiques.
  • Liste de contrôle : Vérifiez si l'outil open source propose une version payante avec un support dédié, ou si des fournisseurs tiers proposent des services de support.

Efficacité des performances

  • Importance : Un outil qui fonctionne bien sous charge est essentiel, en particulier pour les applications à fort trafic.
  • Liste de contrôle : Recherchez des benchmarks de performance, des études de cas et des témoignages d'utilisateurs concernant l'efficacité de l'outil.

Sécurité robuste

  • Importance : La sécurité est essentielle, car les Feature Flags peuvent affecter le comportement de l'application et les données des utilisateurs.
  • Liste de contrôle : Évaluez les fonctionnalités de sécurité de l'outil, telles que le chiffrement, le contrôle d'accès et la conformité aux normes de sécurité.

Scalabilité

  • Importance : L'outil doit pouvoir s'adapter à la croissance de votre application.
  • Liste de contrôle : Recherchez des informations sur la manière dont l'outil gère les charges de travail accrues, et vérifiez s'il a été utilisé dans des environnements à grande échelle.

Mise l'accent sur la qualité, pas seulement sur la popularité

  • Importance : Un grand nombre d'étoiles sur les référentiels ne garantit pas toujours une grande qualité ; une évaluation approfondie est essentielle.
  • Liste de contrôle : Évaluez l'outil en fonction de ses fonctionnalités, de ses performances, de son support communautaire et de son alignement avec vos besoins plutôt que de sa popularité seule.

Solution open source auto-hébergée

  • Importance : Une solution auto-hébergée (comme Helm Chart, Terraform) vous donne le contrôle sur vos données et votre infrastructure.
  • Liste de contrôle : Assurez-vous que l'outil open source peut être déployé sur vos propres serveurs ou dans un cloud privé, et vérifiez les éventuelles dépendances ou exigences en matière d'infrastructure.

Attention aux projets obsolètes ou abandonnés

  • Importance : L'utilisation d'outils obsolètes peut présenter des risques de sécurité et des problèmes de compatibilité.
  • Liste de contrôle : Vérifiez la date de la dernière mise à jour, consultez l'historique des versions et recherchez des annonces concernant le statut du projet.

Soyez prudent avec les licences open source

Il est important de choisir un outil open source de gestion des Feature Flags avec une licence adaptée à votre cas d'utilisation et à vos besoins commerciaux. Les licences telles que MIT et Apache 2.0 sont souvent de meilleurs choix par rapport à d'autres.

Comparaison des fonctionnalités

Les outils open source de gestion des Feature Flags sont souvent considérés comme des alternatives à LaunchDarkly. Lors de l'évaluation des fonctionnalités de chaque outil, je préfère utiliser la liste des fonctionnalités de LaunchDarkly comme référence. Cette comparaison est détaillée dans mon autre article, 'Quelles sont les alternatives viables à LaunchDarkly pour les Feature Flags ?' Je recommande de lire cet article pour plus d'informations.

Conclusion

Le paysage des outils open source d'Feature Flags en 2023 offre une grande variété d'options, chacune répondant à différents besoins techniques et échelles organisationnelles. Depuis la gestion complète des Feature Flags d'Unleash jusqu'à l'approche minimaliste de GoFeatureFlag, il existe un outil pour chaque scénario. Il est essentiel de choisir un outil qui s'aligne sur la pile technique de votre équipe, la taille de votre organisation et vos besoins spécifiques.

De plus, pour les équipes axées sur l'analyse des données et l'expérimentation, des outils tels que Growthbook et PostHog offrent des solutions intégrées d'Feature Flags. La combinaison d'outils d'Feature Flags purs avec des outils d'analyse des données est également une approche populaire pour exploiter les forces des deux.

En choisissant soigneusement le bon outil, les organisations peuvent gérer efficacement le déploiement de fonctionnalités, améliorer leurs processus de développement de logiciels et prendre des décisions basées sur les données.

Articles connexes

Meilleurs outils open source d'Feature Flags

Quelles sont les alternatives viables à LaunchDarkly pour les Feature Flags ?