Monitoring mit AWS CloudWatch Synthetics und Canaries
Hintergrund
Monitoring und Testing von Software sind integraler Bestandteil der Softwareentwicklung und entscheidend für die erfolgreichen Entwicklung und den verlässlichen Betrieb von Anwendungen.
Wir befinden uns im digitalen Zeitalter und versuchen dementsprechend, möglichst vieles zu automatisieren – das gilt damit selbstverständlich auch für das Testen. Dafür wurden für das Testing und Monitoring zahlreiche Lösungen entwickelt . Das spart Zeit und die frei gewordenen Kapazitäten können für die Weiterentwicklung des Produkts, das Umsetzen spannender Ideen oder neuer Projekte genutzt werden.
Oft sind es Softwarefehler, die Unternehmen schnell tausende von Euro kosten können oder das Image schädigen – beispielsweise die Nichterreichbarkeit einer frisch gelaunchten und beworbenen Website für ein neues Produkt.
Daher ist das frühzeitige Testing sowie Monitoring von Websites enorm wichtig. So kann beispielsweise die Nichterreichbarkeit einer Website schnellstmöglich entdeckt werden und die Problemlösung umgehend in Gang kommen.
AWS-Synthetics
Der Cloud Anbieter „Amazon Web Services“, kurz AWS, hat dafür einen neuen Service, der seit dem 25. November 2019 zur Verfügung steht, entwickelt und implementiert. Damit können sogar
Nicht-Programmierer beispielsweise eine GUI-Worklfow-Navigation über eine Website erstellen. Sie werden dann dank dem AWS-Service schnell über Probleme und Fehler per E-Mail informiert und können entsprechend schneller reagieren als ohne Monitoring. Dieser AWS-Service nennt sich Synthetics und die Testfälle werden bei AWS als „Canary“ beziehungsweise „Canaries“ bezeichnet. Sie basieren auf JavaScript Code, der beim Erstellen einer Canary zusammengeklickt werden kann. Alternativ kann JavaScript Code aber auch selbst geschrieben werden, was in einigen Fällen zu empfehlen ist.
Möglichkeiten des Monitorings
Wie bereits erwähnt, ist der GUI-Workflow nur ein Beispiel der Möglichkeiten in AWS.
Weitere sind das „Heartbeat Monitoring“, bei dem ein einfacher Ladevorgang der Seite auf einer einzelnen URL ausgeführt wird, das „API-Canary“, welches der Überwachung von API‘s dient und der „Brocken Link Checker“, der auf der überwachten URL alle Verlinkungen auf ihre Funktionsfähigkeit hin überwacht.
Wie funktioniert das Ganze?
Im folgenden Diagramm ist der Workflow mit seinen unterschiedlichen Möglichkeiten dargestellt:
In AWS sieht das Ergebnis wie folgt aus: Beispiel GUI-Workflow.
Abbildung 1 Testergebnis
Außerdem werden, wenn gewünscht, Screenshots von dem Workflow gemacht. Von der Startseite hin zum Login bis zum Anlegen eines Kontaktes wie der Namen des Canaries (siehe Abb. 1) verrät.
Abbildung 2 Geladene Startseite
Abbildung 3 Anlegen eines Kontaktes
Fazit: Ziele und Nutzen
Der AWS-Service Synthetics bietet eine einfache Möglichkeit zur Überwachung der Erreichbarkeit von Websites, Schnittstellen und dem Verhalten von Websites bei Nutzung (GUI-Workflow). Bei Änderung an den Seiten im Frontend oder dem Backend kann automatisiert getestet werden, ob sich die Anwendung nach der Änderung wie gewünscht verhält und alle Links erreichbar sind. Dadurch können die Ressourcen der Mitarbeiter effizienter genutzt werden, denn sie sind weniger im manuellen Testing eingebunden. Über fehlgeschlagene sowie erfolgreiche Canaries wird per E-Mail informiert. Bei fehlgeschlagenen Canaries ist so eine schnelle Reaktion möglich und eventuell entstehender wirtschaftlicher Schaden kann stark minimiert und im besten Falle ganz abgewendet werden.