Was ist ein Ring Deployment?
Ring Deployment ist eine Form des schrittweisen Rollouts, bei der neue Funktionen schrittweise an verschiedene Nutzergruppen ausgeliefert werden, um das Risiko zu minimieren.
Jezz Humble hat dieses Konzept erstmals in seinem Buch „Continuous Delivery“ vorgestellt.
Es wird als Ring bezeichnet, weil die Nutzergruppen als eine sich erweiternde Reihe von Ringen dargestellt werden, beginnend mit einer kleinen Gruppe von Nutzern bis hin zur schrittweisen Einbeziehung aller Nutzer.
Ringe ermöglichen es Developern, den Einfluss auf diese Nutzer, auch als „Blast Radius“ bezeichnet, durch Beobachtung, Tests und das Sammeln von Nutzerfeedback zu bewerten.
Wie wird es implementiert?
Bei der Durchführung eines Ring Deployments wird die Nutzergruppe basierend auf ähnlichen Attributen ausgewählt. Der erste Schritt besteht darin, sorgfältig die primären Nutzer und geeignete Nutzer für jeden weiteren Ring auszuwählen.
Dazu wird das Risiko in jeder Phase bewertet. Zum Beispiel kannst du zunächst interne Nutzer innerhalb deiner Organisation auswählen, um die Veröffentlichung zu validieren. Danach kannst du zum nächsten Ring übergehen, der mehr Nutzer umfasst, und so weiter. Die Nutzer innerhalb der Ringe erhalten dann die neue Funktion.
Dein Einfluss oder „Blast Radius“ wird mit Fortschreiten der Funktion durch die Ringe zunehmen. Du kannst dir diesen Prozess als eine Reihe von Ringen vorstellen, wobei die erste Veröffentlichung an einen Ring interner Nutzer stattfinden kann.
Funktioniert dieser Release, wird die Funktion an einen Ring von Early Adopters veröffentlicht, die immer noch toleranter gegenüber auftretenden Problemen sind, und schließlich an einen Ring, der alle Nutzer umfasst. Dieser letzte Ring kann ebenfalls in Phasen erfolgen, zum Beispiel alle deine Nutzer in einem bestimmten Land.
Die Namen der Ringe sowie das Bereitstellungsmuster können je nach Präferenzen und Zielen variieren. Neue Versionen würden über die Zeit an jeden Ring bereitgestellt. Zwischen jedem Ring gibt es eine Wartezeit, in der das Team die Veröffentlichung analysiert und auf mögliche Probleme überwacht.
Wenn die Bereitstellung unverändert bleibt und nicht verzögert oder abgebrochen wird, wird der nächste Ring bereitgestellt.
Vorteile des Ring Deployment
Der Hauptvorteil einer solchen Technik besteht in der Risikominderung. Sie soll Auswirkungen auf Endnutzer minimieren, indem deine Funktion schrittweise veröffentlicht wird, nicht an alle Nutzer gleichzeitig, kein Big Bang Release.
Durch die Verwendung von Ring Deployment kannst du frühzeitig Probleme erkennen, während du die Auswirkungen von Störungen auf deine Nutzer im Falle von Problemen während der Tests begrenzt.
Durch das schrittweise Veröffentlichen deiner Funktion kannst du Feedback von den relevantesten Nutzern sammeln und Bugs erkennen, bevor alle deine Nutzer Zugriff darauf haben.
Rings und Feature Flags
Nun fragst du dich vielleicht, ob du Ringe oder Feature Flags verwenden sollst. Die einfache Antwort wäre, beide zu verwenden.
Das Hauptziel von Feature Flags ist es, Änderungen an spezifische Nutzergruppen auszuliefern. Daher wird die Verwendung von sowohl Ringen als auch Feature Flags dir helfen, deine Funktionen schrittweise einzuführen.
So kannst du zum Beispiel Feature Flags im Ring Deployment verwenden, um bestimmte Funktionen in einem Ring zu verbergen, bei denen du dir nicht ganz sicher bist.
Falls etwas schiefgeht, kannst du die Veröffentlichung zurückziehen, während du das Problem behebst, und dann erneut veröffentlichen, wenn du bereit bist.
Daher hilft dir Ring Deployment in Kombination mit Feature Flag Management Tools, deine Funktionen strategisch und effizient zu veröffentlichen, beginnend mit deinen risikoarmen Benutzersegmenten. Zum Beispiel ermöglicht dir die Flagging-Funktion von AB Tasty, spezifische Flag-Werte verschiedenen Nutzersegmenten zuzuweisen.
Bestimmte Nutzer, zum Beispiel deine internen Nutzer, erhalten einen Wert und andere Nutzer erhalten einen anderen Wert. Dadurch kannst du Ringe einfach erstellen und verwalten und Nutzer entsprechend jedem Ring zuweisen.
Zusammenfassung
Ring Deployment ist eine effektive, risikofreie Methode der progressiven Bereitstellung, bei der du auswählen kannst, welche Funktionen du welchen Nutzern anzeigen möchtest. Durch die Verwendung von Feature Flags zusammen mit Ring Deployment sind Rollouts und Rollbacks von Funktionen jetzt einfacher denn je!
mit ABTasty
Erhalten Sie eine individuelle Komplettlösung für die Plattform
Demo anfordern