Hohe Verfügbarkeit mit verteil... Notiz

Hohe Verfügbarkeit mit verteilten Datenbanken auf Kubernetes bei Airbnb erreichen

Organisationen nutzten traditionell kostspielige, eigenständige Server mit Sharding zur Datenbankskalierung, aber dieser Ansatz erwies sich bei wachsenden Datenanforderungen als problematisch für die Wartung. Der zuverlässige Betrieb horizontal skalierbarer Open-Source-Datenbanken in der Cloud mit hoher Verfügbarkeit, geringer Latenz und Skalierbarkeit zu einem vernünftigen Preis ist eine erhebliche Herausforderung. Airbnb verfolgte eine innovative Strategie, indem es einen verteilten Datenbankcluster über mehrere Kubernetes-Cluster hinweg einsetzte, um die Zuverlässigkeit und Bedienbarkeit zu verbessern. Die Verwaltung von zustandsbehafteten Diensten wie Datenbanken auf Kubernetes ist schwierig, insbesondere im Hinblick auf den Knotenersatz und Upgrades, da Kubernetes kein Bewusstsein für die Datenverteilung hat. Um dies zu mildern, verband Airbnb Speicherdatenträger über AWS EBS mit den Knoten, was eine automatische Wiederanbindung an neue virtuelle Maschinen über Kubernetes Persistent Volume Claims ermöglichte. Spezielle Kubernetes-Operatoren wurden entwickelt, um Ereignisse beim Ersetzen von Knoten zu verwalten, die in datenbankinitiierte, proaktive Infrastruktur- und ungeplante Ausfälle unterteilt wurden. Für datenbankinitiierte und proaktive Ereignisse stellen die Operatoren sicher, dass alle Knoten vor dem Ersetzen laufen und fangen Pod-Evictions ab, um sichere Löschungen zu koordinieren. Ungeplante Ausfälle können nicht koordiniert werden, aber die laufende Wartung wird durch die Blockierung von Ersetzungen geschützt, bis ausgefallene Hardware behoben ist. Um eine hohe regionale Verfügbarkeit zu gewährleisten, setzt Airbnb jede Datenbank in drei unabhängigen Kubernetes-Clustern in verschiedenen AWS Availability Zones ein, was den Einflussbereich von Problemen begrenzt. Die Überprovisionierung von Datenbankclustern garantiert ausreichende Kapazität, selbst wenn eine gesamte Availability Zone, ein Kubernetes-Cluster oder alle Speicher-Nodes in einer Zone ausfallen. AWS EBS bietet eine schnelle Wiederanbindung bei Knotenersetzungen und überlegene Langlebigkeit, was einen hochverfügbaren Cluster mit nur drei Replikaten ermöglicht. Spitzen bei der Tail-Latenz in EBS werden durch die Implementierung von Lese-Timeouts für Speicher und die Erlaubnis von Lesezugriffen auf Replikate zur Reduzierung der Latenz und Vermeidung von Cross-AZ-Kosten gemildert, wobei veraltete Lesezugriffe die Leseleistung weiter optimieren. Diese Multi-Cluster-Kubernetes-Strategie, die AWS EBS und benutzerdefinierte Operatoren nutzt, ermöglicht es Open-Source-verteilten Speichersystemen, hohe Verfügbarkeit, geringe Latenz und Skalierbarkeit in Cloud-Umgebungen zu erreichen und ein robustes Datenmanagement zu ermöglichen.
CdXz5zHNQW_5ISBolXzut.jpeg