Ändern des Rahmens
Von allen Einheiten in diesem Modul gehört diese sicherlich zu den wichtigsten. In dieser Lerneinheit werden wir uns mit einigen Ideen beschäftigen, die unser Verständnis darüber verändern könnten, was für die Überwachung wichtig ist und warum. Für einige Personen kann sich dadurch die Denkweise hinsichtlich der Überwachung zur Optimierung der Zuverlässigkeit radikal ändern.
Neubetrachtung Nr. 1: Zuverlässigkeit aus Sicht des Kunden
Wir haben bereits die Aspekte der Zuverlässigkeit besprochen, die wir möglicherweise überwachen möchten. Dabei schien sich jedoch die Anzahl zu überwachender Aspekte nur immer weiter zu erhöhen. Im Folgenden finden Sie ein Konzept, das Ihnen dabei helfen kann, die zur Optimierung der Zuverlässigkeit zu überwachenden Aspekte einzugrenzen:
Die Zuverlässigkeit muss aus der Sicht des Kunden und nicht aus der Sicht der Komponente gemessen werden.
Das ist wirklich wichtig. Sie sollten diese Aussage erneut lesen, da sie absolut entscheidend ist. In der Vergangenheit herrschte die Meinung vor, man solle „alles überwachen!“. Wenn wir einen Zähler auslesen, eine Statistik grafisch darstellen oder etwas auf einem Dashboard ablegen konnten, dachten wir, dass wir es überwachen sollten. „Aus der Perspektive des Kunden messen“ ist eine viel speziellere Maxime.
Sehen wir uns ein kurzes Szenario an, in dem sowohl das Wesentliche veranschaulicht als auch eine Lösung präsentiert wird.
Szenario
Sie sind für den Betrieb der E-Commerce-Website Ihres Unternehmens verantwortlich. Sie verfügen über eine Webfarm mit 100 Serverinstanzen. Plötzlich funktionieren 14 dieser 100 Instanzen aufgrund eines Betriebssystemfehlers, eines Softwareupdates, einer Stromschwankung oder eines anderen unerwarteten Ereignisses nicht mehr. Diese 14 Instanzen sind nun vollständig außer Betrieb.
Zu beurteilen ist Folgendes: 86 Serverinstanzen sind funktionstüchtig, 14 Serverinstanzen dagegen nicht.
Welche der folgenden Punkte treffen in dieser Situation zu?
A: Das ist keine große Sache. Sie können das Problem irgendwann beheben, wenn Sie Zeit dafür haben.
B: Es ist ein schwerwiegendes Problem. Sie sollten sich umgehend darum kümmern, dass die 14 Serverinstanzen so schnell wie möglich wieder funktionstüchtig sind.
C: Es ist eine existenzielle Krise für das Unternehmen. Sie sollten Führungskräfte auf der C-Ebene benachrichtigen und alle Mitarbeiter aufbieten, um die Situation so schnell wie möglich zu beheben, auch wenn Sie diese mitten in der Nacht aus dem Bett holen müssen.
Nehmen Sie sich einen Moment Zeit, um dieses Szenario vor Ihrer Antwort sorgfältig zu durchdenken. Lesen Sie dann weiter. Denken Sie, dass A, B oder C die richtige Antwort ist?
Die richtige Antwort ist weder A noch B oder C. Stattdessen lautet sie: „Es kommt darauf an.“ Oder vielmehr: „Es hängt davon ab, wie Ihre Kunden diesen Ausfall erleben.“
Wenn Sie die Site so entwickelt haben, dass die Kunden nicht einmal bemerken, dass die Backends ausgefallen sind, und die anderen 86 Serverinstanzen die Last ohne Probleme verarbeiten, liegt hier keine Krise vor. Dabei kann es sich um einen Incident vom Typ SEV-3 oder SEV-4 handeln, möglicherweise sogar nur um einen Support-Ticket-Fall.
Wenn der Ausfall Ihr gesamtes Unternehmen lahm legt und Sie mit jeder Minute, in der die Server nicht laufen, beträchtliche Geldbeträge verlieren, ist dies wahrscheinlich ein guter Grund, auf den großen roten Knopf zu drücken und alle Mitarbeiter aufzubieten. Es könnte auch einen Mittelweg geben, bei dem die Antwort „B“ lautet.
Noch einmal, die Zuverlässigkeit muss aus Sicht des Kunden und nicht aus Sicht der Komponente gemessen werden. Daher war die Anzahl Komponenten „14 von 100 Computern ausgefallen“ in diesem Szenario in Bezug auf die Zuverlässigkeit nicht die wichtigste Information, obwohl sie exakt und richtig war.
Dieser Gedanke gilt auch dann, wenn wir über eine eher traditionelle komponentenbasierte Überwachung sprechen. Wenn Sie feststellen, dass der Datenbankserver mit einer CPU-Auslastung von 50 % ausgeführt wird, ist das gut oder schlecht? Wenn der Wert auf 90 % steigt, ist die Situation besser oder schlechter? Wenn der Dienst einwandfrei ausgeführt wird und die Benutzer zufrieden sind, kann 90 % ein guter Wert sein, da dies bedeutet, dass Sie die Ressourcenverwendung erheblich verbessert haben. Wenn die Benutzer sich jedoch bereits bei einer CPU-Auslastung von 50 % darüber beklagen, wie langsam Ihre Anwendung läuft, ist 90 % wahrscheinlich keine Verbesserung.
Neubetrachtung Nr. 2: Angemessener Grad an Zuverlässigkeit
Um dieses Konzept korrekt umzusetzen, sollten wir uns dessen Ursprung genauer ansehen. Die Idee stammt aus dem Site Reliability Engineering (SRE). Wir können mehrere nützliche Ideen (auch diejenige für diesen Abschnitt) gewinnen, indem wir die Definition von SRE genauer untersuchen:
Hinweis
Beim Site Reliability Engineering handelt es sich um einen Aufgabenbereich der Entwicklung, der Organisationen dabei unterstützen soll, nachhaltig einen angemessenen Grad an Zuverlässigkeit ihrer Systeme, Dienste und Produkte zu erzielen.
In dieser Definition stecken drei wichtige Wörter:
Zuverlässigkeit: In der Einführungslerneinheit wurde sehr viel über die Bedeutung von Zuverlässigkeit gesagt, weshalb dieser Punkt an dieser Stelle nicht weiter erläutert wird.
Nachhaltig: In diesem Kontext bezieht sich „nachhaltig“ auf die Rolle der Menschen in diesem gesamten Komplex. Es ist wichtig, dass Betriebspraktiken nachhaltig gestaltet werden. Zuverlässige Systeme, Dienste und Produkte werden von Menschen erstellt und gebildet. Wenn wir nicht dafür sorgen, dass unsere Arbeit nachhaltig ist – wenn wir unsere Mitarbeiter täglich um 3 Uhr nachts aus dem Bett holen, wenn wir ihnen keine Zeit für Ihre Familie lassen oder wenn sie keine Gelegenheit für ihre eigene Regeneration haben –, dann werden sie auch keine zuverlässigen Systeme bauen können. SRE ist der Ansicht, dass es wichtig ist, eine Betriebspraxis zu implementieren, die auf lange Sicht nachhaltig ist, sodass unsere Mitarbeiter ihre Arbeit unter besten Voraussetzungen erledigen können.
Angemessen: Dieses Wort kann für einige Menschen entscheidend sein. Einst galt hinsichtlich des Betriebs das Ziel, sicherzustellen, dass alle Systeme rund um die Uhr aktiv sind. Sie haben versucht, alle Systeme ganztags, die ganze Woche, den ganzen Monat und das ganze Jahr über zu betreiben. Ausfälle waren zu keiner Zeit akzeptabel. Einer der Punkte, die durch das Site Reliability Engineering in die Betriebsdiskussion eingeflossen sind, war die Idee, dass wir stattdessen einen angemessenen Grad an Zuverlässigkeit anstreben sollten.
Betrachten wir diese Idee genauer. Ein wichtiger Punkt hierbei ist, dass 100 % fast nie das richtige Ziel darstellt. Abgesehen von bestimmten Ausnahmen wie medizinische Geräte oder Luftfahrt müssen Dinge nicht wirklich zu 100% zuverlässig sein. Tatsächlich ist 100% Zuverlässigkeit oft nicht möglich.
Hier finden Sie ein Beispiel für „gar nicht möglich“: Heutzutage arbeiten wir alle mit Systemen, die von anderen Systemen abhängig sind. Möglicherweise verwenden Sie eine Software, die einen Zahlungsprozessor oder ein Authentifizierungssystem aufrufen muss. Wenn der Zahlungsprozessor oder das Authentifizierungssystem nicht zu 100 Prozent zuverlässig ist, kann es für Ihr System sehr schwer sein, eine Zuverlässigkeit von 100 Prozent zu erreichen.
Die andere knifflige Sache mit einem Ziel von 100 % Zuverlässigkeit ist, dass es Null Downtime bedeutet. Denn es bedeutet auch, dass Sie keinerlei Änderungen vornehmen können, die möglicherweise zu Ausfallzeiten führen. Sie haben keinen Toleranzbereich, obwohl sie ihn sich wahrscheinlich wünschen und auch benötigen.
Es ist sinnvoll, die Dinge aus der Perspektive „Welches Zuverlässigkeitsniveau ist angemessen?“ zu betrachten, um ein bestimmtes System zu betreiben. Um wieder auf das eigentliche Thema zurückzukommen: Unsere Überwachung muss dieses Ziel unterstützen.
Behalten wir diese beiden Rahmenkonzepte im Kopf und kommen wir zur Praxis, wobei wir einige Tools betrachten, die uns dabei helfen können, unsere Ziele zu erreichen.