Kolumne: Quality Time - The Day After Tomorrow

Dank Key-Performance-Indikatoren Fehler nach dem Deployment früh erkennen
Kommentare

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? Diese Fragen kennen wir alle sehr gut.

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. Also stellt sich die Frage, was wir tun können, 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 Google 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] +1n",
    FILE_APPEND
  );
}

So präparierte Nachrichten können zu einem späteren Zeitpunkt sehr einfach aggregiert und visuell aufbereitet werden. Um Fehler in der Anwendung möglichst schnell erkennen und darauf reagieren zu können, sollten die Charts mit den technischen KPIs auf einem für das gesamte Projektteam gut einsehbaren Monitor angezeigt werden.

Bei der Einführung von technischen KPIs ist ein wichtiger Punkt zu beachten: 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. Natürlich sollten wir auch hier nicht das Rad neu erfinden und nach vorhandenen Lösungen Ausschau halten. Gerade im Open-Source-Umfeld existieren immer mehr Tools, die uns bei der Messung und visuellen Aufbereitung von KPIs unterstützen, wie zum Beispiel Monolog [2] als universell einsetzbare Logging-Lösung, Graylog [3] oder Graphite [4] für die Visualisierung oder auch StatsD [5] als Log-Aggregator. Der komplizierteste Aspekt der gesamten Thematik besteht allerdings nicht in den technischen Lösungen, sondern darin, die richtigen KPIs zu identifizieren und zu messen, da man ansonsten Gefahr läuft, in der Masse der angezeigten Kennzahlen den Überblick zu verlieren.

Dem zu Beginn dieser Kolumne erwähnten unguten Bauchgefühl lässt sich mit der Einführung technischer KPIs sehr effektiv entgegenwirken, da wir schnell sehen, ob sich die Anwendung nach einem Deployment weiterhin normal verhält und wir damit eine zusätzliche Sicherheit schaffen, vor allen anderen Probleme erkennen und beheben zu können. 

Aufmacherbild: Greek Ionic Column von Shutterstock / Radu Bercan

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -