Schlussfolgerung - Verfügbarkeit und mehr: Verständnis und Verbesserung der Widerstandsfähigkeit verteilter Systeme auf AWS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schlussfolgerung

In diesem Dokument haben wir 12 Regeln für hohe Verfügbarkeit festgelegt.

  • Regel 1 — Weniger häufige Ausfälle (längere MTBF), kürzere Ausfallerkennungszeiten (kürzere MTTD) und kürzere Reparaturzeiten (kürzere MTTR) sind die drei Faktoren, die zur Verbesserung der Verfügbarkeit in verteilten Systemen genutzt werden.

  • Regel 2 — Die Verfügbarkeit der Software in Ihrem Workload ist ein wichtiger Faktor für die Gesamtverfügbarkeit Ihres Workloads und sollte genauso berücksichtigt werden wie andere Komponenten.

  • Regel 3 — Die Reduzierung von Abhängigkeiten kann sich positiv auf die Verfügbarkeit auswirken.

  • Regel 4 — Wählen Sie im Allgemeinen Abhängigkeiten aus, deren Verfügbarkeitsziele den Zielen Ihres Workloads entsprechen oder diese übertreffen.

  • Regel 5 — Verwenden Sie Sparing, um die Verfügbarkeit von Abhängigkeiten in einem Workload zu erhöhen.

  • Regel 6 — Es gibt eine Obergrenze für die Kosteneffizienz des Sparens. Verwenden Sie die wenigsten Ersatzteile, die erforderlich sind, um die erforderliche Verfügbarkeit zu erreichen.

  • Regel 7 — Machen Sie keine Abhängigkeiten von den Steuerungsebenen in Ihrer Datenebene, insbesondere bei der Wiederherstellung.

  • Regel 8 — Verknüpfen Sie Abhängigkeiten lose, damit Ihr Workload nach Möglichkeit trotz Beeinträchtigung der Abhängigkeiten ordnungsgemäß ausgeführt werden kann.

  • Regel 9 — Beobachtbarkeit und Instrumentierung sind entscheidend für die Reduzierung von MTTD und MTTR.

  • Regel 10 — Konzentrieren Sie sich auf die Minderung der Auswirkungen, nicht auf die Problemlösung. Nehmen Sie den schnellsten Weg zurück zum Normalbetrieb.

  • Regel 11 — Die Fehlerisolierung verringert den Umfang der Auswirkungen und erhöht die MTBF des Workloads, indem die Gesamtausfallrate reduziert wird.

  • Regel 12 — Machen Sie es den Bedienern leicht, das Richtige zu tun.

Die Verbesserung der Workload-Verfügbarkeit wird durch die Reduzierung von MTTD und MTTR sowie die Erhöhung des MTBF erreicht. Zusammenfassend haben wir die folgenden Möglichkeiten zur Verbesserung der Verfügbarkeit erörtert, die sich auf Technologie, Mitarbeiter und Prozesse beziehen.

  • MTTD

    • Reduzieren Sie die MTTD durch eine proaktive Überwachung Ihrer Kundenerlebniskennzahlen.

    • Nutzen Sie detaillierte Zustandsprüfungen für ein schnelles Failover.

  • MTTR

    • Überwachen Sie den Umfang der Auswirkungen und die Kennzahlen zur betrieblichen Gesundheit.

    • Reduzieren Sie die MTTR, indem Sie 1/Restart, 2/Reboot, 3/Re-Image/Redeploy und 4/Replace befolgen.

    • Umgehen Sie Fehler, indem Sie den Umfang der Auswirkungen verstehen.

    • Nutzen Sie Dienste mit schnelleren Neustartzeiten wie Container und serverlose Funktionen über virtuelle Maschinen oder physische Hosts.

    • Automatisches Rollback fehlgeschlagener Bereitstellungen, sofern möglich.

    • Richten Sie Runbooks und Betriebstools für Diagnosevorgänge und Neustartverfahren ein.

  • MTBF

    • Beseitigen Sie Bugs und Defekte in der Software durch strenge Tests, bevor sie für die Produktion freigegeben werden.

    • Implementieren Sie Chaos-Engineering und Fault Injection.

    • Verwenden Sie die richtige Menge an Abhängigkeiten, um Fehler zu tolerieren.

    • Minimieren Sie den Umfang der Auswirkungen bei Ausfällen mithilfe von Fehlercontainern.

    • Implementieren Sie Standards für Bereitstellungen und Änderungen.

    • Entwerfen Sie einfache, intuitive, konsistente und gut dokumentierte Bedienoberflächen.

    • Setzen Sie sich Ziele für betriebliche Exzellenz.

    • Bevorzugen Sie Stabilität gegenüber der Veröffentlichung neuer Funktionen, wenn Verfügbarkeit eine kritische Dimension Ihres Workloads ist.

    • Implementieren Sie Nutzungskontingente mit Drosselung oder Lastabwurf oder beidem, um eine Überlastung zu vermeiden.

Denken Sie daran, dass es uns niemals vollständig gelingen wird, Misserfolge zu verhindern. Konzentrieren Sie sich auf Softwaredesigns mit der bestmöglichen Ausfallisolierung, die Umfang und Ausmaß der Auswirkungen begrenzt, und halten Sie diese Auswirkungen idealerweise unter den Schwellenwerten für „Ausfallzeiten“ UND investieren Sie in eine sehr schnelle, sehr zuverlässige Erkennung und Abwehr. Moderne verteilte Systeme müssen Ausfälle immer noch als unvermeidlich ansehen und auf allen Ebenen auf hohe Verfügbarkeit ausgelegt werden.