Technik ist überall. Je nachdem, wie hoch das Risiko in Ihrer Branche ist, kann der Ausfall eines technischen Produkts oder Systems bis zum Ende der Lebensdauer, wie Sie es kennen, völlig vernachlässigbar sein.

Großrechner im Krankenhaus? Irgendwie wichtig. Die Widerstandsfähigkeit der Candy Crush-App auf Ihrem Handy? Wahrscheinlich etwas weiter unten auf der Gesamtprioritätenliste.

In einem verteilten Netzwerksystem ist ein Ausfall unvermeidlich. Die Verhinderung von Katastrophen beginnt mit einem soliden, wasserdichten Sicherheitsdesign. Aber was kann man darüber hinaus noch tun?

Was ist Netflix-Chaos-Engineering?

20.09.2015.

Alles ruhig an der Westfront, als plötzlich mehrere wichtige Amazon Web Services-Server von Unternehmen wortlos ausfallen.

Viele große Unternehmen konnten ihre Kunden stundenlang nicht versorgen. Netflix war jedoch innerhalb weniger Minuten wieder auf den Beinen. Wie? Die interne Unternehmenskultur von Netflix hatte sich so entwickelt, dass sie viele „fehlerverursachende“ Praktiken umfasste, die in Echtzeit implementiert wurden, um sowohl Systeme als auch Ingenieure gleichermaßen auf den Katastrophenfall vorzubereiten.

instagram viewer

Die Unternehmensleitung führte gezielt simulierte Serverausfälle in abgegrenzten Teilen des Systems durch, um solche Ereignisse zu untersuchen und vorzubereiten. Dies half ihnen, Lücken im System zu identifizieren und Redundanzen aufzubauen, die es ihnen ermöglichten, den Dienst auch im Falle einer größeren Fehlfunktion wie der zuvor erwähnten ununterbrochen fortzusetzen.

Diese bewussten "Chaos Engineering"-Übungen gaben ihren Ingenieuren genug Wettbewerbsvorteile, um sich selbst zu sehen durch das Fiasko, zum Teil dank der präventiven Infrastruktur, die sie mit dieser Art von Doomsday-Event aufgebaut hatten im Sinn.

Niemand sonst war bereit, als die große Welle einschlug. Das Netflix-System war stark genug, um für sich selbst zu sorgen. Fazit? Diese chaotischen Masterminds könnten hier etwas auf der Spur sein.

Absichtlich diejenigen vernichten, die dich lieben

"Chaos Engineering ist die Disziplin des Experimentierens an einem System, um Vertrauen in die Fähigkeit des Systems aufzubauen, turbulenten Bedingungen in der Produktion standzuhalten."

Prinzipien des Chaos-Manifests

Dies ist das Herzstück von Chaos Engineering – im Wesentlichen eine „Feuerübung“, die dem System während der Arbeitszeit auferlegt wird, wenn Augen und Hände verfügbar sind, um die gestellte Herausforderung zu bewältigen. Die Fähigkeit eines bestimmten Systems, Fehler zu tolerieren, wird auf die Probe gestellt, wenn Schwachstellen aufgedeckt werden.

Im ursprünglichen Kontext von 2011 betraf Chaos Engineering die IT-Abteilung von Netflix. Ihre Führung wollte testen, wie belastbar die Bemühungen des Teams waren, wenn einer oder mehrere ihrer Computer absichtlich deaktiviert wurden. Diese Rückschläge ermöglichten es dem IT-Team, wichtige Schwachstellen zu identifizieren, bevor sie zu systemweiten Problemen wurden und von außen ausgenutzt werden konnten.

Echtes Versagen? Es kann höllisch teuer werden, und das geht über die monetären Implikationen hinaus. Selbst Ausfallzeiten ohne wirkliche Sicherheitslücken werden wahrscheinlich dazu führen, dass viele Gelegenheiten verpasst werden, Einnahmen zu erzielen. Warum auf einen Notfall warten, der Sie blind macht?

Die Affen hinter dem Wahnsinn

Einige Unternehmen werden ein "rotes Team"-Modell anwenden, bei dem Entwicklerteams abteilungsübergreifend gegen ihre Brüder antreten. Das klassische Beispiel, das Netflix anführte, verwendet jedoch eine "Simian Army". Diese Bots erledigen die Drecksarbeit für sie fair und völlig willkürlich.

Wahnsinnig? Für den Laien vielleicht. In den Worten von "Chaos Monkeys"-Autor Antonio Garcia Martinez:

„Stellen Sie sich einen Affen vor, der ein ‚Rechenzentrum‘ betritt, diese ‚Farmen‘ von Servern, die alle kritischen Funktionen unserer Online-Aktivitäten hosten. Der Affe zerreißt wahllos Kabel und zerstört Geräte. Die Herausforderung besteht darin, das Informationssystem, für das sie verantwortlich sind, so zu gestalten, dass es trotz dieser Affen funktioniert, von denen niemand weiß, wann sie ankommen und was sie zerstören werden."

Eine bunte Analogie. Doch nicht alle Simianer sind grausam: Doctor Monkey überwacht beispielsweise die Leistung des Systems. Wenn Chaos Kong jedoch zu Besuch kommt, sind alle Wetten gewettet; Dieses Zeichen wird eine gesamte AWS-Verfügbarkeitszone deaktivieren.

Verbunden: Wie werden Sicherheitslücken bewertet?

Chaos Engineering und die wissenschaftliche Methode

Chaos Engineering dient den Experimentatoren als wertvolle Quelle systemischer Erkenntnisse. Hier werden nicht nur die Entwickler auf die Probe gestellt; es ist das System, wie es auch autonom existiert.

