CASE-Methode: Humane Überwachung


Dziiiiiiin! Um 3 Uhr morgens sehen Sie einen wunderbaren Traum und plötzlich eine Glocke. Diese Woche bist du im Dienst und anscheinend ist etwas passiert. Ein automatisiertes System ruft an, um herauszufinden, was los ist. Dies ist ein wichtiger Punkt bei der Verwaltung moderner Computersysteme. Lassen Sie uns jedoch sehen, wie Benachrichtigungen für Benutzer bequemer gestaltet werden können.


Machen Sie sich mit der Überwachungsphilosophie vertraut, die über mehrere Jahrzehnte meiner Tätigkeit in verschiedenen Überwachungsteams entstanden ist. Sie wurde in vielerlei Hinsicht von der wahren Bibel aus Rob Evashchuk My Philosophy on Alerting , die im Google SRE- Buch enthalten ist, und John Alspos Buch Considerations for Alert Design beeinflusst .


Kelly Dunn , Aridzhit Mukheryi und Maxim Petazzoni - danke für die Hilfe bei der Bearbeitung des Beitrags.


Was ist ein Fall?


Ich entschied mich für ein schönes Akronym wie Brendan Greggs USE- Methode oder Tom Wilkies RED-Methode . Ich nenne das die CASE-Methode . Er beschreibt vier Punkte, auf die Sie bei der Arbeit mit der automatischen Überwachung achten müssen:



Wenn Sie CASE verwenden, behandeln Sie Benachrichtigungen mit gesunder Gleichgültigkeit und wecken nachts keine Menschen. Die Überwachung sollte regelmäßig auf Nutzen und Wirksamkeit überprüft werden. Wenn eine Person eine Benachrichtigung erhält, hat sie bessere mentale Modelle und mehr Selbstvertrauen.


Stellen Sie sich zum leichteren Erinnern vor, Sie benötigen einen CASE (dh ein Fall, der Grund ist ein Dolmetscherkommentar ), um jede Warnung zu rechtfertigen. : Sonnenbrille:


Und warum ist das alles?


Pflicht kann eine Qual sein . Aus vielen Gründen. Und CASE wird sie nicht alle beseitigen. Aber damit wachen Sie nachts von besseren Benachrichtigungen auf. Diese Methode deckt verschiedene organisatorische Prozesse ab, die auch in dieser Angelegenheit hilfreich sind.


Das Schöne an den Methoden RED und USE ist, dass wir mit ihrer Hilfe nicht nur wissen, wie man arbeitet, sondern auch dieselbe Sprache miteinander sprechen. Ich hoffe, dass es mit der CASE-Methode einfacher wird, Benachrichtigungen zu diskutieren, die unsere Systeme schützen, aber Kollegen keine Ruhe geben.


Das Fazit ist, dass Sie eine Kultur in der Organisation schaffen müssen, in der Benachrichtigungen mit gesunder Gleichgültigkeit behandelt werden. In diesem Fall können Benachrichtigungen erstellt werden, nicht jedoch die Tatsache, dass sie später nicht an Wert verlieren. Warum haben wir diese Benachrichtigung eingerichtet? Wurden die Kriterien vor langer Zeit überarbeitet? Mit CASE können diese Fragen beantwortet werden.


Kontextlastig - Kontextbindung


3 Uhr morgens ist nicht die beste Zeit, um Nachrichten mit vielen Schlagworten zu lesen. Um effektiv reagieren zu können, benötigen Sie Informationen. Im Idealfall sollten dies Informationen zu einem bestimmten Problem sein, bei dem der Kontext sofort klar ist, und Sie müssen Benachrichtigungen so konfigurieren, dass dies möglich ist. Dies sind "Beobachtung" und "Orientierung" aus dem NORD-Zyklus . Es ist nicht schade, Zeit in dieser Umgebung zu verbringen, da es noch teurer ist, eine Person ständig abzulenken. Respektieren wir uns gegenseitig.



Probleme haben viele Ursachen. Besonders Geister.


Wie kann ich dem Begleiter helfen? Der diensthabende Beamte sieht zuerst die Benachrichtigung und erstellt darauf basierend alle Hypothesen. Dann schaut er sich die Anweisungen und Dashboards an, aber gibt es immer Informationen zu einem bestimmten Hinweis und nicht nur allgemeine Informationen? Alspo rät, „darüber nachzudenken, wie die Benachrichtigung zu interpretieren oder darauf zu reagieren“ (Folie 29) 1 . Eine gute Benachrichtigung konzentriert sich auf die Telefonzentrale und nicht nur auf einen Schwellenwert.


