Kapitel 9. Resilienz

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Ein verteiltes System ist ein System, in dem der Ausfall eines Computers, von dem du noch nicht einmal wusstest, deinen eigenen Computer unbrauchbar machen kann.1

Leslie Lamport, DEC SRC Bulletin Board (Mai 1987)

In einer späten Septembernacht, um kurz nach zwei Uhr morgens, fiel ein Teil von Amazons internem Netzwerk still und leise aus.2 Dieses Ereignis war kurz und nicht besonders interessant, außer dass es eine beträchtliche Anzahl von Servern betraf, die den DynamoDB-Dienst unterstützten.

An den meisten Tagen wäre das keine große Sache. Die betroffenen Server würden einfach versuchen, sich wieder mit dem Cluster zu verbinden, indem sie ihre Mitgliedsdaten von einem speziellen Metadatendienst abrufen. Wenn das fehlschlägt, schalten sie sich vorübergehend ab und versuchen es erneut.

Doch als das Netzwerk wiederhergestellt war, forderte eine kleine Armee von Speicherservern gleichzeitig ihre Mitgliedsdaten vom Metadatendienst an und überforderte diesen, so dass die Anfragen - auch die von zuvor nicht betroffenen Servern - in Zeitnot gerieten. Die Speicherserver reagierten pflichtbewusst auf die Zeitüberschreitungen, indem sie sich selbst offline nahmen und es (erneut) versuchten, was den Metadatendienst weiter belastete und dazu führte, dass noch mehr Server offline gingen, und so weiter. Innerhalb weniger Minuten hatte ...

Get Cloud Native Go now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.