Empfehlungen für das Entwerfen von Redundanz

Gilt für diese Empfehlung der Prüfliste für die Zuverlässigkeit von Azure Well-Architected Framework:

RE:05 Hinzufügen von Redundanz auf verschiedenen Ebenen, insbesondere für kritische Flows. Wenden Sie Redundanz auf die Compute-, Daten-, Netzwerk- und andere Infrastrukturebenen gemäß den identifizierten Zuverlässigkeitszielen an.

Verwandte Leitfäden:Hoch verfügbarer multiregionaler Entwurf | mithilfe von Verfügbarkeitszonen und Regionen

In diesem Leitfaden werden die Empfehlungen zum Hinzufügen von Redundanz in kritischen Flows auf verschiedenen Workloadebenen beschrieben, wodurch die Resilienz optimiert wird. Erfüllen Sie die Anforderungen Ihrer definierten Zuverlässigkeitsziele, indem Sie die richtigen Redundanzebenen auf Ihre Compute-, Daten-, Netzwerk- und andere Infrastrukturebenen anwenden. Wenden Sie diese Redundanz an, um Ihrer Workload eine starke, zuverlässige Grundlage für die Erstellung zu geben. Wenn Sie Ihre Workload ohne Infrastrukturredundanz erstellen, besteht aufgrund potenzieller Fehler ein hohes Risiko für längere Ausfallzeiten.

Definitionen

Begriff Definition
Redundanz Die Implementierung mehrerer identischer Instanzen einer Workloadkomponente.
Mehrsprachige Persistenz Das Konzept der Verwendung verschiedener Speichertechnologien durch dieselbe Anwendung oder Lösung, um die besten Funktionen jeder Komponente zu nutzen.
Datenkonsistenz Das Maß, wie ein bestimmtes Dataset synchronisiert oder nicht synchronisiert wird, liegt in mehreren Speichern vor.
Partitionierung Der Prozess der physischen Aufteilung von Daten in separate Datenspeicher.
Shard Eine horizontale Datenbankpartitionierungsstrategie, die mehrere Speicherinstanzen mit einem gemeinsamen Schema unterstützt. Daten werden nicht in allen Instanzen repliziert.

Wichtige Entwurfsstrategien

Verwenden Sie im Kontext der Zuverlässigkeit Redundanz, um Probleme einzugrenzen, die sich auf eine einzelne Ressource auswirken, und stellen Sie sicher, dass sich diese Probleme nicht auf die Zuverlässigkeit des gesamten Systems auswirken. Verwenden Sie die Informationen, die Sie zu Ihren kritischen Flows und Zuverlässigkeitszielen identifiziert haben, um fundierte Entscheidungen zu treffen, die für die Redundanz jedes Flows erforderlich sind.

Beispielsweise können mehrere Webserverknoten gleichzeitig ausgeführt werden. Die Wichtigkeit des von ihnen unterstützten Flows erfordert möglicherweise, dass alle über Replikate verfügen, die bereit sind, Datenverkehr zu akzeptieren, wenn ein Problem vorliegt, das sich auf den gesamten Pool auswirkt, z. B. ein regionaler Ausfall. Da große Probleme selten sind und die Bereitstellung einer ganzen Reihe von Replikaten kostspielig ist, können Sie alternativ eine begrenzte Anzahl von Replikaten bereitstellen, damit der Flow in einem heruntergestuften Zustand ausgeführt wird, bis Sie das Problem behoben haben.

Wenn Sie Redundanz im Kontext der Leistungseffizienz entwerfen, verteilen Sie die Last auf mehrere redundante Knoten, um sicherzustellen, dass jeder Knoten optimal funktioniert. Bauen Sie im Kontext der Zuverlässigkeit freie Kapazität ein, um Fehler oder Fehlfunktionen abzufangen, die sich auf einen oder mehrere Knoten auswirken. Stellen Sie sicher, dass die freie Kapazität Fehler für die gesamte Zeit auffangen kann, die zum Wiederherstellen der betroffenen Knoten erforderlich ist. Bei dieser Unterscheidung müssen beide Strategien zusammenarbeiten. Wenn Sie Datenverkehr aus Leistungsgründen auf zwei Knoten verteilen und beide mit einer Auslastung von 60 Prozent ausgeführt werden und ein Knoten fehlschlägt, besteht die Gefahr, dass ihr verbleibender Knoten überlastet wird, da er nicht mit 120 Prozent betrieben werden kann. Verteilen Sie die Last auf einen anderen Knoten, um sicherzustellen, dass Ihre Leistungs- und Zuverlässigkeitsziele eingehalten werden.