Daher hier einige Ideen zur Verbesserung des Benachrichtigungskontexts:


  • Zeigen Sie dem Benutzer etwas Nützliches und Spezielles und nicht nur gewöhnliche Anweisungen oder ein Dashboard. Zuvor verwendeten die Jungs und ich Dashboards zur Untersuchung, die für bestimmte Benachrichtigungen konfiguriert waren. Dies hilft, wenn das Problem bekannt ist, und verwirrt nur in anderen Fällen. Hier müssen Sie ein Gleichgewicht finden.
  • Erzählen Sie uns von der Benachrichtigungshistorie: Ist sie neu? Funktioniert es oft Ist es saisonal?
  • Letzte Änderungen des Systemstatus anzeigen. Hat sich in letzter Zeit etwas geändert? (Stellen Sie beispielsweise Funktionen bereit oder aktivieren / deaktivieren Sie sie.)
  • Zeigen Sie die Beziehung und geben Sie Informationen für das mentale Modell: Die Abhängigkeiten des Systems sollten deutlich sichtbar sein, vorzugsweise mit einem Hinweis auf die Funktionsfähigkeit.
  • Verknüpfen Sie den Benutzer schnell mit dem Team: Sieht er aktuelle Vorfälle oder kann er herausfinden, wer im Unternehmen die Benachrichtigung erhalten hat? Ist das Incident Management Programm aktiviert?

Im Idealfall bietet ein Incident Management-Programm Tipps zur Verbesserung des Benachrichtigungskontexts bei der Untersuchung von Incidents. Es gibt immer etwas zu arbeiten!


Umsetzbar - praktischer Wert


Sollte der Mitarbeiter als Reaktion auf die Benachrichtigung etwas unternehmen? Wenn nichts getan werden muss oder nicht klar ist, was zu tun ist, warum sind Sie aufgewacht? Es ist notwendig, Benachrichtigungen zu vermeiden, die in Dienst gestellt werden und keine Maßnahmen erfordern.



Was tun? Was brauchst du


Früher, als die Systeme einfach und die Teams klein waren, haben wir die Überwachung eingerichtet, um immer auf dem neuesten Stand zu bleiben. Die Benachrichtigung, dass die Last auf dem Heap zugenommen hat, gibt uns einen Kontext, wenn der Dienst dann fehlerhaft funktioniert. In großem Umfang werden solche Benachrichtigungen nur verwirren, da unsere Systeme immer in einem Zustand der Verschlechterung unterschiedlicher Schwere arbeiten. Dies führt schnell zu Ermüdung durch Benachrichtigungen und natürlich zu einem Empfindlichkeitsverlust. Daher ignoriert oder filtert die Telefonzentrale solche Benachrichtigungen und reagiert nicht immer nach Bedarf darauf. Fallen Sie nicht in diese Falle! Konfigurieren Sie nicht alle Benachrichtigungen hintereinander, damit Sie sie später per E-Mail an einen gottverlassenen Ordner senden können.


So sieht ein Hinweis mit praktischem Wert aus:


  • Eine Benachrichtigung erfordert Maßnahmen und nicht nur die Meldung von Nachrichten.
  • Diese Aktion ist schwierig oder riskant zu automatisieren. Wenn die Aktion automatisiert werden kann, nehmen Sie sie und automatisieren Sie, hören Sie auf, Menschen zu belästigen!
  • Die Mitteilung enthält dringende Empfehlungen in Form eines Service Level Agreements (SLA) oder einer Zielwiederherstellungszeit (RTO). Anschließend kann die Telefonzentrale das Incident Management-Programm in der Organisation verwenden.

Ich möchte klarstellen: Ich sage nicht, dass Benachrichtigungen nur für die wichtigsten SLOs (Service-Level-Ziele, Service-Level-Ziele) für die API erfolgen sollten. Die SLO-Überwachung ist ständig fragmentiert und aufgeteilt und erfordert für alle Dienste den gleichen Ansatz. Es ist klar, dass Sie die wichtigsten SLOs für Kunden, die Sie bezahlen, im Auge behalten. SLO-Infrastrukturen wie Datenbanken müssen jedoch ebenfalls überwacht werden. Bald müssen Sie sich mit internen Kunden befassen und diese unterstützen. Und so weiter bis ins Unendliche.


Symptombasiert - Konzentrieren Sie sich auf die Symptome


Ob es Ihnen gefällt oder nicht, Sie arbeiten in einem verteilten System (Kavaj) 2 . Infolgedessen verwenden Sie verschiedene Taktiken, um Dienste zu isolieren und vor Fehlern zu schützen (Trainor et al.) 3. Und obwohl eine langwierige Speicherbereinigung oder eine sorgfältige Abfrage der Datenbank auf Probleme hinweist, besteht keine Notwendigkeit, diese zu beheben, wenn Benutzer in naher Zukunft keine Probleme haben.


Dies sind wichtige Signale, und sie können von praktischem Wert sein. Wenn sie jedoch die Benutzer nicht stören, ist dies nicht so dringend, dass sie den Begleiter ablenken. Ursachenbasierte Benachrichtigungen sind Momentaufnahmen unserer mentalen Modelle für Systemausfälle. Es ist besser, wichtige Symptome im Auge zu behalten, als alle möglichen Fehlerursachen aufzulisten.


Konzentrieren Sie sich auf Leistungsindikatoren , die für Benutzer wichtig sind, damit Benachrichtigungen von praktischem Wert sind. Evashchuk nennt dies "Überwachung für Benutzer". Denken Sie daran, dass diese Philosophie im gesamten Unternehmen angewendet werden muss. Wenn der Dienst irgendwo tief in der Infrastruktur dringende Probleme hat, wird sich das entsprechende Team darum kümmern. Der Schutz von Systemen vor solchen Fehlern ist ein völlig separates Thema (Trainer et al., Ein Abschnitt über Strategien zur Minimierung kritischer Abhängigkeiten) 3 .


Die Symptome sind nicht so flüchtig


Richard Cook erinnert daran, dass es in komplexen Systemen viele Mängel, Mängel und Probleme gibt 4 . Der Versuch, alle möglichen Ursachen aufzulisten - Sisyphusarbeit. Sie versuchen, die Probleme zu beschreiben, und sie ändern sich ständig. Cindy Sridharan glaubt, dass „Systeme nicht jede Sekunde in einwandfreiem Zustand sein müssen“ und es besser ist, einen humaneren Ansatz zu verwenden ( „Beobachtbarkeit verteilter Systeme“ , 7) 5 .


Vermeiden Sie Vorfallbenachrichtigungen


In der Regel werden Benachrichtigungen aus bestimmten Gründen so konfiguriert, dass Vorfälle korrigiert werden. Und diese begrenzten Benachrichtigungen über die Tatsache, was passiert ist, erzeugen ein falsches Gefühl des Vertrauens, da jedes Mal, wenn das System neue Wege findet, um zu brechen.


Lassen Sie sich nicht von Begründungen täuschen. Besser denken:


  • Warum hat die symptombasierte Benachrichtigung das Problem nicht bemerkt?
  • Wäre es nützlich, den Kontext für den Benutzer zu verbessern?
  • Wie können Überwachungstools verbessert werden, um schneller zu diagnostizieren und keine Benachrichtigungen darüber zu sammeln, was passiert ist?

Überwachungstools für die Diagnose helfen nur, wenn Sie sie als einen Weg betrachten, um von einem Symptom zu einer Lösung zu gelangen. Ohne dieses Feedback werden Sie einfach mit verspäteten Benachrichtigungen und Diagrammen über vergangene Fehler überfordert sein - und nicht mit einem Wort über zukünftige. Für eine Organisation ist dies eine großartige Gelegenheit, von der Verteidigung zum Angriff überzugehen. Entwickler und Produktmanager haben dieselben Erwartungen und klaren Ziele. Fall - FALL (: Augenzwinkern :) - für jede Benachrichtigung ist klar.


Moderate toleranzbasierte Benachrichtigungen


Manchmal lässt uns unser System in Bezug auf Benachrichtigungen aufgrund des Grundes fast keine Wahl. Und manchmal sind sich die Begleiter bewusst, dass ein Symptom notwendigerweise zu einer Fehlfunktion führt, was bedeutet, dass es praktischen Wert enthält. Vielleicht sind Sie sich einfach nicht sicher, was los ist, und richten Benachrichtigungen für die Rückversicherung ein. Hoffen wir, dass diese Aktion vorübergehend erforderlich ist, bis wir das System ändern, um das Problem der Leistungsverschlechterung zu lösen.
Beachten Sie andere CASE-Komponenten, wenn Sie mit solchen Situationen umgehen. Wenn dies nur vorübergehend ist, bedeutet dies nicht, dass Sie nicht mit Ihrem Kopf denken können.


