Reddit: Stundenlanger Ausfall, weil niemand mehr den Code kennt

Das Entwicklungsteam der Social-Media-Plattform Reddit hat eine ausführliche Analyse(öffnet im neuen Fenster) zu einem stundenlangen Ausfall des Dienstes am 14. März dieses Jahres veröffentlicht. Interessant daran ist vor allem, dass der mehrstündige Ausfall nicht nur technische Gründe hatte, sondern dass das Beheben erheblich durch fehlendes Wissen über die eigenen Dienste verzögert wurde.
Auslöser des Ausfalls war demnach ein Update von Kubernetes 1.23 auf Version 1.24, das einen trotz zahlreicher Tests nie zuvor gesehenen Fehler auslöste. Erst nach Stunden entschied sich das Team schließlich dazu, ein Zurückrollen der Version und Einspielen eines Back-ups umzusetzen, um den Ausfall zu beheben. Dabei ging zwar auch einiges schief, letztlich funktionierte es aber. Die eigentliche Ursache für den Ausfall war damit allerdings noch nicht gefunden.
Die Suche danach in den Logs vergleicht das Team mit der Suche nach einer Nadel im Heuhaufen. Irgendwann fiel den Beteiligten schließlich auf, dass das Mesh-Netzwerk zwischen den Knoten im Cluster offline war, da sämtliche Routen zwischen den Knoten verworfen worden waren. Um diesen Aufbau zu skalieren, setzt das Reddit-Team auf sogenannte Route Reflectors, die als Alternative zu einem vollständigen Mesh zum Einsatz kommen. Ein Konfigurationsfehler dafür war die Ursache für den Fehler.
Fehlendes Wissen verzögert alles
Dazu heißt es in dem Blogpost: "Die Route Reflectors wurden vor einigen Jahren vom Vorgänger des heutigen Compute-Teams eingerichtet. Die Zeit verging, und mit der Fluktuation und dem Wachstum wechselten alle, die von deren Existenz wussten, in andere Funktionen oder andere Unternehmen. Nur unsere größten und ältesten Cluster verwenden sie noch. Es gab also niemanden, der über das Wissen verfügte, mit der Route-Reflector-Konfiguration zu interagieren, um überhaupt zu erkennen, dass etwas nicht in Ordnung sein könnte, oder der in der Lage war, sich zu melden und das Problem zu untersuchen."
Erschwerend kam für das Team hinzu, dass die Konfigurationen der Route-Reflector-Software Calico nur über die Kommandozeile und manuelle Eingaben verändert werden können. Zwar könne das durch eigene Werkzeuge vereinfacht werden, die hatte das Team aber nie selbst erstellt. Lediglich ein Entwickler konnte sich an das System sowie diese Funktion erinnern und so herausfinden, was geschehen war.



