Abstract
Feature-Flags sind Konfigurationseinstellungen, die das dynamische Umschalten vonFunktionen und die Änderung des Systemverhaltens ohne Code-Änderung ermöglichen.
Sie erleichtern das Deployment, indem sie das Aktivieren oder Deaktivieren von Funktionen im laufenden Betrieb sowie Canary Releasing und A/B-Tests ermöglichen. FeatureFlags erhöhen die Komplexität von Microservice-Architekturen, in denen Anfragen von
mehreren nachgeschalteten Services bearbeitet werden. Daher ist es wichtig, die richtige
Feature-Flag-Strategie zu implementieren, um Testbarkeit und minimalen PerformanceOverhead zu gewährleisten.
Diese Masterarbeit konzentriert sich auf die Analyse und Bewertung aktueller FeatureFlagging-Implementierungen innerhalb einer gegebenen Microservice-Architektur. Es
werden Strategien und Ansätze zur effektiven Implementierung von Feature-Flagging in
verteilten Datenbanksystemen untersucht, mit besonderem Augenmerk auf das OpenFeature-Framework. Das Konzept reicht von der Architektur der benötigten Komponenten über die Evaluierungsmethodik bis hin zur Definition und Validierung der Konfigurationen. Laufzeitanalysen unter Verwendung des Benchmark-Frameworks Java Microbenchmark Harness werden verwendet, um die Leistung der Ansätze zu evaluieren.
Es wird gezeigt, dass die Verwendung eines zentralen Services zur Verwaltung der
Feature-Flags in Kombination mit geeigneten Caching-Strategien und der Verwendung
von gRPC-Streams die beste Performance bietet. Aufgrund des hohen Implementierungsaufwands, wird ein hybrider Ansatz vorgestellt, der die Vor- und Nachteile zweier
Ansätze kombiniert. Darauf basierend wird die Definition und Validierung der Konfigurationen diskutiert, wobei Fehler in der JSON-Syntax zu einem Fehlschlagen des
Helm-Renderings führen sollten und eine Validierung gegen das JSON-Schema des verwendeten OpenFeature-Providers durchgeführt werden sollte. Die JUnit-OpenFeatureErweiterung wird verwendet, um Features zu testen, die von Feature-Flags beeinflusst
werden, obwohl einige Erweiterungen noch implementiert werden müssen.
Das Thema verteilter konsistenter Feature-Flag-Evaluierungen mit serviceübergreifenden, gemeinsamen Feature-Flags wird untersucht, wobei verschiedene Implementierungsansätze entwickelt werden. Die Verwendung von Baggage-Headern erweist sich als die
beste Lösung für aktuelle Implementierungen. Ein Spezialfall ist das Execute/PollMuster. Es werden zwei Lösungen für die Verwendung von Caches in möglicher Kombination mit dem OFREP-Protokoll entwickelt, um die Konsistenz der Auswertungen
entlang der Servicekette auch unter diesen Anforderungen zu gewährleisten.
| Datum der Bewilligung | 2025 |
|---|---|
| Originalsprache | Englisch |
| Betreuer/-in | Johann Heinzelreiter (Betreuer*in) & Harald Bittermann (Betreuer*in) |
Studiengang
- Software Engineering