Veröffentlicht am 02. Juni 2020

Die 6 Arten von Feature Flags, die Sie bei Optimizely kennenlernen werden: Fehlerbehebung

Tl;dr 🚩 Wie verwenden wir Bug Fixes bei Optimizely? Um Fixes für komplexere Probleme sicher zu testen. 🔒 Zugangsstufe? Jeder. 😬 Risikostufe? Gering. 👩‍💻 Tests? Testen Sie es wie ein neues Feature (Einheit/Integration/End-to-End/manuell). ⏰ Lebenszeit? Kurz. Sobald die Korrektur funktioniert, entfernen Sie sie. Die meisten Fehlerbehebungen müssen

Jeff Sing
von Jeff Sing
a screenshot of a computer

Feature Flag Bug Fix PromoTl;dr

🚩 Wie verwenden wir Bug Fixes bei Optimizely? Um Fixes für komplexere Probleme sicher zu testen.
🔒 Zugangsstufe? Jeder.
😬 Risikostufe? Gering.
👩‍💻 Tests? Testen Sie es wie ein neues Feature (Einheit/Integration/End-to-End/manuell).
Lebenszeit? Kurz. Sobald die Korrektur funktioniert, entfernen Sie sie.


Die meisten Fehlerbehebungen müssen sofort als Hotfix oder inkrementelle Version veröffentlicht werden (Sie haben etwas kaputt gemacht und der Kunde ist unzufrieden, die Zeit läuft!) Was aber, wenn das Problem etwas komplexer ist und Sie mehrere verschiedene Lösungen haben, die Sie einsetzen könnten? Welche davon ist die richtige Lösung? Welche könnte das Problem möglicherweise verschlimmern? In solchen Situationen können Sie eine Fehlerbehebung hinter einem Feature Flag verstecken, um sie in der Produktion mit einer begrenzten Anzahl von Kunden zu testen (um den Radius einzugrenzen), um zu prüfen, ob Ihre Fehlerbehebung performant ist (anhand des Datenverkehrs in der Produktion) und schließlich, ob sie die Situation tatsächlich verbessert (Feature-Test verschiedener Lösungen gegeneinander). Wenn Sie es richtig gemacht haben, großartig (führen Sie es aus)! Wenn nicht, schränken Sie zumindest den Aktionsradius ein (lesen Sie weiter unten mehr dazu) oder nehmen Sie die Lösung zurück.

Wie verwenden wir Bug Fix Feature Flags bei Optimizely?

Judge Judy Bug Swat

Ein Feature Flag zur Fehlerbehebung bedeutet, dass die Entwickler eine Fehlerbehebung in der Produktion mit Hilfe eines Feature Flags bereitstellen. Der Vorteil des Einsatzes von Feature Flags zur Fehlerbehebung besteht darin, dass das Entwicklungsteam mit mehreren Lösungen experimentieren kann, um herauszufinden, welche Lösung am besten geeignet ist, indem es verschiedene Lösungen hinter einem Feature Flag einsetzt und den Produktionsverkehr nutzt, um festzustellen, welche Lösung die beste ist.

Die Verwendung eines Feature Flags zur Fehlerbehebung ist das seltenste Flag, das wir hier bei Optimizely verwenden. Wir verwenden Feature Flags nicht für kleinere Fehlerbehebungen oder Notfall-Fehlerbehebungen (Hotfixes/Patches), da wir der Meinung sind, dass dies unnötigen Overhead verursacht:

  • Wir finden einen komplexeren Fehler in der Produktion. Das Team möchte die Korrektur in der Produktion testen, aber dennoch die Funktion haben, die Korrektur zu deaktivieren, falls sie zu einer weiteren Verschlechterung der Situation führt.
  • Das Team hat einige verschiedene Lösungen und möchte testen, welche davon am leistungsfähigsten ist. Sie können alle Lösungen hinter einem Feature Flag bereitstellen und den Datenverkehr in der Produktion nutzen, um herauszufinden, welche Lösung die beste Lösung ist.
  • Wir möchten unsere Korrektur in der Produktion anhand eines internen QA-Kontos testen und wenn sie funktioniert, in die Produktion einführen.