Kompromisse:

  • Mehr Workloadredundanz bedeutet mehr Kosten. Erwägen Sie sorgfältig das Hinzufügen von Redundanz, und überprüfen Sie regelmäßig Ihre Architektur, um sicherzustellen, dass Sie die Kosten verwalten, insbesondere wenn Sie eine Überbereitstellung verwenden. Wenn Sie die Überbereitstellung als Resilienzstrategie verwenden, können Sie sie mit einer klar definierten Skalierungsstrategie abgleichen, um Kostenineffizienzen zu minimieren.
  • Es kann Leistungseinbußen geben, wenn Sie ein hohes Maß an Redundanz aufbauen. Beispielsweise können Ressourcen, die sich auf Verfügbarkeitszonen oder Regionen verteilen, die Leistung beeinträchtigen, da Sie Datenverkehr über Verbindungen mit hoher Latenz zwischen redundanten Ressourcen wie Webservern oder Datenbankinstanzen senden müssen.
  • Unterschiedliche Flows innerhalb derselben Workload haben möglicherweise unterschiedliche Zuverlässigkeitsanforderungen. Flussspezifische Redundanzdesigns können den Gesamtentwurf möglicherweise komplex gestalten.

Redundanter Architekturentwurf

Ziehen Sie beim Entwerfen einer redundanten Architektur zwei Ansätze in Betracht: Aktiv-Aktiv oder Aktiv-Passiv. Wählen Sie Ihren Ansatz in Abhängigkeit von der Wichtigkeit des Benutzerflows und des Systemflusses aus, den die Infrastrukturkomponenten unterstützen. In Bezug auf die Zuverlässigkeit hilft Ihnen ein aktiv-aktiv-Design in mehreren Regionen, die höchstmögliche Zuverlässigkeit zu erreichen, aber es ist deutlich teurer als ein Aktiv-Passiv-Design. Die Entscheidung über die geeigneten geografischen Regionen ist die nächste wichtige Wahl. Sie können diese Entwurfsansätze auch für eine einzelne Region verwenden, indem Sie Verfügbarkeitszonen verwenden. Weitere Informationen finden Sie unter Empfehlungen für hochverfügbares Design in mehreren Regionen.

Bereitstellungsstempel und Skalierungseinheiten

Unabhängig davon, ob Sie die Bereitstellung in einem Aktiv-Aktiv- oder Aktiv-Passiv-Modell durchführen, befolgen Sie das Entwurfsmuster Bereitstellungsstempel , um sicherzustellen, dass Sie Ihre Workload wiederholbar und skalierbar bereitstellen. Bereitstellungsstempel sind die Gruppierungen von Ressourcen, die erforderlich sind, um Ihre Workload an eine bestimmte Teilmenge Ihrer Kunden bereitzustellen. Die Teilmenge kann z. B. eine regionale Teilmenge oder eine Teilmenge mit denselben Datenschutzanforderungen wie Ihre Workload sein. Stellen Sie sich jeden Stempel als Skalierungseinheit vor, die Sie duplizieren können, um Ihre Workload horizontal zu skalieren oder blaugrüne Bereitstellungen durchzuführen. Entwerfen Sie Ihre Workload mit Bereitstellungsstempeln, um Ihre Aktiv-Aktiv- oder Aktiv-Passiv-Implementierung für Resilienz und Verwaltungsaufwand zu optimieren. Die Planung der horizontalen Hochskalierung in mehreren Regionen ist auch wichtig, um potenzielle temporäre Ressourcenkapazitätseinschränkungen in einer Region zu überwinden.

