1 % der Nutzer werden mithilfe eines Feature Flag zum neuen Erlebnis weitergeleitet. Bild: Optimizely
So führen Sie einen Canary-Test durch
Canary-Tests ermöglichen es, neuen Code oder neue Features zunächst für eine kleine Teilmenge von Nutzern freizugeben, um Probleme zu identifizieren, bevor die Veröffentlichung auf ein größeres Publikum ausgeweitet wird. Durch die Begrenzung der Freigabe auf eine ausgewählte Zielgruppe, um den Wirkungsradius neuer Releases zu minimieren, können Teams Funktionalität und Leistung validieren, bevor der Rollout auf alle Nutzer erfolgt.
Ein weiterer Grund für Canary-Tests und Produktexperimentieren ist, dass Entwicklungs- oder Staging-Umgebungen häufig nicht vollständig mit Produktionsumgebungen übereinstimmen. Durch das Testen mit einem kleinen Prozentsatz von Produktionsnutzern (häufig als Testen in der Produktion bezeichnet) können Probleme erkannt werden, die in Staging- oder Entwicklungsumgebungen möglicherweise nicht aufgefallen wären.
Canary-Tests & Feature Flags
Canary-Tests können mithilfe von Feature Flags durchgeführt werden, die es Teams ermöglichen, die Code-Veröffentlichung von der Feature-Aktivierung zu trennen und Features für bestimmte Gruppen, Prozentsätze von Nutzern oder alle Nutzer remote ein- und auszuschalten. Mit Feature Flags können Teams die Freigabe auf nur 1 % der Nutzer beschränken und wichtige Kennzahlen wie Fehlerraten, Latenz und Geschäftsmetriken überwachen, um sicherzustellen, dass das neue Feature keine negativen Auswirkungen hat.
Wenn ein Canary-Test während des Bereitstellungsprozesses ein Problem aufdeckt, lässt sich das neue Feature oder der neue Code einfach durch Deaktivieren des Feature Flag abschalten. Canary-Releases können dazu beitragen, größere Ausfallzeiten, Umsatzverluste oder negative Kundenstimmung zu vermeiden, indem sie schnelle Erkenntnisse über die Leistung eines neuen Features liefern und gleichzeitig die Zahl der Betroffenen begrenzen.
Canary-Tests & Continuous Delivery
Continuous Delivery, maßgeblich geprägt vom einflussreichen Softwareentwickler Martin Fowler, ist eine Disziplin der Softwareentwicklung, bei der Software jederzeit in die Produktion überführt werden kann. Sie wurde von führenden Softwareunternehmen weltweit übernommen, deren Teams heute Software schnell, stabil und fehlerfrei an die Nutzerbasis ausliefern sollen.
Canary-Tests fügen sich in die Methoden der Continuous Delivery und der kontinuierlichen Integration ein. Erstklassige Continuous-Delivery-Systeme wie bei Unternehmen wie Facebook integrieren umfassendes Monitoring und automatisierte Tests in ihre Canary-Tests. Wenn ein Feature eine Monitoring-Prüfung nicht besteht, nachdem es als Canary für einen Prozentsatz der Nutzer bereitgestellt wurde, wird es automatisch zurückgerollt. Mit Continuous Deployment und Canary-Tests kann ein Team neue Funktionalitäten und Codeänderungen sicherer und in großem Umfang veröffentlichen.
Canary-Tests in Intelligence Cloud
Software-Engineering-Teams können jetzt kostenlose Feature Flags von Optimizely nutzen, um Feature Flags für Canary-Tests zu implementieren.
Teams können die Praktiken der kontinuierlichen Integration und Continuous Delivery übernehmen, die von den fortschrittlichsten Engineering-Teams von heute eingesetzt werden. Sowohl Teams als auch ganze Unternehmen profitieren von schnelleren Entwicklungszyklen und Feature-Management-Praktiken wie Canary-Tests zur Risikominimierung.
Kunden von Optimizely Server-Side Experimentation können den führenden Softwareunternehmen der Welt (wie Amazon, Google und Facebook) folgen, die ihre Features zunächst nur einem kleinen Prozentsatz der Nutzer bereitstellen, bevor sie diese breiter ausrollen.
Optimizely bietet außerdem Enterprise-Grade Feature Management über Optimizely Server-Side Experimentation – eine leistungsstarke Lösung für Canary-Tests, kontrollierte Feature-Releases und Feature-Tests in Ihrem Produkt oder Ihrer App.