Feature-Management mit Open-Source-Tools 9 freie Feature-Flag-Plattformen

Von Mirco Lang Lesedauer: 5 min

Feature Flags sind ein wunderbares Werkzeug für die agile Entwicklung – Funktionen zur Laufzeit ein- und ausschalten zu können spart Zeit, ermöglicht A/B-Tests und Experimente. Und auf dem Open-Source-Markt tummeln sich viele interessante Kandidaten für deren Umsetzung.

Plattformen wie FeatureHub erweitern die Feature-Flag-Grundfunktionen um zusätzliche Möglichkeiten.
Plattformen wie FeatureHub erweitern die Feature-Flag-Grundfunktionen um zusätzliche Möglichkeiten.
(Bild: FeatureHub)

Wie Feature Flags grundsätzlich funktionieren, haben wir erst kürzlich gezeigt – mit Beispielen für den Shell-Skript-Eigenbau und die Plattform Posthog. Im Grunde ist das Prinzip simpel: Im Quelltext wird zum Beispiel über eine kleine if-Abfrage geprüft, ob ein Feature gemäß einer externen Konfiguration aktiviert oder deaktiviert sein soll.

Feature-Flag-Plattformen erweitern diese Grundfunktionalität oft um diverse Filter (constraints, segments), um Features etwa je nach Browser, Standort oder Nutzerkonto zu schalten, Varianten von Features oder statistische Auswertungen und liefen meist grafische Nutzeroberflächen für die Verwaltung.

Die folgende Liste soll als Einstiegspunkt dienen und zeigt Open-Source-Projekte, die aktiv betreut werden – mit Fokus auch auf kleinere Projekte.

Tweek

Tweek stammt zum Großteil aus den Jahren 2017/18, hat in den vergangenen Monaten aber immer wieder mal kleinere Aktualisierungen bekommen – allerdings kaum noch von den Hauptentwicklern. Betrieben wird Tweek in Form von Docker-Containern, über Docker direkt, Kubernetes oder Tilt.

Interessante Features:

  • A/B-Testing
  • Hierarchische Flag-Konfiguration
  • Abhängigkeiten zwischen Flags
  • Zugriff über REST-API

Tweek dürfte selten erste Wahl sein, aber wer etwas Überschaubares sucht und den Hauptentwicklungssprachen C#, TypeScript und JavaScript zugetan ist, könnte den Docker-Container mal anwerfen.

FeatureHub

Environments in FeatureHub.
Environments in FeatureHub.
(Bild: FeatureHub)

FeatureHub ist ein eher kleines Projekt aus Neuseeland, vornehmlich geschrieben in Dart, Kotlin, Java und Groove. Das erst 2020 ins Leben gerufene Projekt wird seither regelmäßig von den beiden Kernentwicklern gepflegt.

Die Plattform steht als vollwertiges Open-Source-Produkt zur Verfügung, darüber hinaus gibt es ein SaaS-Angebot. Auch FeatureHub kann via Docker/Kubernetes betrieben werden, für die Evaluation steht ebenfalls eine Variante zur Verfügung.

Interessante Features:

  • Cloud-Native
  • Flag-Typen für Boolean, String, Zahl, JSON
  • Prozentualer Rollout
  • Zugriff über REST-API oder Web-UI
  • SDKs für Java, JavaScript, C#, Dart, Go, Python, Ruby, Android
  • Login via SAML, Keycloak, Google, Microsoft, GitHub
  • Google Analytics

FeatureHub weckt mit einigen spannenden Features und einer aufgeräumten Weboberfläche Interesse, spätestens bei der Dokumentation macht sich aber die kleine Teamgröße bemerktbar.

FeatBit

Auswertung in FeatBit.
Auswertung in FeatBit.
(Bild: FeatBit)

Dieser Kandidat ist ebenfalls noch sehr jung (2022) und mit drei Kernentwicklern eher klein – wird aber sehr regelmäßig mit neuen Beiträgen aktualisiert. Realisiert wird die FeatBit vor allem mit C#, TypeScript und HTML.

Interessante Features:

SDKs für JavaScript, TypeScript, Java, Python, Go, .NET

Zugriff über Web-API

Einfache Statistiken

Trigger für Nutzerkonten und externe Tools

Support via Slack

