Ohne den Inhalt von https://martinfowler.com/articles/feature-toggles.html zu wiederholen , da es eine erstaunliche ausführliche Erklärung darüber gibt, was das Umschalten von Feature-Flags ist. Ich werde mich nur auf die DevOps-Aspekte konzentrieren.
Laut dem 2014 von PuppetLabs erstellten State of DevOps-Bericht gibt es vier wichtige Metriken, um die IT-Leistung zu messen:
- Vorlaufzeit für Änderungen
- Frequenz freigeben
- Es ist Zeit, den Dienst wiederherzustellen
- Fehlerrate ändern
Diese tragen auch zur Gesamtleistung der Organisation bei. Das bedeutet, dass Ihre IT-Abteilung mehr Geld verdient, wenn sie diese Kennzahlen optimal nutzt.
Continuous Delivery wird durch diese Metriken aktiviert und im Buch Continuous Delivery: Zuverlässige Softwareversionen durch Build-, Test- und Deployment-Automatisierung von Jez Humble ausführlich beschrieben .
Im Zusammenhang mit Continuous Delivery , gibt es eine wichtige Unterscheidung , die es von unterscheidet Continuous Deployment . Und das ist die Entscheidung, wann eine Freigabe von Funktionen (an Kunden) erfolgen soll.
Durch das Verringern der Größe von Änderungen und das Bereitstellen (Kopieren von Code) von halbgebackenen Features auf Produktionssystemen, bei denen das Feature-Flag deaktiviert ist , kann die Vorlaufzeit für Änderungen verkürzt werden .
Wenn Merkmale endlich fertig sind, eine tun Veröffentlichung ist eine Entscheidung für das Geschäft verlassen. Möglicherweise muss eine Veröffentlichung eines neuen Features mit einem gewissen Marketing abgeglichen werden, oder eine Veröffentlichung in einem anderen Teil des Geschäfts wie ein Feature in der mobilen App.
Funktionen können mithilfe von A / B-Tests nur für einen Teil des Kundenstamms oder für bestimmte Personen oder sogar direkt für die allgemeine Verfügbarkeit (GA) freigegeben werden. Obwohl die Freigabe für GA oft erst erfolgt, wenn genügend Gewissheit besteht, dass die Funktion wie erwartet funktioniert. Man könnte argumentieren, dass dies tatsächlich die Freisetzungsfrequenz beeinflusst , um höher zu sein.
Diese Entkopplung von Release und Deployment ist ohne Feature-Flag-Toggles kaum zu erreichen.
Natürlich , wenn kein Einsatz erforderlich ist , eine Funktion zum Umschalten aus , dann die Zeit Dienst wiederherzustellen wird erheblich gesenkt.
Durch die Verwendung von Feature-Flags, die Features für einen kleinen Teil des Kundenstamms freigeben, kann die Messgröße für die Änderungsfehlerrate ebenfalls erheblich verbessert werden.
Ein einfacher Mechanismus mit der Bezeichnung Feature-Flag-Toggles sorgt für eine deutlich bessere IT-Leistung und verbessert die Gesamtleistung des Unternehmens.
Ein gutes Beispiel dafür, wie dies in echten Unternehmen gemacht wird, finden Sie bei Flickr (einem der frühesten öffentlichen Beiträge zu diesem Thema) und bei Etsy . Aber viele andere haben die Praxis übernommen und ausführlich darüber gesprochen, zum Beispiel die berühmte Ingenieurskultur bei Spotify-Videos .
Etsy zeigt sein internes Tool zur Verwaltung von Feature-Flags namens Catapult in mehreren Präsentationen im Internet. Und Intuit veröffentlicht ein Open-Source-Tool namens Wasabi , mit dem Feature-Flags verwaltet werden können.