|
Jason Warner, der Technologiechef von Github, beschreibt im Blog
des Unternehmens recht ausführlich den Ablauf eines Vorfalls
in der vergangenen Woche.
Dieser Vorfall hat durch die unglückliche Verknüpfung
verschiedener Umstände zu einem Teilausfall der Github-Dienste
über 24 Stunden geführt. Der routinemäßige
Wechsel einer 100-GBit-Glasfaserverbindung in einem der Github-Rechenzentren
war der Ausgangspunkt dafür. Dieser Wechsel führte jedoch
für die Dauer von 43 Sekunden zum Abbruch der Netzwerkverbindung,
was große Folgen haben sollte.
Beim Betreiber führte der kurzzeitige Netzwerkausfall zu Inkonsistenzen
in den MySQL-Datenbanken. Die MySQL-Cluster
werden von der firmeneigenen Orchestrator-Software verwaltet, die
beim Ausfall des Netzwerks genau das machte, was zu erwarten war:
Die Software veranlasste einen Failover der Schreibzugriffe von
dem nicht mehr erreichbaren Rechenzentrum an der US-Ostküste
zu jenem an der US-Westküste.
Nach der wiederherstellung der Netzwerkverbindung registrierte
das System Schreibzugriffe im Rechenzentrum an der US-Ostküste,
die nicht an der US-Westküste repliziert worden waren und umgekehrt.
Einige interne Dienste hatten Probleme mit dieser Inkonsistenz.
Zudem überlastete die Latenz zwischen den Rechenzentren den
Cluster an der Westküste, da nun alle Dienste in dem Rechenzentrum
der Ostküste ihre Daten in den Westküsten-Cluster geschrieben
hatten.
Das Github Team hat sich entschlossen einige Dienste herunterzufahren,
sodass keine Daten mehr in den Datenbank-Cluster geschrieben werden,
um die Integrität der Nutzerdaten nicht zu gefährden.
Betroffen davon waren unter anderem die Webhooks und die Möglichkeit
Github-Pages zu erstellen.
Über Twitter und die hauseigene Statusseite infomierte Github
seine Nutzer, konnte allerdings erst Stunden später im eigenen
Blog
auf das Ereignis näher eingehen. Der Grund dafür ist,
dass Github für seinen Blog intern ebenfalls auf die Pages
setzt, deren Veröffentlichung aber eigentlich ausgesetzt worden
war. Deshalb bedurfte es einer "größeren Anstrengung"
den Blog-Post zu veröffentlichen. Um schneller reagieren zu
können, will Github in Zukunft Vorkehrungen treffen.
Von diesem Vorfall waren laut dem Blogeintrag etwa fünf Millionen
Webhook-Ereignisse und rund 80.000 Pages-Builds betroffen. Die Wiederherstellungsarbeiten
waren erst 24 Stunden nach dem Beginn des Ausfalls abgeschlossen.
Derzeit werden noch knapp 1000 Schreibzugriffe vom Github-Team
überprüft, die möglicherweise nicht richtig verarbeitet
worden sind und so zu einem Datenverlust geführt haben könnten.
Durch eine detaillierte Analyse will das Team noch herausfinden,
welche dieser Zugriffe noch automatisiert wiederhergestellt werden
können. Github will künftig systematisch verschiedene
Fehlerszenarien testen und in sogenanntes Chaos-Engineering investieren.
(hv, hannover)
(siehe auch golem.de:)
Hannover · EDV-Beratung ·
Linux · Novell · Microsoft · Seminar ·
IT-Consult · Netzwerk · LPIC · CLE
|