Sehr übersichtliche Weboberfläche

Zum Testen kann abermals auf ein vorgefertigtes Docker-Image zurückgegriffen. Derzeit gibt es lediglich die On-Premises-Version, ein Cloud-Dienst wird angekündigt.

FeatureProbe

Boolean-Flag mit Varianten.
Boolean-Flag mit Varianten.
(Bild: FeatureProbe)

FeatureProbe ist den bisherigen Projekten nicht ganz unähnlich: Wenige Entwickler (vorwiegend auch China), erst seit Mai 2022 veröffentlicht und zuletzt sehr aktiv, hauptsächlich geschrieben in TypeScript und Java, Betrieb via Docker-Container und volle Konzentration auf wenige Kernfunktionen.

Interessante Features:

  • Server-SDKs für Java, Rust, Golang, Python, Node.js
  • Client-SDKs für JavaScript, Android, iOS, Mini Program, React
  • Grundlegende Statistiken
  • Kommunikation via Slack oder Wechat (chinesisch)

Kleiner Vorteil FeatureProbe: Es gibt auch eine Online-Demo [https://featureprobe.io/demo/], die ganz ohne Anmeldung einen Blick auf die Weboberfläche gewährt – die durchaus prototypisch ist. Das gilt leider auch für die Dokumentation, die hier noch etwas kürzer geraten ist.

Flagr

Gesteuerter Rollout mit Flagr.
Gesteuerter Rollout mit Flagr.
(Bild: Lang / Flagr)

Flagr ist mit Baujahr 2017 fast schon ein Veteran, hat in den letzten zwei Jahren aber nicht mehr all zu viel Content bekommen – aber es gibt durchaus noch aktuelle Commits vom einzigen wirklich aktiven Committer. Programmiert wird in Go, Vue und Shell-Skript und selbstverständlich läuft der Betrieb auch hier standardmäßig über Docker-Images.

Interessante Features:

  • Authentifizierung mit Kinesis, Pubsub
  • Client-SDKs für Ruby, Go, JavaScript, Python
  • Simple Weboberfläche
  • OpenAPI-Zugriff auf die Verwaltung
  • Prozentuale Rollouts

Wie schlank Flagr ist, lässt sich am schnellsten über die Online-Demo erfassen [https://openflagr.github.io/flagr], aber auch der Docker-Container funktioniert auf Anhieb über:

docker pull ghcr.io/openflagr/flagr
docker run -it -p 18000:18000 ghcr.io/openflagr/flagr

Flagsmith

Flag-Übersicht in Flagsmith.
Flag-Übersicht in Flagsmith.
(Bild: Lang / Flagsmith)

Auch bei Flagsmith verteilt sich die Entwicklungslast auf gerade mal ein halbes Dutzend Schultern, dennoch wird hier eine andere Größenordnung erreicht als bei den bisherigen Projekten.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Flagsmith wurde darüber hinaus schon 2018 gestartet und bekommt seit rund zwei Jahren zunehmend Commits spendiert. Entwicklungssprachen sind Python und JavaScript. Auffällig ist bei Flagsmith die Fokussierung auf Nutzer (und demnentsprechend getriebenen Releases).

Interessante Features:

  • A/B-Testing mit Varianten und Gruppierungen
  • REST-API
  • Client-SDKs für JavaScript, Android/Kotlin, Flutter, iOS/Swift, React, Next.js, Svelte, SSR
  • 3rd-Party-SDKs für Vue, Clojure, Laravel
  • Integrationen, u.a.: Terraform, Amplitude, Heap, Datadog, Slack
  • Authentifizierung über OAUTH, SAML, LDAP, Okata
  • 1-Klick-Installer für DigitalOcean, Render, Railway, Fly.io
  • Unterschiedliche Flag-Typen
  • Geplante Feature Flags

Die Self-Hosting-Variante läuft traditionell über den Webserver und eine Postgres-Datenbank. Aber freilich finden sich auch die üblichen Docker-Anweisungen zum schnellen Testen. Übrigens: Neben kostenpflichtigen SaaS-Angeboten gibt es auch einen kostenfreien Plan für 1-Entwickler-Projekte.

Unleash

Flag-Details in Unleash.
Flag-Details in Unleash.
(Bild: Lang / Unleash)

Das aus Norwegen stammende Unleash bezeichnet sich selbst als größte Open-Source-Feature-Flag-Plattform – und ein Blick auf die GitHub-Statistiken mag das durchaus belegen: Bereits seit 2014 aktiv, hat das Projekt im Jahr 2021 massiv Fahrt aufgenommen und mittlerweile immerhin 7.500 Sternchen auf GitHub gesammelt – und auch knapp 500 Forks können sich sehen lassen. Entwickelt wird hier vor allem in TypeScript.

Interessante Features:

  • A/B-Testing mit Varianten
  • Kill switches (für wichtige Systemfunktionen)
  • Umfangreiche Filter-Optionen (Strategien) für Releases
  • Integrationen: Slack, Teams, Datadog und Webhooks
  • Rollenbasierte Zugriffskontrolle und Single-sign-on
  • Prozentuale Auslieferung
  • Client-SDKs: Android, Flutter, iOS, JavaScript, React Proxy, Svelte Proxy, Vue Proxy
  • Server-SDKs: Go, Java, Node.js, PHP, Python, Ruby, Rust, .NET
  • Einfache Weboberfläche
  • Support via Slack
  • 1-Klick-Installer für DigitalOcean und Heroku

Erfreulich: Die vielen Features und Optionen bringen auch eine entsprechend ausführliche, gute Dokumentation mit sich. Zudem gibt es eine Online-Demo und angebotenen Docker-Images funktionieren einwandfrei. Zudem kann Unleash via Node.js laufen oder als SaaS genutzt werden (inklusive kostenfreiem Plan).

Für GitLab-Nutzer ist Unleash sogar noch einfacher zu bekommen – es steht standardmäßig in der Projektverwaltung zur Verfügung.

GrowthBook

GrowthBook hilft bei der Anbindung von Apps.
GrowthBook hilft bei der Anbindung von Apps.
(Bild: Lang / Growthbook)

Mit GrowthBook wird ein weiterer Kandidate mit TypeScript realisiert – der abermals erst wenige Jahre alt ist, von einem kleinen Team gepflegt wird via Docker läuft.

Interessante Features:

  • Einfache Weboberfläche
  • Erweiterte Statistiken
  • Prozentuale Auslieferung
  • Segmentierung der Feature Flags
  • Experimente
  • SDKs für React, JavaScript, PHP, Ruby, Python, Go, Kotlin, Java, C#, Swift, Flutter
  • Reporting via Jupyter Notebook
  • Erweiterungen für VSC und Chrome
  • CLI-Zugriff
  • Slack-Alarme
  • Geführte Einrichtung von SDKs

Wie schon bei Unleash wird das Projekt von einer guten Dokumentation begleitet und ein schneller Test via Docker funktioniert reibungslos. Tipp: Die Dokumentation ist derzeit deutlich aktueller als die GitHub-Seite, auf der viele Features nicht erwähnt werden.

Flipt

Flag mit Varianten in Flipt.
Flag mit Varianten in Flipt.
(Bild: Lang / Flipt)

Zu guter Letzt: Flipt das sich mit den schon bekannten Parametern in die Liste einreiht: Aktiv seit 2019, drei Kernentwickler, mehr Aktivität seit 2022, programmiert allerdings in Go und Shell-Skript. Eine Besonderheit: Flipt ist ausschließlich auf Self-Hosting ausgelegt!

Interessante Features:

  • Flags mit Varianten
  • REST-API
  • gRPC-API-kompatible SDKs (C++, Java, Python, C#, Ruby etc.)
  • Integrationen: Prometheus, OpenTelemetry
  • Diverse Daten-Backends (MySQL, Redis, SQLite etc.)

Das klingt nicht ganz so spektakulär und auch die Weboberfläche ist extrem simpel gehalten, aber: Flipt läuft sehr zügig, ist durch die gRPC-Anbindung sehr vielfältig nutzbar und eine interessante Variante für Minimalisten. Wer noch nie eine Feature-Flag-Plattform in Aktion gesehen hat, sollte mal kurz die Docker-Variante anwerfen – das Konzept der Feature Flags wird so doch sehr schnell klar:

docker run --rm -p 8080:8080 -p 9000:9000 -t flipt/flipt:lates

(ID:49412631)