Wer darf Änderungen an Bug Fix Feature Flags vornehmen?

Bei Optimizely werden Feature Flags für Fehlerbehebungen genauso behandelt wie Feature-Rollouts und werden identisch gehandhabt. Alle Techniker haben Zugriff auf diese Feature Flags, da mehrere Entwicklungsteams an dem Flag beteiligt sein können. Wir verwenden unsere Funktion Änderungsverlauf, um zu prüfen, wer diese Änderungen vorgenommen hat, und aktualisieren das verknüpfte Jira-Ticket, um uns Klarheit darüber zu verschaffen, was mit dieser Fehlerbehebung geschieht.

Wie hoch ist das Risiko bei der Verwendung eines Feature Flags für Fehlerbehebungen?

Feature Flags für Fehlerkorrekturen haben ein geringes Risiko (wir führen nichts Neues ein, sondern beheben nur etwas, das derzeit nicht funktioniert). Wir handhaben das Risiko außerdem mit den folgenden Methoden:

  • Stellen Sie den Bugfix zunächst auf ein Canary-Konto mit ausschließlich internen Benutzern bereit.
  • Führen Sie die Fehlerbehebung bei einer kleineren Anzahl von Kunden ein. Überwachen Sie das Verhalten, und wenn die Korrektur nicht funktioniert, nehmen Sie sie zurück.

Durch Targeting und langsames Ausrollen der Fehlerbehebung können wir unsere Lösung sicher ausliefern und sicherstellen, dass sie die Situation nicht verschlimmert.

Wie testet Optimizely den Einsatz von Bug Fix Feature Flags?

Optimizely testet seine Feature Flags für Fehlerbehebungen genauso wie seine Feature Flags, die neue Funktionen ausrollen. Die Auslieferung von Code für neue Funktionen wird genauso behandelt wie die Auslieferung von Code zur Behebung einer fehlerhaften Funktion (Ausrollen an die Zielgruppe, Testen und, wenn Sie sich sicher sind, Ausrollen bis zur Fertigstellung).

Bevor wir einen Fehler hinter einem Feature Flagbeheben , führen wir normalerweise ein Audit durch, um herauszufinden, warum unser ursprünglicher Unit-Test, Komponententest, End-to-End-Test oder die manuelle Fehlerprüfung den ursprünglichen Fehler nicht erkannt hat. Wir stellen Fragen wie: "Haben wir ein bestimmtes Szenario vergessen?", "Haben wir die Funktion nicht so verstanden, wie sie von unseren Kunden genutzt wurde?", "Hat unser Test nicht korrekt funktioniert?" und stellen sicher, dass wir die richtigen Änderungen an unseren Tests vornehmen, um diese Fragen zu beantworten.

Wann entfernt Optimizely seine Bug Fix Feature Flags?

Bug Fix Jira Board

Optimizely Kanban Board, das unsere Feature Flags und ihren Status anzeigt.

Sobald wir bestätigt haben, dass die Fehlerbehebung den ursprünglichen Fehler tatsächlich behoben hat, markieren wir den Fehler im verlinkten Jira-Feld als "bereit zum Entfernen". In einigen Teams wird die Feature Flag dann von einem Techniker auf der Support-Rotation entfernt, in anderen Teams wird sie am Tag der Entfernung von Feature Flagsabgeholt und entfernt .


Dies ist der erste Teil einer Serie, in der wir mehr über die verschiedenen Feature Flags bei Optimizely und die Teams, die sie einsetzen, erfahren werden. Wir sehen uns beim nächsten Mal wieder, wenn wir uns näher mit dem Typ Operational Feature Flag beschäftigen.

Wenn Sie mit Feature Flags beginnen oder sie skalieren möchten, sollten Sie sich unsere kostenlose Lösung ansehen: Optimizely Rollouts!

Setzen Sie in Ihrem Unternehmen Feature Flags zur Fehlerbehebung ein? Ich würde gerne von Ihren Erfahrungen hören! Twitter, LinkedIn