Modulkontrolle mit Features Flags
Die Technik von fasst Flags mit
Module von einem System aktivieren oder deaktivieren, ohne den Quellcode zu ändern. Diese Steuerung kann unter anderem über Datenbank, Konfigurationsdateien und Umgebungsvariablen implementiert werden.
Vorteile der Verwendung von Feature Flags
- Sicherheit: Ermöglicht Sie, neue Funktionen mit einem geringeren Risiko zu starten und sie bei Bedarf leicht zu deaktivieren.
schrittweise starten: - erleichtert den Start in Schritten und ermöglicht es Ihnen, neue Funktionen mit einer ausgewählten Benutzergruppe zu testen, bevor Sie sie allen zur Verfügung stellen.
Zugriffskontrolle:
ermöglicht es, den Zugriff auf bestimmte Module basierend auf Benutzerprofilen oder anderen Regeln einzuschränken.
- Flexibilität in der Wartung: vereinfacht den Prozess der Wartungs- und Aktualisierungsmodule und ermöglicht sie, sie während der Wartung vorübergehend zu deaktivieren, ohne den Systembetrieb zu beeinträchtigen.
- Risikominderung: minimiert die Auswirkungen von Modulen mit Problemen und erlaubt ihnen, sie schnell zu deaktivieren, wenn Fehler auftreten.
- Tools und Bibliotheken für die Implementierung Feature Flags
Es stehen mehrere Tools und Bibliotheken zur Verfügung, um die Implementierung von Feature Flags zu unterstützen:
starten:
https://lancharkly.com
entfessel:
https://www.getunleash.io -
GofeaturFlag:
https://github.com/robfig/go-feature-flag -
flagsmith:
https://www.flagsmith.com -
featureHub:
https://featurehub.io -
configCat:
https://configcat.com -
Togglz:
https://www.togglz.org -
- Implementierung über Datenbank
zu implementieren
Feature Flags
Verwenden einer Datenbank, folgen Sie den folgenden Schritten:
Erstellen Sie Tabellen, um Informationen über die Module und ihre jeweiligen Flaggen zu speichern.
implementieren Sie eine Middleware, um Anforderungen an Module abzufangen.
Middleware muss die Datenbankmodule lesen.
aktiviert oder deaktiviert die Module gemäß dem Zustand der Flaggen.
Aufzeichnung und Rückgabe von Fehlermeldungen, wenn Probleme mit den Modulen auftreten.
Implementieren Sie bei Bedarf Benutzerzugriffsregeln für jedes Modul.
-
- Code Beispiel Quelle:
- https://github.com/ortizdavid/golang-modular-software
-
-
-