Verfügbarkeitszonen in Azure-Regionen

Unabhängig davon, ob Sie ein Aktiv-Aktiv- oder ein Aktiv-Passiv-Design bereitstellen, nutzen Sie Verfügbarkeitszonen innerhalb der aktiven Regionen, um Ihre Resilienz vollständig zu optimieren. Viele Azure-Regionen bieten mehrere Verfügbarkeitszonen, bei denen es sich um getrennte Gruppen von Rechenzentren innerhalb einer Region handelt. Abhängig vom Azure-Dienst können Sie Verfügbarkeitszonen nutzen, indem Sie Elemente Ihrer Workload redundant zonenübergreifend bereitstellen oder Elemente an bestimmte Zonen anheften. Weitere Informationen finden Sie unter Empfehlungen für die Verwendung von Verfügbarkeitszonen und Regionen.

Leitfaden zur Infrastrukturebene

Computeressourcen

  • Wählen Sie den geeigneten Computedienst für Ihre Workload aus. Abhängig vom Typ der Workload, die Sie entwerfen, stehen möglicherweise mehrere Optionen zur Verfügung. Untersuchen Sie die verfügbaren Dienste, und ermitteln Sie, welche Arten von Workloads für einen bestimmten Computedienst am besten funktionieren. Sap-Workloads eignen sich beispielsweise in der Regel am besten für IaaS-Computedienste (Infrastructure-as-a-Service). Legen Sie für eine Containeranwendung fest, welche spezifischen Funktionen Sie steuern müssen, um zu bestimmen, ob Azure Kubernetes Service (AKS) oder eine PaaS-Lösung (Platform-as-a-Service) verwendet werden soll. Ihre Cloudplattform verwaltet einen PaaS-Dienst vollständig.

  • Verwenden Sie PaaS-Computeoptionen, wenn es Ihre Anforderungen zulassen. Azure verwaltet PaaS-Dienste vollständig, wodurch Ihr Verwaltungsaufwand verringert wird, und es ist ein dokumentierter Grad an Redundanz integriert.

  • Verwenden Sie Azure Virtual Machine Scale Sets, wenn Sie virtuelle Computer (VMs) bereitstellen müssen. Mit Virtual Machine Scale Sets können Sie Ihre Computeressourcen automatisch gleichmäßig auf Verfügbarkeitszonen verteilen.

  • Behalten Sie ihre Computeebene sauber eines beliebigen Zustands bei, da einzelne Knoten, die Anforderungen verarbeiten, jederzeit gelöscht, fehlerhaft oder ersetzt werden können.

  • Verwenden Sie nach Möglichkeit zonenredundante Dienste, um eine höhere Resilienz zu gewährleisten, ohne ihren Betriebsaufwand zu erhöhen.

  • Überbereitstellung wichtiger Ressourcen, um Fehler redundanter Instanzen zu minimieren, auch vor Beginn der automatischen Skalierung, sodass das System nach einem Komponentenfehler weiterhin funktioniert. Berechnen Sie die akzeptable Auswirkung eines Fehlers, wenn Sie die Überbereitstellung in Ihren Redundanzentwurf integrieren. Wie bei Ihrem Redundanzentscheidungsprozess bestimmen Ihre Zuverlässigkeitsziele und finanziellen Kompromissentscheidungen den Umfang, in dem Sie durch Überbereitstellung freie Kapazität hinzufügen. Die Überbereitstellung bezieht sich speziell auf horizontales Hochskalieren, was bedeutet, dass zusätzliche Instanzen eines bestimmten Computeressourcentyps hinzugefügt werden, anstatt die Computefunktionen einzelner instance zu erhöhen. Beispielsweise, wenn Sie einen virtuellen Computer von einer SKU mit niedrigerer Ebene in eine SKU mit höherer Ebene ändern.

  • Stellen Sie IaaS-Dienste manuell oder über Automatisierung in jeder Verfügbarkeitszone oder Region bereit, in der Sie Ihre Lösung implementieren möchten. Einige PaaS-Dienste verfügen über integrierte Funktionen, die automatisch über Verfügbarkeitszonen und Regionen hinweg repliziert werden.

