Wenn einfache Feature Flags nicht mehr reichen: Der Wechsel zu einer zentralisierten Plattform
Ihr Team ist gewachsen. Was als kleine Gruppe mit ein paar Feature Flags in Konfigurationsdateien begann, ist heute ein Zusammenschluss von fünf Produktteams, die alle in dieselben Umgebungen deployen und fast täglich neue Features ausliefern. Die alte Art, Flags zu verwalten, wird zunehmend zum Problem.
Die Probleme, die sich einschleichen
Zunächst verwaltete jedes Team seine eigenen Flags. Hier eine Konfigurationsdatei, dort eine Umgebungsvariable, vielleicht ein einfaches internes Dashboard, das jemand gebaut hat, der das Unternehmen inzwischen verlassen hat. Das funktionierte, solange alle wussten, was die anderen taten.
Doch jetzt fehlt die Transparenz. Niemand hat eine zentrale Übersicht, welche Flags aktiv sind, wer sie erstellt hat oder welches Feature sie steuern. Flags, die eigentlich temporär sein sollten, liegen seit Monaten in der Produktion. Niemand will sie entfernen, weil niemand weiß, ob noch etwas davon abhängt.
So sieht das in der Praxis oft aus:
# config/flags.yaml
flags:
new_checkout: true
dark_mode: false
payment_v2: true
search_autocomplete: true
beta_onboarding: false
legacy_report: true
# kein Besitzer, keine Beschreibung, kein Erstellungsdatum
# niemand weiß, was 'legacy_report' noch tut
Die Zugriffskontrolle wird zum weiteren Kopfschmerz. In einem kleinen Team vertraute jeder jedem. Jetzt sollte nicht jeder ein Flag in der Produktion umlegen können. Vielleicht sollte nur der Lead Engineer oder der Product Manager diese Befugnis haben. Aber wenn Flags in Konfigurationsdateien oder einem gemeinsamen Dashboard leben, kann jeder mit Zugriff Änderungen vornehmen. Das führt zu Fehlern.
Dann ist da noch das Audit-Problem. Wenn etwas schiefgeht, müssen Sie wissen, wer wann was geändert hat. Ohne eine ordentliche Audit-Trail werden Incident-Untersuchungen zur Ratespielerei. Sie fragen im Chat herum: „Hat gestern jemand das Payment-Flag angefasst?“
Was eine zentralisierte Plattform bietet
Hier kommen dedizierte Feature-Flag-Plattformen ins Spiel. Tools wie LaunchDarkly, Split oder Open-Source-Optionen wie Unleash und Flagsmith geben Ihnen einen zentralen Ort, um alle Ihre Flags zu verwalten.
Jedes Flag hat einen Namen, eine Beschreibung, einen Besitzer und einen Änderungsverlauf. Sie können sehen, wann es erstellt, wann es aktiviert und wann es zuletzt geändert wurde. Das allein erleichtert die Bereinigung. Sie können nach Flags suchen, die seit Monaten nicht angefasst wurden, und sie bedenkenlos entfernen.
Die rollenbasierte Zugriffskontrolle löst das Berechtigungsproblem. Entwickler können Flags erstellen und in Staging testen, aber nur der Tech Lead kann sie in der Produktion aktivieren. Product Manager können Rollout-Prozente anpassen, ohne dass ein Entwickler Code deployen muss. Das reduziert das Risiko versehentlicher Änderungen in der Produktion.
Audit-Logs erfassen jede Änderung: wer sie vorgenommen hat, wann, von welchem Wert zu welchem Wert. Wenn nach dem Aktivieren eines Flags die Fehlerrate steigt, sehen Sie sofort, wer es geändert hat, und können die Person kontaktieren. Das hilft auch bei Compliance-Anforderungen, wenn Sie nachweisen müssen, dass Feature-Änderungen ordnungsgemäß genehmigt wurden.
Leistungsfähigere Targeting-Regeln
Wenn Ihr Team häufiger progressive Rollouts einsetzt, werden Sie anspruchsvolleres Targeting benötigen. Einfache prozentuale Rollouts reichen für grundlegende Szenarien, aber was ist, wenn Sie ein Feature nur für Benutzer in einer bestimmten Region ausrollen möchten? Oder nur für Premium-Abonnenten? Oder nur für Benutzer auf einem bestimmten Gerätetyp?
Plattform-Feature-Flags ermöglichen es Ihnen, Targeting-Regeln basierend auf Benutzer-ID, Region, Abonnementplan, App-Version, Gerätetyp oder benutzerdefinierten Attributen zu definieren. All dies wird über das Dashboard konfiguriert, ohne den Code zu berühren. Sie können komplexe Experimente durchführen, ohne Ihre Codebasis zu verzweigen oder mehrere Deployment-Pfade zu pflegen.
Wann sollten Sie den Wechsel vollziehen?
Es gibt keine feste Regel, aber hier sind Anzeichen, dass Ihr Team für eine zentralisierte Plattform bereit ist:
- Es gab Vorfälle, bei denen jemand ein Flag geändert hat, ohne das Team zu informieren.
- Flags sammeln sich in Ihrer Codebasis ohne klaren Besitzer.
- Sie können nicht einfach beantworten: „Welche Flags sind derzeit in der Produktion aktiv?“
- Verschiedene Teams treten sich gegenseitig auf die Flags.
- Sie müssen gegenüber Auditoren oder der Compliance nachweisen, dass Feature-Änderungen ordnungsgemäß geprüft wurden.
Wenn Ihr Team noch klein genug ist, dass sich alle an alle Flags erinnern und nur wenige Personen sie jemals ändern, brauchen Sie vielleicht noch keine Plattform. Aber sobald diese Bedingungen nicht mehr zutreffen, sollten Sie Ihre Optionen evaluieren.
Eine kurze praktische Checkliste
Bevor Sie eine Feature-Flag-Plattform einführen, gehen Sie diese Punkte durch:
- Inventarisieren Sie Ihre aktuellen Flags. Wie viele gibt es? Wie viele sind noch aktiv? Wer besitzt jedes einzelne?
- Identifizieren Sie Ihre Zugriffssteuerungsanforderungen. Wer soll Flags erstellen können? Wer kann sie in der Produktion aktivieren? Wer kann Rollout-Prozente anpassen?
- Definieren Sie Ihre Audit-Anforderungen. Müssen Sie jede Änderung nachverfolgen? Müssen Sie Genehmigungsworkflows für Compliance nachweisen?
- Bewerten Sie Ihre Targeting-Anforderungen. Benötigen Sie einfache prozentuale Rollouts oder Regeln basierend auf Benutzerattributen, Regionen oder Gerätetypen?
- Berücksichtigen Sie Teamgröße und Wachstum. Kommen weitere Teams hinzu? Mehr Umgebungen? Häufigere Releases?
Was als Nächstes kommt
Eine zentralisierte Feature-Flag-Plattform löst die operativen Probleme bei der Verwaltung von Flags in großem Maßstab. Aber sie wirft auch eine größere Frage auf: Nicht jedes Feature sollte durch ein Flag gesteuert werden, und nicht jeder Release braucht einen progressiven Rollout. Die Plattform gibt Ihnen die Werkzeuge, aber Sie müssen immer noch entscheiden, wann und wie Sie sie einsetzen.
Der wahre Wert einer Feature-Flag-Plattform liegt nicht im Dashboard oder in den Audit-Logs. Es ist die Fähigkeit, Deployment von Release zu trennen, sicher in der Produktion zu testen und Produktteams das Vertrauen zu geben, häufig auszuliefern, ohne Angst zu haben. Das ist die Fähigkeit, die Sie eigentlich aufbauen.