Was ist ein Kill Switch im Feature Release Management?

Feature Flags werden im Softwareentwicklungsprozess als Kill Switch verwendet, um Features bei Bedarf zu deaktivieren. Stell dir einen Notfallknopf vor, den du betätigen kannst, wenn etwas schiefläuft und du schnell handeln musst, um zu verhindern, dass deine Nutzer auf ein fehlerhaftes Feature zugreifen.

Mit Feature Flags können Developer fehlerhafte Features während des Testens in der Produktion einfach per Knopfdruck ausschalten. Ohne den Einsatz von Feature Flags müssten Entwickler die gesamte Veröffentlichung zurückrollen.

Das ist ein zeitaufwendiger und ein komplexer Prozess, der eine gründliche Analyse des Problems erfordert. Dadurch wird die Veröffentlichung verzögert, während eine geeignete Lösung gesucht wird. Mit Feature Flags kannst du die Änderungen auf ein bestimmtes Feature isolieren, ohne ein komplettes Rollback durchzuführen.

Daher kannst du mit Feature Flags sicherstellen, dass jedes einzelne deiner Features unter Kontrolle ist. Wenn das fehlerhafte Feature behoben ist, ist es ebenso einfach, das deaktivierte Feature erneut zu veröffentlichen.

In diesem Sinne sind Kill Switches unerlässlich, um sicher in der Produktion zu testen und schnell und effizient auf Probleme zu reagieren.

Kill Switch in Continuous Integration und Continuous Delivery (CI/CD)

Eine der größten Herausforderungen für Developer im Prozess der Continuous Integration ist der Umgang mit unvollständigen Features. Stell dir vor, ein Developer hat seine Änderungen in die gemeinsame Mainline integriert und ist bereit zur Veröffentlichung.

Ein anderer Developer hat seine Änderungen noch nicht abgeschlossen. Wie kann man das grundlegende Prinzip der Continuous Integration, nämlich Änderungen so häufig wie möglich in den Hauptzweig zu integrieren und diese Änderungen jederzeit durch Continuous Delivery veröffentlichen zu können, in diesem Szenario aufrechterhalten? Gibt es eine Möglichkeit, Teile des Codes zu deaktivieren und dennoch mit der Veröffentlichung fortzufahren?

Feature Flags sind die Lösung

Feature Flags oder Feature Toggles in Form von Kill Switches ermöglichen es Developern, Teile des Codes während der Veröffentlichung deaktiviert zu lassen, sodass Nutzer die unvollständigen Änderungen nicht sehen, während abgeschlossene Features für die Nutzer aktiviert werden können.

Auf diese Weise werden Feature Flags als Kill Switch im CI/CD-Prozess verwendet, aber sie haben auch andere Einsatzmöglichkeiten, die wir im Folgenden erläutern werden.

Unvollständige Features

Eine der wichtigsten Anwendungen von Kill Switches ist die Möglichkeit, unvollständige Features zu deaktivieren, um zu verhindern, dass Nutzer auf sie zugreifen, bevor sie fertiggestellt sind.

Änderungen, deren Fertigstellung länger dauert, verzögern geplante Veröffentlichungen nicht, und Developer stehen unter weniger Druck, ihre eigenen Änderungen am Code zu veröffentlichen. Das Risiko einer zu frühen Veröffentlichung mit fehlerhaften Features ist verringert.

Testen in der Produktion

Wenn du in der Produktion an einer kleinen Gruppe von Nutzern testest, beispielsweise während eines Canary Deployments, möchtest du natürlich, dass die Veröffentlichung reibungslos verläuft.

Da du jedoch eine kleine Gruppe von Nutzern zum Testen ausgewählt hast, besteht die Möglichkeit, dass du nicht ganz sicher bist, ob das Feature wie gewünscht funktioniert. Sollten Probleme auftreten, kannst du das problematische Feature einfach deaktivieren, ohne ein vollständiges Rollback durchführen zu müssen.

Stattdessen kannst du es sofort ausschalten, sodass Nutzer es nicht mehr sehen, ohne andere Teile deines Codes zu gefährden. Auf diese Weise kannst du dir die Zeit nehmen, das Problem zu analysieren, es zu beheben und dann erneut und ohne Zeitdruck in die Produktion zu bringen.

Umgang mit Stoßzeiten

Kill Switches sind eine gute Möglichkeit, die Belastung auf Systeme zu verringern. Wenn deine Website beispielsweise ungewöhnlich hohen Traffic erfährt, kann das Deaktivieren einiger Features dazu beitragen, die Auslastung und den Stress auf der Datenbank zu reduzieren.

Ein Beispiel wäre eine E-Commerce-Website am Black Friday. Du möchtest nicht, dass deine Website an einem der profitabelsten Tage des Jahres abstürzt. Mit Feature Flags lässt sich das Problem unerwarteter Abstürze angehen.

Developer können also nicht wesentliche Features für einige oder alle Nutzer während Stoßzeiten oder im Falle von Ausfällen deaktivieren. Dadurch kann dein Team weiterhin Kunden bedienen, ohne deren Dienstleistungen zu unterbrechen und die Benutzererfahrung zu beeinträchtigen.

Mobile Apps

Feature Flags können auch als Kill Switches verwendet werden, wenn in deiner mobilen App etwas schiefgeht und du schnell zur letzten funktionierenden Version zurückkehren möchtest.

Sie sind auch bei hohem Traffic effektiv, um bestimmte Features zu deaktivieren, sodass deine App weiterhin funktioniert, auch wenn sie nicht mit voller Kapazität läuft. Developer platzieren dann bestimmte Features hinter Feature Flags, die bei Bedarf deaktiviert werden können.

Zusammenfassung

Ein Kill Switch ist unerlässlich, um fehlerhafte oder ungenutzte Features zu deaktivieren, ohne den Code zu beeinträchtigen.

Er ist besonders wichtig, wenn während der Produktion Probleme auftreten, da du so die Möglichkeit hast, schnell ein Feature zu deaktivieren, das sich negativ auf deine Nutzer auswirken und die Benutzererfahrung beeinträchtigen könnte.

Durch die Verwendung von Feature Flags als Kill Switches kannst du Continuous Integration und Testen in der Produktion umsetzen. Das ist wichtig, um einen agilen Softwareentwicklungsprozess aufrechtzuerhalten.

Mit Feature Flags minimierst du Risiken, indem du deine Features mit einem sofortigen Kill Switch fest unter Kontrolle hältst. Das gibt deinem Team ein größeres Maß an Sicherheit für bevorstehende Veröffentlichungen.

Schneller wachsen
mit ABTasty

Erhalten Sie eine individuelle Komplettlösung für die Plattform

Demo anfordern