Datenressourcen

  • Bestimmen Sie, ob die synchrone oder asynchrone Datenreplikation für die Funktionalität Ihrer Workload erforderlich ist. Informationen zu dieser Bestimmung finden Sie unter Empfehlungen für die Verwendung von Verfügbarkeitszonen und Regionen.

  • Berücksichtigen Sie die Wachstumsrate Ihrer Daten. Planen Sie für die Kapazitätsplanung das Datenwachstum, die Datenaufbewahrung und die Archivierung, um sicherzustellen, dass Ihre Zuverlässigkeitsanforderungen erfüllt werden, wenn die Datenmenge in Ihrer Lösung zunimmt.  

  • Verteilen Sie Daten geografisch, wie von Ihrem Dienst unterstützt, um die Auswirkungen von geografisch lokalisierten Fehlern zu minimieren.

  • Replizieren Von Daten über geografische Regionen hinweg, um Resilienz bei regionalen Ausfällen und schwerwiegenden Ausfällen zu gewährleisten.

  • Automatisieren des Failovers nach einem Datenbankfehler instance. Sie können das automatisierte Failover in mehreren Azure PaaS-Datendiensten konfigurieren. Für Datenspeicher, die Schreibvorgänge in mehreren Regionen unterstützen, wie Azure Cosmos DB, ist kein automatisiertes Failover erforderlich. Weitere Informationen finden Sie unter Empfehlungen zum Entwerfen einer Strategie für die Notfallwiederherstellung.

  • Verwenden Sie den besten Datenspeicher für Ihre Daten. Nutzen Sie mehrfarbige Persistenz oder Lösungen, die eine Mischung aus Datenspeichertechnologien verwenden. Daten umfassen mehr als nur persistente Anwendungsdaten. Daten umfassen auch Anwendungsprotokolle, Ereignisse, Nachrichten und Caches.

  • Berücksichtigen Sie Datenkonsistenzanforderungen, und verwenden Sie die letztendliche Konsistenz , wenn die Anforderungen dies zulassen. Wenn Daten verteilt werden, verwenden Sie eine geeignete Koordinierung, um garantien für starke Konsistenz zu erzwingen. Die Koordination kann Ihren Durchsatz reduzieren und Ihre Systeme eng gekoppelt machen, wodurch sie brüchiger werden können. Wenn ein Vorgang beispielsweise zwei Datenbanken aktualisiert, anstatt ihn in einen einzelnen Transaktionsbereich zu legen, ist es besser, wenn das System die letztendliche Konsistenz berücksichtigen kann.

  • Partitionieren Sie Daten für die Verfügbarkeit. Die Datenbankpartitionierung verbessert die Skalierbarkeit und kann auch die Verfügbarkeit verbessern. Wenn ein Shard ausfällt, sind die anderen Shards weiterhin erreichbar. Ein Fehler in einem Shard stört nur eine Teilmenge der gesamten Transaktionen.

  • Wenn Sharding keine Option ist, können Sie das CQRS-Muster (Command and Query Responsibility Segregation) verwenden, um Ihre Lese-/Schreib- und schreibgeschützten Datenmodelle zu trennen. Fügen Sie mehr redundante schreibgeschützte Datenbankinstanzen hinzu, um mehr Resilienz zu gewährleisten.  

  • Verstehen der integrierten Replikations- und Redundanzfunktionen der zustandsbehafteten Plattformdienste, die Sie verwenden. Informationen zu spezifischen Redundanzfunktionen zustandsbehafteter Datendienste finden Sie unter Verwandte Links.

