Uber's Failover Architecture: Reconciling Reliability and Efficiency in Hyperscale Microservice Infrastructure

Die vorgestellte Uber-Failover-Architektur (UFA) optimiert die Hyperscale-Microservice-Infrastruktur, indem sie ein einheitliches 2x-Kapazitätsmodell durch eine differenzierte Strategie ersetzt, die nicht-kritische Dienste bei Bedarf vorübergehend unterbricht, um die Auslastung von 20 % auf 30 % zu steigern, über eine Million CPU-Kerne einzusparen und gleichzeitig eine Verfügbarkeit von 99,97 % zu gewährleisten.

Mayank Bansal, Milind Chabbi, Kenneth Bogh, Srikanth Prodduturi, Kevin Xu, Amit Kumar, David Bell, Ranjib Dey, Yufei Ren, Sachin Sharma, Juan Marcano, Shriniket Kale, Subhav Pradhan, Ivan Beschastnikh, Miguel Covarrubias, Chien-Chih Liao, Sandeep Koushik Sheshadri, Wen Luo, Kai Song, Ashish Samant, Sahil Rihan, Nimish Sheth, Uday Kiran Medisetty

Veröffentlicht Tue, 10 Ma
📖 4 Min. Lesezeit☕ Kaffeepausen-Lektüre

Each language version is independently generated for its own context, not a direct translation.

🚗 Uber's "Notfall-Plan": Wie man Sicherheit spart, ohne zu riskieren

Stellen Sie sich Uber nicht nur als App vor, sondern als eine riesige, globale Fabrik, die rund um die Uhr Millionen von Fahrten organisiert. Diese Fabrik besteht aus über 6.000 kleinen Robotern (den sogenannten "Mikrodiensten"), die alle zusammenarbeiten müssen.

Das alte Problem: Die teure "Doppel-Versicherung"

Früher hatte Uber ein sehr sicheres, aber extrem teures System. Es funktionierte wie ein Flugzeug mit zwei Triebwerken, die beide immer zu 100 % laufen, auch wenn nur eines ausreicht.

  • Die Idee: Wenn eine ganze Stadt (ein "Rechenzentrum") ausfällt, muss die andere Stadt sofort die gesamte Arbeit übernehmen.
  • Das Problem: Um das zu garantieren, musste Uber für jede Stadt doppelt so viele Computer vorhalten, wie eigentlich nötig waren.
  • Die Folge: Die Hälfte der Computer stand den ganzen Tag nur herum und tat nichts. Das war wie ein Taxi-Unternehmen, das 100 Autos besitzt, aber nur 50 Fahrer hat – die anderen 50 Autos rosten vor sich hin und kosten nur Geld. Die Auslastung lag bei nur 20 %.

Die neue Lösung: UFA (Uber's Failover Architecture)

Uber hat nun ein neues System namens UFA eingeführt. Man kann es sich wie ein intelligentes Notfall-Reservierungssystem vorstellen.

1. Die Idee der "Stufen" (Prioritäten)
Nicht alle Dienste sind gleich wichtig.

  • Wichtig (T0/T1): Die eigentliche Fahrtbuchung. Wenn das ausfällt, passiert nichts.
  • Weniger wichtig (T3-T5): Dinge wie Statistiken, Testläufe oder interne Tools. Wenn diese kurz ausfallen, ist das ärgerlich, aber kein Weltuntergang.

2. Das "Leere-Sofa"-Prinzip (Intelligente Überbuchung)
Stellen Sie sich vor, Sie haben ein großes Sofa (die Computer-Ressourcen).

  • Früher: Sie haben zwei Sofas gekauft, damit immer Platz für alle ist, auch wenn ein Sofa kaputt geht. Das zweite Sofa stand leer.
  • Jetzt (UFA): Sie haben nur ein Sofa. Aber Sie wissen: Ein Sofa-Katastrophe (ein kompletter Ausfall einer Stadt) passiert statistisch gesehen nur 20 Stunden im Jahr.
  • Der Trick: In den restlichen 8.760 Stunden des Jahres nutzen die "weniger wichtigen" Gäste (die weniger kritischen Dienste) das Sofa, das eigentlich für den Notfall reserviert war. Sie sitzen dort gemütlich und nutzen den Platz.
  • Der Notfall: Wenn plötzlich die "wichtigen" Gäste (die Fahrten) ankommen und das Sofa brauchen, werden die "weniger wichtigen" Gäste sofort und höflich gebeten, aufzustehen. Sie müssen kurz warten, bis sie sich woanders einrichten können (in der Cloud oder auf anderen Maschinen).

3. Die Sicherheitsnetze (Warum das nicht schiefgeht)
Das klingt riskant: Was, wenn die "weniger wichtigen" Gäste die "wichtigen" blockieren?

  • Die "Fail-Open"-Regel: Uber hat geprüft, dass die wichtigen Dienste so programmiert sind, dass sie nicht zusammenbrechen, wenn die unwichtigen Dienste weg sind. Es ist wie ein Restaurant: Wenn der Kellner für die Desserts (unwichtig) ausfällt, kann der Koch trotzdem das Hauptgericht (wichtig) zubereiten. Früher war es so, dass der Koch aufhörte zu kochen, weil der Kellner fehlte. Das wurde behoben.
  • Der "Notfall-Test": Bevor das System live ging, haben sie tausende Mal simuliert, was passiert, wenn man die unwichtigen Dienste einfach "abschaltet". Nur die Dienste, die das ohne Probleme überstanden haben, durften mitmachen.

Die Ergebnisse: Mehr für weniger Geld

Durch dieses System hat Uber riesige Erfolge erzielt:

  • Platzsparend: Sie haben über 1 Million Computer-Kerne (die "Motoren" der Rechner) eingespart. Das ist, als würde man 100.000 Autos aus dem Fuhrpark streichen, die eh nie gefahren wurden.
  • Besser genutzt: Die Auslastung der Computer ist von 20 % auf 30 % gestiegen. Das Sofa wird jetzt wirklich genutzt!
  • Sicher: Trotz der Einsparungen bleibt die Zuverlässigkeit extrem hoch (99,97 %). Die Fahrten funktionieren weiterhin, auch wenn eine ganze Stadt ausfällt.

Zusammenfassung in einer Metapher

Stellen Sie sich ein Flugzeug vor.

  • Alt: Das Flugzeug hatte immer zwei volle Tankfüllungen, auch wenn nur eine für den Flug reichte. Der Rest war schweres Ballastgewicht.
  • Neu (UFA): Das Flugzeug hat nur einen vollen Tank. Der zweite Tank ist leer, aber er ist mit "Sitzplätzen für Passagiere" gefüllt, die nur mitfliegen, wenn der Haupttank voll ist. Wenn der Haupttank (die kritische Stadt) gebraucht wird, steigen diese Passagiere kurz aus, damit das Flugzeug sicher landen kann. Sobald es sicher ist, steigen sie wieder ein.

Das Fazit: Uber hat gelernt, dass man nicht immer "für den schlimmsten Fall" doppelt so viel Geld ausgeben muss. Wenn man genau weiß, wann der schlimmste Fall eintritt (und das ist sehr selten), kann man Ressourcen clever teilen, ohne die Sicherheit zu gefährden. Es ist eine Mischung aus kluger Planung, strengen Tests und einem guten Sicherheitsnetz.