Ernst mit der Wolke? Folgen Sie dem Beispiel von Netflix und steigen Sie in die Chaos-Technik ein

Der Ausdruck "gebaut, um zu scheitern" schafft kein Vertrauen und deutet auf ein Produkt hin, das nicht implodiert.

Unternehmen, die verteilte Systeme über der Cloud-Infrastruktur hosten, sollten sich jedoch auf das Schlimmste vorbereiten.

Dies ist das Argument des Online-Videogiganten Netflix, der sich auf Amazon Web Services verlässt, um Filme und Fernsehsendungen in mehr als 50 Millionen Haushalte weltweit zu streamen.

Bild: Neflix

Um sich gegen katastrophale Ausfälle abzusichern, setzt Netflix seine Simian Army-Software ein, die absichtlich versucht, seine Systeme zu zerstören. Simian Army greift die Netflix-Infrastruktur an vielen Fronten an - Chaos Monkey deaktiviert Produktionsinstanzen nach dem Zufallsprinzip, Latency Monkey führt zu Verzögerungen bei der Client-Server-Kommunikation, und der große Junge Chaos Gorilla simuliert den Ausfall einer gesamten Amazon-Verfügbarkeitszone.

Netflix verwendet diese virtuellen Vandalen, um zu testen, ob seine automatisierten Systeme reale Ausfälle bewältigen können, ohne die Kunden zu beeinträchtigen. Die Firma vergleicht es damit, einmal pro Woche ein Loch in Ihre Autoreifen zu stechen, um zu sehen, ob Sie sie ersetzen können.

Aber warum erfordert die Nutzung der Cloud-Infrastruktur einen solchen Ansatz? Laut Netflix liegt es an der mangelnden Kontrolle über die zugrunde liegende Hardware und an der Unfähigkeit, sie so zu konfigurieren, dass eine 100-prozentige Verfügbarkeit gewährleistet ist.

Netflix hatte mehrere Möglichkeiten zu sehen, wie robust dieser absichtliche Bruch seine Systeme verlassen hat - vom Ausfall des AWS Elastic Load Balancer im Jahr 2012 bis zum kürzlich neu gestarteten Computer von AWS, auf dem eine von 10 EC2-Instanzen ausgeführt wird.

Dieser Neustart gab Netflix die Möglichkeit herauszufinden, ob seine Datenbanken auf dieselbe fehlertolerante Weise wie seine anderen Systeme arbeiten können.

"Datenbanken sind seit langem die verwöhnten und verwöhnten Prinzen der Anwendungswelt", sagte Christos Kalantzis, technischer Manager für Cloud-Datenbank-Engineering bei Netflix und Bruce Wong, technischer Manager für Chaos-Engineering, in einem Blogbeitrag.

"Sie erhielten die beste Hardware, reichlich persönliche Aufmerksamkeit und niemand würde jemals davon träumen, absichtlich mit ihnen herumzuspielen. In der Welt der demokratisierten öffentlichen Clouds ist dies nicht mehr möglich. Knotenausfälle sind nicht nur wahrscheinlich, sie werden auch erwartet. Dies erfordert eine Datenbanktechnologie, die Ausfällen standhält und weiterhin funktioniert. "

Netflix verwendet Apache Cassandra, eine verteilte Open-Source-NoSQL-Datenbank. Verteilte Systeme bieten einen Kompromiss zwischen der Konsistenz der auf jedem Knoten im System gespeicherten Daten, der Verfügbarkeit des Systems und der Partitionstoleranz - die Fähigkeit eines Systems, den Betrieb fortzusetzen, nachdem eine Teilmenge nicht mehr verfügbar ist.

"Durch den Handel mit C (Konsistenz) haben wir uns bewusst dafür entschieden, unsere Anwendungen so zu gestalten, dass sie letztendlich konsistent sind", so Kalantzis und Wong.

"Wir gehen davon aus, dass Cassandra dem Schnäppchen gerecht wird und eine hohe Verfügbarkeit und Partitionstoleranz bietet."

Wie hat sich Cassandra beim Neustart von EC2 geschlagen? Laut Kalantzis und Wong wurden von mehr als 2.700 Produktions-Cassandra-Knoten 218 neu gestartet. Von diesen Knoten befanden sich 22 auf Hardware, die nicht erfolgreich neu gestartet wurde.

Wie Netflix mit Cassandra-Knotenfehlern umgeht. Bild: Netflix

Die Automatisierungssoftware von Netflix erkannte die ausgefallenen Knoten und ersetzte sie "mit minimalem menschlichem Eingriff". Insgesamt habe Netflix am Wochenende der Neustarts keine Ausfallzeiten erlebt.

Laut Kalantzis und Wong mussten Neflix-Ingenieure diese Ausfallsicherheit in die Datenbankebene einbauen, um das System zu testen. Die Firma musste die Funktionsweise ihrer Cassandra-Cluster offenlegen, eine zuverlässige Überwachung erstellen, um diese Funktionen auf Fehler zu verfolgen und zu konstruieren Software zum automatischen Erstellen und Einrichten von Ersatzknoten.

"Wiederholtes und regelmäßiges Ausüben von Fehlern, selbst in der Persistenzschicht, sollte Teil der Resilienzplanung jedes Unternehmens sein. Ohne Cassandras Teilnahme an Chaos Monkey wäre diese Geschichte ganz anders zu Ende gegangen."

AWS hat kürzlich Unternehmen empfohlen, die ihre Infrastruktur nutzen, um ihre Widerstandsfähigkeit zu testen, indem sie Chaos Monkey verwenden, um Fehler auszulösen. Hier sind einige der Tipps von Netflix für das sogenannte Chaos Engineering.

Richten Sie tugendhafte Chaoszyklen ein

Nach einer Unterbrechung der Infrastruktur führt Netflix "tadellose Obduktionen" durch, um festzustellen, wie eine Wiederholung verhindert werden kann.

Neben der Entwicklung von Resilienz-Patches und der Verhinderung von Wiederholungen werden neue Chaos-Tools entwickelt, mit denen die Resilienz regelmäßig und systematisch getestet und Regressionen oder neue Bedingungen erkannt werden können.

Verwenden Sie Zuverlässigkeitsentwurfsmuster

Verwenden Sie Entwurfsmuster, die die Zuverlässigkeit in einer verteilten Umgebung verbessern, in der lose gekoppelte Dienste gehostet werden.

Netflix lobt Hystrix als "ein fantastisches Beispiel für ein Zuverlässigkeitsdesignmuster, das dazu beiträgt, Konsistenz in unserem Mikrodienstleistungs-Ökosystem zu schaffen".

Unsichtbare Fehler antizipieren

Netflix arbeitet daran, ein tiefes Verständnis für verteilte Systeme zu entwickeln und dieses Verständnis anzuwenden, um Fehler zu antizipieren, die es noch nicht erlebt hat.

Auf diese Weise kann es "Fehlermodi antizipieren, Möglichkeiten zur kontrollierten Injektion dieser Bedingungen bestimmen und unsere Zuverlässigkeitsentwurfsmuster weiterentwickeln".

© Copyright 2020 | mobilegn.com