© saicle/Shutterstock.com
Kolumne: Quality Time

Kolumne: Quality Time


Jeder von uns kennt es, dieses spannungsgeladene Gefühl, das sich in der Zeit rund um das Deployment einer neuen Softwareversion einstellt. Haben wir auch nichts vergessen? Hoffentlich gab es keine Regression und ein alter Fehler tritt auf? Viele dieser Probleme und Unsicherheiten können natürlich mittels ausreichender Tests im Vorfeld gemildert oder sogar ausgeschlossen werden, aber trotzdem bleibt meistens dieses ungute Gefühl. Was können wir also tun, um Fehler nach dem Deployment möglichst frühzeitig zu erkennen, und das am besten vor den Usern unserer Software? Einen möglichen Lösungsansatz finden wir bei den Businessanalysten und dem Management. Hier werden schon seit langer Zeit Key-Performance-Indikatoren (KPI) [1] verwendet, um Veränderungen, Tendenzen und Entwicklungen im Benutzerverhalten über die Zeit zu messen und zu visualisieren. Eines der bekanntesten Tools zur Messung solcher Business KPIs im Webumfeld ist Goo­gle Analytics.

Genau diesen Ansatz können wir uns auch zunutze machen, um von technischer Seite aus KPIs in unserer Anwendung zu messen und so Fehler nach einem Deployment zeitnah zu erkennen. Eine sehr kritische Stelle in modernen Webanwendungen ist die Registrierung. Schließlich ist ein User, der eine Registrierung durchführen möchte, die dann aber fehlschlägt, für immer verloren. Deshalb definieren wir hier einen ersten technischen KPI und loggen zukünftig bei jeder Registrierung eine maschinell auswertbare Nachricht mit:

public function register() {  // Your registration code file_put_contents( '/var/log/kpi/' . uniqid('qacolumn_') . '.txt', date('Y/m/d H:i:s') . " [registration] +1\n", FILE_APPEND ); } 

So präparierte Nachrichten können zu einem späteren Zeitpunkt sehr einfach aggregiert und visuell aufbereitet werden.

Um Fehler möglichst schnell erkennen zu können, sollten die Charts mit den technischen KPIs auf einem für das gesamte Projektteam gut einsehbaren Monitor angezeigt werden.

Ein wichtiger Punkt bei der Einführung von technischen KPIs: Die eigentliche Messung sollte keinen bzw. nur einen sehr geringen Einfluss auf die Ausführung der Anwendung haben. Daher empfiehlt es sich, die Erhebung und die Verarbeitung der Messwerte voneinander zu trennen. Dies kann wie im gezeigten Beispiel durch die Verwendung einfacher Textdateien erfolgen oder durch einen separaten Service, an den Nachrichten mittels UDP gesendet werden. Es lohnt sich, nach vorhandenen Lösungen Ausschau zu halten. Gerade im Open-Source-Umfeld existieren imm...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang