20 Punkte von xguru 2023-11-10 | Noch keine Kommentare. | Auf WhatsApp teilen

20 Jahre Lehren aus dem Site Reliability Engineering (SRE)

Lehren zur Reliability Engineering von YouTube

  • Auswahl von Maßnahmen zur Risikominderung

    • Bei schwerwiegenden Fehlern sollten Maßnahmen zur Risikominderung gewählt werden, die im Verhältnis zur Schwere des Fehlers stehen.
    • Überzogene Risikominderungsmaßnahmen können Nebenwirkungen verursachen und sollten nur eingesetzt werden, wenn es einen triftigen Grund gibt, Standardverfahren zu umgehen.
  • Testen von Wiederherstellungsmechanismen für Notfälle

    • Wiederherstellungsmechanismen und Minderungsmaßnahmen sollten im Voraus ausreichend geübt und getestet werden, damit auch in kritischen Situationen wirksam reagiert werden kann.
    • Durch Tests lassen sich künftige Risiken senken und die Reaktionsfähigkeit verbessern.
  • Schrittweise Einführung von Änderungen (Canary-Tests anwenden)

    • Änderungen sollten vor einem vollständigen Rollout schrittweise eingeführt werden, damit Probleme nicht das gesamte System beeinträchtigen.
    • Am Beispiel einer Änderung der Caching-Konfiguration bei YouTube wurde erkannt, dass selbst kleine Änderungen eine systematische Einführung erfordern.

Lehren von Google Calendar

  • Wichtigkeit einer Notabschaltungsfunktion

    • Für Änderungen mit potenziellem Risiko ist eine Funktion wie ein „großer roter Knopf“ nötig, mit der schnell reagiert werden kann.
    • Im Hinblick auf Service-Abhängigkeiten sollte eine Notabschaltungsfunktion vorbereitet werden.
  • Notwendigkeit von Integrationstests

    • Unit-Tests sind in einem begrenzten Rahmen nützlich, aber mit Integrationstests muss in Verbindung mit der realen Umgebung geprüft werden, ob das System geeignet ist.
    • Aus einem Fehlerfall bei Google Calendar wurde die Bedeutung von Tests erkannt, die dem tatsächlichen Nutzungspfad folgen.

Lehren von Google im Jahr 2017

  • Wichtigkeit von Kommunikationskanälen für Notfälle

    • Kommunikationskanäle und Backup-Kanäle müssen vorbereitet werden.
    • Bei Service-Ausfällen sollten mehrere voneinander unabhängige Kommunikationsmittel bereitstehen, und ihre Wirksamkeit sollte getestet werden.
  • Minimale Funktionalität bei Leistungseinbußen aufrechterhalten

    • Systeme sollten so entworfen werden, dass grundlegende Funktionen auch bei degradierter Leistung verfügbar bleiben, damit der Service nicht vollständig ausfällt.

Tests zur Katastrophenresilienz

  • Tests von Katastrophenresilienz und Wiederherstellungsfähigkeit
    • Die Resilienz von Services oder Systemen sollte getestet werden, damit ihre Fortführbarkeit auch in Katastrophensituationen sichergestellt ist.
    • Durch Wiederherstellungstests sollte geprüft werden, ob das System nach einem Ausfall wieder in den Normalzustand zurückkehren kann.

Bedeutung automatisierter Minderungsmaßnahmen

  • Automatisierung von Minderungsmaßnahmen
    • Bei mehrfachen Netzwerkausfällen sollte die Zeit zur Problemlösung durch automatisierte Minderungsmaßnahmen verkürzt werden, statt alles manuell zu bearbeiten.

Verkürzung der Zeit zwischen Deployments

  • Häufige Rollouts durchführen

    • Lange Zeitabstände zwischen Rollouts sind ein Maßstab zur Beurteilung der Systemsicherheit.
  • Eine einzige globale Hardware-Version ist ein Single Point of Failure

    • Sich nur auf ein bestimmtes Modell zu verlassen, kann den Betrieb vereinfachen, aber wenn dieses Modell Probleme hat, können wichtige Funktionen ausfallen.
    • Das Vorhandensein verschiedener Netzwerk-Backbones hilft, einen vollständigen Ausfall zu verhindern, und ermöglicht es, hochpriorisierten Traffic auf weiterhin funktionierende Alternativen umzuleiten.

Noch keine Kommentare.

Noch keine Kommentare.