Official Blog
Canary Testing: Was genau ist es? Warum wird es eingesetzt?
Stefan Hedwig
4. Mai 2022

Canary Testing: Was genau ist es? Warum wird es eingesetzt?

Bei Canary Testing, oftmals auch Canary Deployment genannt, handelt es sich um eine Strategie, die es Entwicklern ermöglicht, neue Software vor der Markteinführung an einer kleinen Gruppe von Benutzern zu testen. Ziel ist es, Probleme zu finden und zu beheben, bevor die Software in größerem Umfang eingesetzt wird. Im Folgenden erklären wir, wie genau Canary Testing funktioniert und wie es bei Synology zum Einsatz kommt.

Es ist kein Geheimnis, dass die Implementierung neuer Softwarefunktionen oft Probleme mit sich bringt. Zum einen muss Software in diversen Umgebungen getestet werden. Zum anderen arbeiten Entwickler unter dem Druck von Budgets und Fristen. So ist es unvermeidlich, dass sich Fehler einschleichen. Glücklicherweise gibt es Möglichkeiten, wie Softwarehersteller das Risiko von Bugs verringern und neue Software vor der vollständigen Veröffentlichung testen können, das sogenannte Canary Testing.

Woher kommt der Begriff „Canary Testing“?

Der Begriff des „Canary Testings“ geht auf eine Bergbautradition zurück, die bis in die 1980er Jahre fortgeführt wurde. In dieser Zeit wurden Kanarienvögel oder andere kleine Singvögel von Bergleuten als Frühwarnsystem eingesetzt, um Kohlenmonoxid und andere geruchlose giftige Gase in Kohlebergwerken aufzuspüren. Bergleute nahmen die Vögel mit unter Tage. Starb ein Kanarienvogel, so wusste man, dass die Minen evakuiert werden müssen, bevor sich einer der Bergbauleute eine Vergiftung zuzieht.

Canary Testing geht auf Bergbau Tradition zurück

Photo by Julia Craice on Unsplash

In ähnlicher Weise können Canary Tests bzw. Canary Deployments in der Softwarebranche Entwicklern Frühwarnindikatoren liefern, wenn etwas schiefläuft.

Wie funktioniert Canary Testing?

Wenn Entwickler mit der Programmierung einer neuen Funktion fertig sind, testen sie diese in der Regel auf allgemeine Fehler. Sobald diese Tests erfolgreich durchlaufen wurden, wird die Fehlerüberprüfung fortgesetzt. Das passiert, indem die Funktion in einer Umgebung mit Software-Testern oder Kollegen auf weitere, mögliche Probleme getestet wird. Die durch dieses Prozedere gefundenen Probleme werden anschließend behoben und die überarbeitete Version schlussendlich für Endbenutzer implementiert.

Unterschiede in Produktionsumgebungen, wie Betriebssysteme oder Speicher- und Bandbreitenkapazitäten, können jedoch dazu führen, dass bestimmte Probleme nicht erkannt werden und dennoch in die Produktion gelangen. An dieser Stelle kommen das Canary Testing bzw. Canary Deployment ins Spiel.

Beim Canary Testing wird eine fertige Version einem kleinen Prozentsatz (z. B. 5 %) von Benutzern zur Verfügung gestellt. Diese können die neuen Funktionen sehen und nutzen. Durch die Überwachung der Benutzerprotokolle dieser Nutzer sind die Entwickler in der Lage, auftretende Fehler zu erkennen und zu beheben. Da Entwickler anfänglich neu eingeführte Funktionen ausgiebig überwachen und Fehler beheben, minimieren sie die Auswirkungen von Produktionsfehlern in der Software zu einem späteren Zeitpunkt. Folglich treten Fehler später seltener und bei weniger Benutzern auf. Viele Unternehmen wenden ähnliche Strategien für das Canary Testing an, allerdings mit unterschiedlichen Zyklen und Methoden.

Canary Testing im technischen Bereich

