Was ist Progressive Delivery?
Progressive Delivery oder schrittweise Bereitstellung, auch bekannt als progressives Rollout oder phasenweises Rollout, ist eine Softwareentwicklungspraxis, bei der neue Features schrittweise an Nutzer ausgerollt werden, um die Auswirkungen auf Endnutzer zu minimieren und Feedback zur Verbesserung zu erhalten.
Progressive Delivery baut auf dem Konzept der kontinuierlichen Bereitstellung auf und umfasst Deployment-Strategien wie A/B-Tests, Ring Deployment und Canary Deployment.
Wie funktioniert Progressive Delivery?
Progressive Delivery beinhaltet das schrittweise Freigeben von Features an eine kleine Benutzergruppe, die meist aus den relevantesten Nutzern besteht, die konstruktives Feedback geben können. Dies ermöglicht deinem Team, anhand dieses Feedbacks die Freigabe zu optimieren, indem Fehler erkannt und behoben werden, bevor das Feature für alle Nutzer freigegeben wird.
Mit Feature Flags kannst du steuern, welche Nutzer Zugang zu deinen neuen Features haben, indem du diese Features ein- oder ausschaltest, um die Auswirkungen auf die Benutzer zu begrenzen. Es gibt viele verschiedene Wege, schrittweise Rollouts durchzuführen.
Alle diese Methoden fallen unter den Begriff von Progressive Delivery. Eine Methode ist das Canary Deployment. Dabei erhält ein kleiner Prozentsatz von Nutzern Zugang zu deinem Feature; dies sind Nutzer, die ähnliche Eigenschaften teilen und das relevanteste Feedback zur Verbesserung deines Produkts geben können.
Du könntest auch einen Dark Launch in Betracht ziehen, bei dem das Feature schrittweise freigegeben wird, ohne es den Nutzern zu zeigen. Eine andere Methode ist das Ring Deployment. Dabei werden die Nutzer in Ringe unterteilt, wobei jeder Ring eine Gruppe darstellt, die das Feature ausgerollt bekommt.
Der Prozess könnte also mit deinen internen Nutzern beginnen, und sobald die neue Funktionalität getestet ist, wird sie an den nächsten Ring freigegeben und so weiter.
Du könntest auch eine Blau-Grün-Bereitstellung durchführen. Dabei gibt es zwei identische Produktionsumgebungen; eine ist aktiv, während die andere nicht aktiv ist. Sobald alle Änderungen abgeschlossen sind, werden diese in der zweiten Umgebung bereitgestellt. Ein Router leitet dann den Datenverkehr zur Umgebung, in der die Änderungen aktiv sind, und diese werden an einer Teilmenge von Nutzern getestet, während die erste Umgebung inaktiv ist.
Eine Alternative zur Blau-Grün-Bereitstellung wären Feature Flags, die gezielte Rollouts ermöglichen, ohne zwei Produktionsumgebungen zu betreiben. Zusätzlich bietet Progressive Delivery Raum für Experimente. Zum Beispiel kannst du durch A/B-Tests herausfinden, wie verschiedene Varianten eines Features performen, um zu sehen, welche den besten Einfluss auf deine vorab ausgewählten Nutzer hat.
Diese Variante wird dann für einen breiteren Rollout gewählt, sobald das Experiment abgeschlossen ist.
Vorteile
Heutzutage besteht mehr Druck als je zuvor, Software schnell zu veröffentlichen. Aufgrund dieses Drucks und enger Zeitvorgaben können unvermeidlich Fehler entstehen, was zu schlechtem Ruf und Frustration bei deinen Nutzern führen kann.
Hier liegt der wahre Wert von Progressive Delivery. Es ermöglicht Developern, viel häufiger und in kleineren Batches zu veröffentlichen, sodass die Nutzer neue, qualitativ hochwertigere Features schneller erhalten. Ebenso schnell kannst du zurückrollen, wenn etwas schiefgeht.
Da es unmöglich ist, alle Fehler vor einer Veröffentlichung zu erkennen, da einige Fehler erst dann erkannt werden, wenn sie reale Nutzer betreffen, betrifft dann ein Fehler bei Progressive Delivery eben nur einen kleinen Prozentsatz der Nutzer.
Es bietet auch die Möglichkeit für Teams zu sehen, wie ihre neue Variante performt, ob sie die Benutzererfahrung optimiert, und sie können die am besten funktionierende Variante auswählen, bevor sie für alle anderen freigegeben wird.
Progressive Delivery bietet auch eine weniger riskante Möglichkeit, Continuous Integration und Continuous Delivery zu praktizieren, da es das Risiko des kontinuierlichen Pushens von Code in die Produktion mindert, indem unfertige Änderungen deaktiviert werden können.
Mit Feature Flags verbessert Progressive Delivery die CI/CD-Pipeline erheblich, indem sichere Rollouts an eine kleine Nutzerbasis ermöglicht und schnelle Rollbacks durchgeführt werden können, wenn in der Produktion etwas schiefgeht.
Fazit
Progressive Delivery ermöglicht schnelle Releases. Die Schritte zur Progressiven Delivery sind einfach; mit sorgfältiger Planung und den richtigen Tools kannst du sicherstellen, dass zukünftige Releases schneller und risikofrei sind. Am wichtigsten ist, dass ein phasenweises Rollout dir die vollständige Kontrolle über deinen Feature-Rollout-Prozess gibt.
Ein Feature-Management-System, wie AB Tastys serverseitiges Feature, ermöglicht es dir, deine Nutzerbasis zu segmentieren, indem spezifische Flag-Werte verschiedenen Nutzersegmenten zugewiesen werden. Auf diese Weise kannst du Features schrittweise an verschiedene Zielgruppen freigeben. Das bedeutet stabilere und qualitativ hochwertigere Releases.
mit ABTasty
Erhalten Sie eine individuelle Komplettlösung für die Plattform
Demo anfordern