Blog

Druckentlastungsventile

von John Laban 27. Januar 2012 | 5 Minuten Lesezeit

Dies ist das vierte in eine Reihe von Beiträgen zur Steigerung der allgemeinen Verfügbarkeit Ihres Dienstes oder Systems.

Hast du jemals bekommen Seite und erkannte sofort, dass dieses Problem nicht wie das andere ist. Die letzten 15 operativen Probleme, mit denen Sie sich diese Woche befasst haben Dass dieses Problem etwas Besonderes ist und wirklich, wirklich schlimm? Wissen Sie, so ein Problem, über das man sich schon seit Wochen tief im Unterbewusstsein Sorgen macht und von dem man gehofft hat, dass es niemals eintreten würde?

Was tun Sie in so einer Situation? Oft bleibt Ihnen in solchen stressigen Lagen nur ein kurzes Zeitfenster (sagen wir, Minuten), bevor sich ein Problem von „ziemlich übel, aber unsere Kunden werden uns verzeihen und manche werden es vielleicht gar nicht bemerken“ zu einer Katastrophe entwickelt. Wenn Sie ein Pfadfinder (Junge oder Mädchen) Sie müssten lediglich das zuvor vorbereitete Druckentlastungsventil öffnen und so verhindern, dass das Problem außer Kontrolle gerät.

Druckentlastungsventile bauen

Haben Sie sich beim Aufbau oder der Wartung Ihrer Systeme oder Dienste jemals gedacht: „Wenn Situation X eintreten würde – so unwahrscheinlich sie auch sein mag –, wären wir in echten Schwierigkeiten“? Situation X könnte jedes hypothetische Katastrophenszenario für Ihr System sein: Master- und Slave-Datenspeicher fallen gleichzeitig aus; alle Ihre Kunden überlasten Ihr System gleichzeitig mit ihrem theoretischen Spitzenverkehr; Ihr Cloud-Anbieter hat einen Ausfall mehrerer Verfügbarkeitszonen; Ihr Multicast-basiertes Messaging-System leidet unter einer Rückkopplungsschleife usw.

Das Problem ist, dass, wenn man lange genug mit einem bestimmten System arbeitet, die Wahrscheinlichkeit, dass „Situation X“ tatsächlich eintritt, höher ist, als einem lieb ist.

Was also tun? Natürlich könnte man versuchen, ein System zu entwickeln, das diese katastrophalen Ausfälle gänzlich verhindert. Doch der Aufbau eines solchen Systems kann extrem zeit- und kostenintensiv sein und leicht zu überdimensionierten Systemen führen, wenn man es übertreibt. Viel Entwicklungszeit in die Behebung von Fehlerszenarien zu investieren, die im Laufe des Lebens vielleicht nur eine Wahrscheinlichkeit von 5 % haben, ist nicht die beste Verwendung der Ressourcen. [1] Die

Stattdessen erstellen Druckentlastungsventile Man kann sich diese als eine Art Hebel oder Knopf vorstellen, den man während Störungen verstellen kann, um die Schwere des Problems während der Behebung zu verringern. Sie können oft die Form eines/einer/eines... konfigurationsbasiert Boolesche Werte oder Konstanten, die im Notfall leicht geändert werden können, aber auch in anderen Formen auftreten können.

Mithilfe dieser Druckentlastungswerte können Sie wichtige Funktionen einfach ein- oder ausschalten oder wichtige Werte Ihrer Anwendung anpassen. Im Folgenden finden Sie einige Beispiele.

Brainstorm

Um diese Druckentlastungsventile zu entwickeln, sollten Sie sich mit Ihrem Team zusammensetzen und gemeinsam überlegen, wie Ihr System oder Ihre Anlage (vielleicht sogar etwas ausgefallen) katastrophal versagen kann.

Für jeden dieser Fehlermodi muss eine Möglichkeit gefunden werden, das System vorübergehend zu reparieren, umzuleiten, kurzzuschließen oder anderweitig zu manipulieren, um das Problem vorübergehend zu reduzieren. Ziel ist es, das System wieder funktionsfähig zu machen; dafür müssen wahrscheinlich Funktionen geopfert werden. Normalerweise sollten die ein bis zwei Personen, die mit dem jeweiligen System am besten vertraut sind, diese Notlösungen entwickeln. Da diese Personen im Notfall nicht immer verfügbar sind, ist es ratsam, diese Ideen im Vorfeld zu erarbeiten.

Nachdem Sie eine Liste aller katastrophalen Ausfallmodi und der entsprechenden Behelfslösungen erstellt haben, die erforderlich wären, um das System wieder in einen (halbwegs) funktionsfähigen Zustand zu versetzen, können Sie auch damit beginnen, gemeinsame Muster in den Behelfslösungen zu erkennen:

  • Würde eine Drosselung der eingehenden Anfragen in vielen dieser Fehlersituationen helfen?
  • Würde die Deaktivierung des rechenintensiven Widgets X oder Y auf Ihrer Website die Last verringern?
  • Würde die Möglichkeit, alle eingehenden Anfragen von Rechenzentrum A nach Rechenzentrum B umzuleiten, einen Teilausfall in lediglich einige Latenzprobleme verwandeln?
  • Würde eine Lockerung der Konsistenzanforderungen zu einigen fehlerhaften Daten führen, aber Stellen Sie Ihr System zur Verfügung wieder?
  • Welche anderen Funktionen Ihres Datenspeichers können Sie bei Bedarf opfern, um ihn teilweise wieder funktionsfähig zu machen? Datenbeständigkeit? Historische Daten? Die Möglichkeit zum Schreiben (mittels eines schreibgeschützten Slaves)?
  • Würde das Deaktivieren einiger Ihrer nicht kritischen Hintergrundprozesse Kapazitäten für Ihre wichtigeren Prozesse freisetzen?
  • Würde die rituelle Opferung eines Praktikanten die Betriebsgötter besänftigen? [2]

Ein eingeschränkter Betrieb ist deutlich besser als ein vollständiger Ausfall und entlastet zudem das Bereitschaftspersonal. beginnen Sie mit ihrer methodischen Standardarbeitsanweisung um die eigentliche Ursache des Problems zu beheben.

Wie ich bereits sagte, Sie könnte Man könnte zwar versuchen, ein System übermäßig zu dimensionieren, um diese seltenen, außergewöhnlichen Katastrophen im Vorfeld zu verhindern, aber oft lohnt sich der Aufwand einfach nicht. Außerdem gäbe es wahrscheinlich selbst dann noch weitere Möglichkeiten. Trotzdem Es könnten noch weitere, noch unwahrscheinlichere, aber dennoch mögliche Fehlermodi auftreten, die von diesen Brainstorming-Diskussionen profitieren könnten. Verschwenden Sie also nicht unbedingt viel Zeit damit, Wege zu entwickeln, um diese schwer fassbaren Probleme zu vermeiden. Aber ignorieren Sie diese Möglichkeit auch nicht. Reden wir über sie!

Falls jemand weitere Beispiele für Druckentlastungsventile kennt, die er in seinem eigenen Betriebswerkzeugkasten aufbewahrt, würde ich mich sehr freuen, in den Kommentaren davon zu erfahren.

[1] Ignoriere diesen Rat, wenn du so etwas wie einen Atomreaktor baust. Bring das Ding zum Laufen.
[2] Nur Spaß. Die Betriebsgötter stehen für nichts anderes auf als für einen frisch eingestellten Hochschulabsolventen in Vollzeit.