Netzwerk

  • Entscheiden Sie sich für eine zuverlässige und skalierbare Netzwerktopologie. Verwenden Sie ein Hub-and-Spoke-Modell oder ein Azure Virtual WAN-Modell, um Ihre Cloudinfrastruktur in logischen Mustern zu organisieren, die Das Erstellen und Skalieren Ihres Redundanzdesigns vereinfachen.

  • Wählen Sie den entsprechenden Netzwerkdienst aus, um Anforderungen innerhalb oder regionenübergreifend auszugleichen und umzuleiten. Verwenden Sie nach Möglichkeit globale oder zonenredundante Lastenausgleichsdienste, um Ihre Zuverlässigkeitsziele zu erreichen.

  • Stellen Sie sicher, dass Sie genügend IP-Adressraum in Ihren virtuellen Netzwerken und Subnetzen zugewiesen haben, um die geplante Nutzung zu berücksichtigen, einschließlich der Anforderungen an die horizontale Skalierung.

  • Stellen Sie sicher, dass die Anwendung innerhalb der Portgrenzwerte der ausgewählten Anwendungshostingplattform skaliert werden kann. Wenn eine Anwendung mehrere ausgehende TCP- oder UDP-Verbindungen initiiert, kann sie alle verfügbaren Ports ausschöpfen und eine schlechte Anwendungsleistung verursachen.

  • Wählen Sie SKUs aus, und konfigurieren Sie Netzwerkdienste, die Ihre Bandbreiten- und Verfügbarkeitsanforderungen erfüllen können. Der Durchsatz eines VPN-Gateways variiert je nach SKU. Die Unterstützung für Zonenredundanz ist nur für einige Lastenausgleichs-SKUs verfügbar.

  • Stellen Sie sicher, dass Ihr Design für die Behandlung von DNS mit Fokus auf Resilienz erstellt wird und redundante Infrastruktur unterstützt.

Azure-Erleichterung

Die Azure-Plattform hilft Ihnen dabei, die Resilienz Ihrer Workload zu optimieren und Redundanz hinzuzufügen:

DNS-spezifische Azure-Erleichterung

  • Verwenden Sie für interne Namensauflösungsszenarien private Azure DNS-Zonen, die über integrierte Zonenredundanz und Georedundanz verfügen. Weitere Informationen finden Sie unter Resilienz privater Azure DNS-Zonen.

  • Verwenden Sie für externe Namensauflösungsszenarien öffentliche Azure DNS-Zonen, die über integrierte Zonenredundanz und Georedundanz verfügen.

  • Die öffentlichen und privaten Azure-DNS-Dienste sind globale Dienste, die bei regionalen Ausfällen widerstandsfähig sind, da Zonendaten global verfügbar sind.

  • Verwenden Sie für hybride Namensauflösungsszenarien zwischen lokalen und Cloudumgebungen den privaten Azure DNS-Resolver. Dieser Dienst unterstützt Zonenredundanz, wenn sich Ihre Workload in einer Region befindet, die Verfügbarkeitszonen unterstützt. Ein zonenweiter Ausfall erfordert keine Aktion während der Zonenwiederherstellung. Der Dienst heilt sich automatisch selbst und glich aus, um die fehlerfreie Zone zu nutzen. Weitere Informationen finden Sie unter Resilienz in Azure DNS Private Resolver.

  • Stellen Sie zwei oder mehr private Azure DNS-Resolver in verschiedenen Regionen bereit, um einen single point of failure zu vermeiden und eine stabilere hybride Namensauflösung in verschiedenen Regionen zu erzielen. In einem Szenario mit bedingter Weiterleitung wird ein DNS-Failover durch Zuweisen eines Resolvers als primären DNS-Server erreicht. Weisen Sie den anderen Resolver in einer anderen Region als sekundären DNS-Server zu. Weitere Informationen finden Sie unter Einrichten eines DNS-Failovers mithilfe privater Resolver.

Beispiel

Ein Beispiel für eine redundante Bereitstellung mit mehreren Regionen finden Sie unter Baseline hochverfügbare zonenredundante Webanwendung.

Das folgende Diagramm zeigt ein weiteres Beispiel:

Diagramm, das die Architektur der Referenzimplementierung zeigt.

Weitere Informationen zur Redundanz finden Sie in den folgenden Ressourcen:

Prüfliste für zuverlässigkeit

Weitere Informationen finden Sie im vollständigen Satz von Empfehlungen.