Hochverfügbarkeit für Ihre Apps

Dieses Dokument enthält technische Anleitungen und Best Practices für das Entwerfen und Bereitstellen von hochverfügbaren (HA) Arbeitslasten in mehreren Zonen in einem GDC-Universum (Google Distributed Cloud) mit Air Gap. Der Leitfaden enthält wichtige Architekturmuster, Dienstkonfigurationen und betriebliche Überlegungen, um Ausfallzeiten zu minimieren und die Geschäftskontinuität sicherzustellen.

Die Strategien in diesem Dokument richten sich an die folgenden technischen Fachkräfte:

  • Cloud-Architekten, die ausfallsichere Infrastruktur- und Anwendungsarchitekturen entwerfen.

  • DevOps- und Site Reliability Engineers, die Bereitstellungsstrategien, Automatisierung, Monitoring und Reaktion auf Vorfälle für HA-Arbeitslasten implementieren.

  • Anwendungsentwickler, die fehlertolerante Anwendungen entwickeln, die in HA-Muster integriert werden.

Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Bedeutung der Hochverfügbarkeit

In modernen verteilten Systemen ist die Planung für Hochverfügbarkeit von entscheidender Bedeutung. Ausfallzeiten können zu erheblichen Beeinträchtigungen des Geschäftsbetriebs, Umsatzverlusten und einer schlechten Nutzererfahrung führen.

Bei Arbeitslasten, die in privaten Rechenzentren mit GDC ausgeführt werden, hängt die Verfügbarkeit oft direkt mit dem operativen Erfolg zusammen, insbesondere bei latenzsensiblen oder sicherheitskritischen Anwendungen. Es ist wichtig, von Anfang an auf Hochverfügbarkeit zu achten, um stabile und zuverlässige Dienste zu entwickeln.

GDC bietet Hyperscale-Funktionen in Ihrer Air-Gap-Umgebung mit mehreren getrennten Rechenzentren oder Zonen. Die Hochverfügbarkeit Ihrer multizonalen Anwendungen hängt von multizonalen Diensten wie Load-Balancing und asynchronem Speicher ab. Weitere Informationen zu wichtigen Diensten, die für Hochverfügbarkeit verwendet werden, finden Sie in den Abschnitten Skalierbarkeit und Load-Balancing und Bereitstellung von HA-Apps in Zonen mit asynchronem Speicher in diesem Dokument.

Hyperscale-Funktionen, lokal bereitgestellt

GDC erweitert die Google Cloud Infrastruktur und ‑Dienste auf das Edge-Netzwerk und Ihre Rechenzentren. GDC bietet eine vollständig verwaltete Hardware- und Softwarelösung, mit der Sie Google Kubernetes Engine (GKE) in GDC-Clustern und anderenGoogle Cloud -Diensten näher am Ort der Datenerstellung und -nutzung ausführen können.

In diesem Dokument geht es um GDC-Universen, die in einer Mehrzonen-Topologie konfiguriert sind. In dieser Konfiguration umfasst ein einzelnes Universum mehrere physisch isolierte Zonen am selben Standort.

Diese Zonen haben eine unabhängige Stromversorgung, Kühlung und ein unabhängiges Netzwerk, was Schutz vor lokalen Ausfällen der physischen Infrastruktur bietet. Die Netzwerkverbindung zwischen Zonen mit niedriger Latenz und hoher Bandbreite ermöglicht Datenreplikation und schnelles Failover und bildet die Grundlage für die Entwicklung hochverfügbarer Anwendungen.

Skalierbarkeit und Load-Balancing

Neben der grundlegenden Komponentenredundanz sind die effektive Verwaltung des Traffics und die nahtlose Skalierung entscheidend für die Aufrechterhaltung einer hohen Verfügbarkeit, insbesondere bei unterschiedlichen Lastbedingungen. GDC bietet verschiedene Mechanismen für Load-Balancing und anspruchsvolle Trafficverwaltung.

Externer Load Balancer für Nord-Süd-Traffic

Wenn Sie Ihre Anwendungen für Nutzer oder Systeme außerhalb eines GKE on GDC-Clusters (North-South-Traffic) bereitstellen möchten, verwenden Sie die verwalteten externen Load-Balancing-Funktionen von GDC. Der ELB-Dienst (External Load Balancer) bietet diese Funktionen und lässt sich nahtlos in Kubernetes einbinden.