Facebook verwendet einen quasi-kontinuierlichen Veröffentlichungszyklus, um eine schnelle Veröffentlichung in großem Maßstab zu erreichen. Bei dieser Methode bündeln Facebook zugesagte Änderungen und veröffentlicht diese alle paar Stunden. Dies ermöglicht eine schnelle Bereitstellung von Code. Facebook nutzt das Canary Deployment während der gesamten Produktionsphase und erhöht es stetig. Während dieses Prozesses wird ein kontinuierliches Überwachungssystem zur Erkennung von Problemen eingesetzt.

Google hingegen verwendet ein automatisiertes Freigabesystem namens Rapid. Rapid verwendet Blueprint-Dateien, die Build- und Testziele, Regeln für die Bereitstellung und Verwaltungsinformationen für die Konfiguration enthalten. Auch Rapid selbst nutzt Canary Tests für jeden Release-Zyklus. Zunächst werden interne, systematische Tests in einer isolierten Umgebung, der sogenannten Sandbox-Umgebung getestet. In dieser Umgebung lässt sich Software testen, ohne dass diese auf die eigentliche Systemumgebung Zugriff hat. Nach erfolgreichem Abschluss dieser Tests wird für einen kleinen Prozentsatz der Aufgaben ein Canary Deployment durchgeführt. Auf das anfängliche Canary Deployment folgen dann weitere für große Gruppen.

Dank des Einsatzes von Canary Testing und Continuous Release Deployments sind Unternehmen wie Synology, Facebook und Google in der Lage, qualitativ hochwertige Produkte und Dienstleistungen auf dem neuesten Stand anzubieten.

Canary Testing bei Synology

Synology verfolgt einen ähnlichen Ansatz beim Testen der Software mit Canary Deployment. Dies funktioniert folgendermaßen: zunächst teilt man die Synology Nutzer vor einer Softwareeinführung in drei verschiedene Gruppen ein:

  • Synology Kollegen

  • Early Adopters

  • Übrige Nutzer

Stufenweise werden diese Testgruppen nun einem Canary Test unterzogen. An erster Stelle kommen natürlich die Synology-Kollegen, gefolgt von den Early Adopters und zu guter Letzt allen übrigen Nutzern. Doch wie wird aufgeteilt? Basierend auf einem Algorithmus und den jeweiligen Rechenzentren werden Nutzer dem Zufallsprinzip nach in Gruppen für jede Canary Version eingeteilt. Danach gibt Synology alle Funktionen in kleinen Schritten für Benutzer frei, d. h. das Unternehmen beginnt mit 1 % und steigert sich kontinuierlich auf 100 % der Benutzer.

Mit dem Rollout fängt Synology mit den Nutzern in Taiwan, Korea und Hong-Kong an. Erst nachdem die Änderungen erfolgreich auf diesen Märkten implementiert wurden, werden die durch das Canary Testing geprüften, neuen Features offiziell für weitere Märkte angekündigt und automatische Softwareupdates angestoßen. Japan und China folgen. Auch hier hat zunächst nur ein kleiner Prozentsatz Zugriff auf die Features. Funktioniert die Implementierung problemlos, stellt Synology die Software den Usern in der restlichen Welt zur Verfügung.

Indem Synology die Anzahl der Nutzer, die Zugriff auf neue Versionen haben, langsam erhöht, kann das Unternehmen die Auswirkungen der neuen Versionen auf verschiedene Umgebungen ganz besonders gut überwachen und erfassen. Wenn Probleme auftreten, kann Synology die Infrastruktur auf den ursprünglichen Zustand, d. h. die vorherige Version, zurücksetzen, bis das Problem behoben ist.

Software Canary Testing

Image by pch.vector on Freepik

Erhalten Sie Zugriff auf die neueste Technologie

Sie möchten dabei helfen, neue Versionen für Synology zu testen? Für Synology C2 können Sie sich als Early-Adopter anmelden und so  Zugang zu den neuesten Funktionen von Synology erhalten und unseren Produktmanagern direktes Feedback geben.

Synologys Engagement für gut getestete Produkte

Synology ist bestrebt, Nutzer stetig auf dem neuesten Stand zu halten. Durch die Herstellung gut getesteter und leistungsstarker Lösungen trägt Synology nicht nur zur Stärkung der Sicherheit bei, sondern sorgt auch dafür, dass Nutzer die Software-Erfahrung bekommen, die sie verdienen.