Bevor das Fass mit den Affen auf den Tisch geworfen wird, muss für Chaos Engineering ein wenig Vorarbeit geleistet werden.

  1. Zunächst müssen Sie den "stabilen", gesunden und funktionsfähigen Zustand Ihres Systems ermitteln. Dies ist die „Kontrolle“, an der Sie alle greifbaren Ergebnisse messen.
  2. Beginnen Sie, darüber nachzudenken, wie dieser Zustand durch das Eindringen von orchestriertem Versagen aus dem Gleichgewicht gebracht wird. Planen Sie Ihre Malware-Sondierung so, dass sie nur einen abgeschlossenen, kontrollierbaren Bereich Ihres Systems betrifft.
  3. Stellen Sie den "Eindringling" vor und lassen Sie das System reagieren.
  4. Beobachten und interpretieren Sie alle Unterschiede zwischen dem System, wie es jetzt existiert, und seinem Verhalten zuvor während der Homöostase. Erhöhen Sie Ihren "Sprengradius" des Aufpralls, bis Sie entweder eine Schwachstelle entdecken oder den vollen Umfang erreichen, je nachdem, was zuerst eintritt.

Die Idee ist, dass Sie umso mehr Vertrauen in seine Widerstandsfähigkeit gegenüber Veränderungen und Bombardements haben können, je schwieriger es ist, ein funktionierendes System zu stören. Dieser Ansatz zeigt, wie verschiedene Aspekte des Systems bei einem Ausfall die Ausfälle des anderen kompensieren.

„Da keine einzelne Komponente eine 100%ige Verfügbarkeit garantieren kann (und selbst die teuerste Hardware irgendwann ausfällt), müssen wir have Entwerfen einer Cloud-Architektur, bei der einzelne Komponenten ausfallen können, ohne die Verfügbarkeit des gesamten zu beeinträchtigen System."

Das Netflix Blog

Manchmal hat das Spielen mit dem System nicht einmal annähernd Auswirkungen auf das Kundenerlebnis. In anderen Fällen werden schwerwiegende Sicherheitslücken ans Licht gebracht. Jetzt, insbesondere bei Netflix, sind Notfallmaßnahmen, die Systemausfälle auf Benutzerebene maskieren sollen, in die Grundlage des Systems integriert.

Verbunden: Was ist ein Zero-Day-Exploit?

Lohnt sich Chaos Engineering?

Wenn Sie ein komplexes System verstehen wollen – stören Sie es

– Farhan Thawar (@fnthawar) 26. Mai 2021

Kritiker werden sagen, dass kein Back-End-Spiel es wert ist, das Erlebnis eines Kunden zu beeinträchtigen, auch wenn es nur kurz und zufällig ist. Diejenigen, die Chaos Engineering befürworten, werden jedoch mit der Tatsache widerlegen, dass diese "geplanten Ausfälle" viel kleiner sein sollen als das, was AWS 2015 erlebt hat. Wenn Sie aufgrund eines kleinen, geplanten Problems in der Lage sind, das Auftreten eines viel größeren Problems zu verhindern, kann die Planung des ersten Vorfalls die beste Vorbereitung sein. Insgesamt werden weniger Nutzer betroffen sein. Die Mathematik geht auf.

Aus menschlicher Sicht ist die Mentalität, dass jetzt diese Ingenieure, die einen Serverabsturz hatten, vor ihnen stehen und kompetenter damit umgehen, wird in Zukunft sowohl wachsamer als auch intellektuell gerüstet sein, um mit allem umzugehen, was auf sie zukommt Weg. Das daraus resultierende stärkere System spricht in vielen Fällen für sich.

Silicon Valley: Wo Träume sterben

Sie sagen, wenn Sie groß rauskommen wollen, müssen Sie bereit sein, Ihre Lieblinge zu töten, oder, in diesem Fall, bereit sein, andere für Sie töten zu lassen. Wenn die Sicherheit von Anfang an im Vordergrund der Entwicklung steht, ist es viel wahrscheinlicher, dass Ihr Team etwas Undurchdringliches und Sicheres erhält, das Kunden frei verwenden können.

Die spielerische Gestaltung der Arbeitsplatzerfahrung macht die Erfolgsaussichten in diesem Bereich spannend; Wenn das Endergebnis qualitativ hochwertig ist, kann jeder aufsteigen. Mein Netflix läuft einwandfrei, und wir haben es nur den Verrückten hinter dem Chaos zu verdanken.

Jetzt, da Sie Chaos Engineering gut beherrschen, können Sie Ihr Wissen mit einer anderen Softwareentwicklungsmethodik erweitern. Agile ist ein hervorragendes System, das Sie integrieren können, um eine Belegschaft zu vereinen und sauberen, effizienten Code zu erstellen.

Email
Was ist die agile Programmiermethodik?

Egal, ob Sie sich für Programmierjobs bewerben oder eine effizientere Arbeitsweise wünschen, Sie müssen über Agile Bescheid wissen.

Weiter lesen

Verwandte Themen
  • Programmierung
  • Programmierung
Über den Autor
Emma Garofalo (25 Artikel veröffentlicht)

Emma Garofalo ist Autorin und lebt derzeit in Pittsburgh, Pennsylvania. Wenn sie sich nicht gerade an ihrem Schreibtisch abmüht, um ein besseres Morgen zu haben, ist sie normalerweise hinter der Kamera oder in der Küche zu finden.

Mehr von Emma Garofalo

Abonnieren Sie unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Noch ein Schritt…!

Bitte bestätigen Sie Ihre E-Mail-Adresse in der E-Mail, die wir Ihnen gerade gesendet haben.

.