Grundsätzliches zu Feature-Flag-Management-Systemen
Feature Flag Managment Systeme gibt es in unterschiedlichen Formen. Häufig werden diese als SaaS (Software as a Service) angeboten und bieten dem Kunden neben einer grafischen Oberfläche auch Client-SDKs welche in die eigene Anwendung eingebunden werden können. Vor und Nachteile dieser Systeme haben wir unter Integrationsarten zusammengefasst.
Funktionsweise von Feature Flag Management Systemen
Feature-Flag-Management-Systeme sind im Regelfall aufgeteilt in eine Serveranwendung für die Verwaltung der Toggles und in eine passende Clientschicht in Form von SDKs in der entsprechenden Programmiersprache der Anwendung. Um Daten schnell zum Client zu bringen, nutzen die Systeme zusätzlich noch CDN-Anbieter, sodass die Aufrufzeiten minimiert werden können.
Zumeist wird die Kommunikationstrecke dabei lesend implementiert. Das heißt: Der Client liest die für ihn nötige Konfiguration vom Server, schreibt jedoch keine Daten zurück zur Feature-Toggle-Anwendung. Abhängig vom Client SDK wird dieser Abruf der Konfiguration im Client für eine bestimmte Nutzungsdauer gecacht. Die Logik liegt also im Client, alle Kundendaten verbleiben in diesem und gehen nicht zur Serveranwendung, womit der Schutz möglicher personenbezogener Daten gewährleistet wird.
Dieser Ansatz wird jedoch nicht bei allen Feature-Toggle-Management-Systemen verfolgt. Es empfiehlt sich also vor der Integration zu prüfen, welche Daten tatsächlich verwendet werden.
Der Client selbst verarbeitet nun die per Konfiguration erhaltene Information und wendet diese an der im Client implementieren Stelle an. Dabei ist die Umsetzung der Basisfunktionalitäten unabhängig von der jeweiligen Programmiersprache im Grundsatz immer gleich. Das Feature Toggle, also die Konfiguration, wird vom Client SDK evaluiert. Der Entwickler muss hierbei keine besonderen Kenntnisse über die internen Vorgänge des SDKs haben, sondern entsprechende Bedingungen nur in den Aufruf mitgeben. Auch bei komplexeren Bedingungen muss der Entwickler diese nicht einzeln überprüfen, sondern kann diese Aufgabe dem Feature Toggle SDK überlassen.
Sollte der Feature Toggle Server nicht erreichbar sein, lässt sich am Toggle clientseitig ein Default-Verhalten konfigurieren, sodass auch eine Nicht-Erreichbarkeit der Server-Anwendung nicht zu einem Fehler führt.