Die wichtigsten Merkmale des ELB-Dienstes, der für hohe Verfügbarkeit und Skalierbarkeit sorgt, sind die folgenden:

  • Verwalteter Dienst: Wird als GDC-spezifischer Dienst ausgeführt und ist für hohe Verfügbarkeit und Ausfallsicherheit in einer Air-Gap-Umgebung konzipiert.

  • Externer Zugriff: Stellt stabile externe IP-Adressen aus von GDC verwalteten Pools bereit und bietet so einen konsistenten Einstiegspunkt für externe Clients.

  • Load-Balancer-Integration mit Kubernetes: Der Load-Balancer wird automatisch bereitgestellt und konfiguriert, wenn Sie ein Kubernetes-Service vom Typ type: LoadBalancer ohne bestimmte interne Anmerkungen erstellen.

  • Zonenbewusstsein: Der eingehende Traffic wird auf fehlerfreie Anwendungspods verteilt, die in allen verfügbaren Zonen im GDC-Universum ausgeführt werden. Der ELB stützt sich auf Pod-Bereitschaftsprüfungen, um den Zustand des Backends zu bestimmen.

  • Skalierbarkeit: Verteilung von externem Traffic, wenn Ihre Anwendung horizontal über Knoten und Zonen hinweg skaliert wird.

Um HA für eingehenden externen Traffic zu erreichen, sodass Clientanfragen automatisch von fehlerhaften Zonen oder Instanzen weggeleitet werden, empfehlen wir die Verwendung eines externen Load Balancers.

Weitere Informationen finden Sie unter Externe Load-Balancer konfigurieren.

Interner Load Balancer für Ost-West-Traffic

Für die Kommunikation zwischen Diensten, die im selben GKE on GDC-Cluster ausgeführt werden (Ost-West-Traffic), stellt GDC einen internen Load-Balancer (ILB) bereit. Ein ILB ist unerlässlich, um interne Dienste zu entkoppeln und interne Kommunikationspfade bereitzustellen, die ebenfalls hochverfügbar und skalierbar sind.

Die wichtigsten Merkmale des ILB-Dienstes, der für hohe Verfügbarkeit und Skalierbarkeit sorgt, sind die folgenden:

  • Interner Zugriff: Stellt eine stabile interne IP-Adresse bereit, auf die nur innerhalb des GDC-Netzwerks zugegriffen werden kann, z. B. von Clusternknoten oder anderen internen Diensten.

  • Load-Balancer-Integration mit Kubernetes: Stellt Load-Balancing bereit, indem ein Kubernetes-Service vom Typ type: LoadBalancer mit einer bestimmten Annotation erstellt wird, um anzugeben, dass er intern sein muss. Beispiel: networking.gke.io/load-balancer-type: "Internal".

  • Zonenbewusstsein: Der Traffic wird auf fehlerfreie Backend-Pods verteilt, die mit Bereitschaftstests identifiziert werden und sich in allen verfügbaren Zonen befinden. Diese Verteilung verhindert interne Kommunikationsfehler, wenn in einer Zone Probleme auftreten.

  • Diensterkennung und Entkopplung: Bietet eine stabile interne IP-Adresse und einen DNS-Namen mit kube-dns- und CoreDNS-Integration. Dienste können sich gegenseitig erkennen und miteinander kommunizieren. Clients müssen daher nicht die einzelnen Pod-IP-Adressen kennen.

  • Skalierbarkeit: Ermöglicht die Skalierung interner Backend-Dienste, indem der Traffic auf alle verfügbaren fehlerfreien Replikate verteilt wird.

Durch die Verwendung eines ILB für die interne Dienst-zu-Dienst-Kommunikation ist der interne Trafficfluss widerstandsfähiger gegen Zonenausfälle und bietet eine effektive Skalierung, die die HA ergänzt, die durch den externen ELB und die zugrunde liegende Compute-Verteilung bereitgestellt wird. Diese Strategie wird häufig für mehrstufige Anwendungen verwendet, bei denen Frontend-APIs mit Backend-APIs oder Datenbanken innerhalb des Kubernetes-Clusters kommunizieren müssen.

Weitere Informationen finden Sie unter Interne Load-Balancer konfigurieren.

HA-App-Bereitstellung zonenübergreifend mit asynchronem Speicher

Mit GDC können Sie Infrastruktur und Anwendungen näher an Ihren Datenquellen ausführen. Wenn Sie HA-Anwendungen mit einer stabilen Datenquelle bereitstellen möchten, implementieren Sie die asynchrone Speicherreplikation für die Datenpersistenz und Notfallwiederherstellung.

Zonen stellen unterschiedliche Fehlerdomains in einem einzelnen Universum dar. Wenn Sie Anwendungskomponenten verteilen und Daten zonenübergreifend replizieren, verbessern Sie die Resilienz gegenüber lokalen Hardwarefehlern oder Wartungsereignissen erheblich.

Weitere Informationen finden Sie unter Datenschutz mit Mehrzonenspeicher.

Nächste Schritte

  • Informationen zum Bereitstellen eines Dienstes als Sammlung von VMs, die über Zonen mit asynchron repliziertem Blockspeicher verteilt sind, finden Sie unter HA-VM-App bereitstellen.

  • Informationen zum Bereitstellen eines Dienstes als containerisierte Anwendung in Kubernetes über Zonen hinweg mit asynchron replizierten nichtflüchtigen Speichern finden Sie unter HA-Containeranwendung bereitstellen.

  • Weitere Informationen zu Zonen und Universen finden Sie unter Zonen in GDC Air-Gap.