Bewertet - Bewertung


Änderungen im System (neuer Code, neue Infrastruktur, alles Neue) erweitern den Fehlerbereich (Cook, 3). 4 Funktioniert diese Benachrichtigung weiterhin wie erwartet? Klare und relevante Modelle des mentalen Systems und die Erfahrung, auf einige Benachrichtigungen zur Unterstützung eines präventiven Ansatzes zu reagieren, sind Schlüsselmerkmale einer lernorientierten Organisation . Systemfehler entwickeln sich ständig weiter, und wir müssen mit ihnen Schritt halten.


Sie müssen die Qualität jeder Benachrichtigung ständig bewerten, damit sie wie erwartet funktioniert. Liebe Führer! Es wird für Ihre Teams viel einfacher, wenn Sie ihnen bei der Einrichtung dieses Prozesses helfen! Hier einige Ideen zur Bewertung:


  • Verwenden Sie Chaos Engineering , Spieltage oder andere Benachrichtigungstestmethoden. Das Team kann dies alleine tun, ohne ein schweres Incident-Management-System zu verwenden!
  • Nehmen Sie die Datenerfassung für alle Vorfallbenachrichtigungen in das Vorfallverwaltungsprogramm auf. Als nützlich, schädlich, unangemessen, unverständlich usw. markieren. Verwenden Sie sie als Feedback.
  • Richtige Benachrichtigungen werden selten und sorgfältig geprüft. Stellen Sie sicher, dass alle Links funktionieren, zeigen Sie auf den richtigen Kontext und so weiter.
  • Wenn die Benachrichtigung nie oder zu oft ausgelöst wird, stimmt etwas nicht. Reparieren oder entfernen. Vorsicht vor übermäßiger Passivität oder Aktivität!
  • Legen Sie Ablaufzeitstempel für Benachrichtigungen fest. Wenn das Ablaufdatum abgelaufen ist, bewerten Sie den Hinweis mithilfe der CASE-Methode und aktualisieren Sie den Zeitstempel. Überprüfen Sie regelmäßig das Verfallsdatum, wie bei Lebensmitteln.
  • Vereinfachen Sie den Prozess der Verbesserung von Benachrichtigungen. Verwenden Sie die Überwachung in Form von Code und speichern Sie Benachrichtigungen im Git-Repository. Poolanfragen helfen dabei, ein Team zu gewinnen, und Sie haben eine Historie vergangener Benachrichtigungen. Und Sie werden keine Angst mehr haben, Benachrichtigungen zu ändern oder die Verantwortlichen um Erlaubnis zu bitten.
  • Richten Sie Feedback-Benachrichtigungen ein, auch wenn es sich nur um ein Google-Formular handelt , damit diensthabende Personen Benachrichtigungen als nutzlos oder aufdringlich markieren. Betten Sie einen Link oder einen Aufruf zum Handeln in die Benachrichtigung selbst ein und überprüfen Sie regelmäßig das Feedback.
  • Legen Sie eine Regel im Team fest - lassen Sie die Mitarbeiter arbeiten, um die Aufgabe zu vereinfachen, wenn wenig Arbeit vorhanden ist. Lass alles nach dir ein bisschen besser werden als vorher.

Fazit


Ich glaube, die CASE-Methode hilft Entwicklern und Organisationen beim Einrichten und Senden automatischer Benachrichtigungen. Ein Entwickler kann mit der Auswertung von Benachrichtigungen mithilfe der CASE-Methode beginnen. Anschließend wird die gesamte Organisation mit anderen Entwicklern, Management- und Incident-Management-Programmen zusammenarbeiten, um Benachrichtigungen in gutem Zustand zu halten. Hierfür sind keine Spezialwerkzeuge oder komplexen Prozesse erforderlich.


Die gesamte Branche sollte im Dienst über den menschlichen Faktor nachdenken, ohne den erstklassigen Kundenservice zu beeinträchtigen. Alle diese Tools und Praktiken können und sollten verbessert werden. Ich hoffe, die CASE-Methode hilft dabei.


Genießen Sie erweiterte Benachrichtigungen!


Source: https://habr.com/ru/post/de448454/


All Articles