Empfehlungen für das Entwerfen von Redundanz

Gilt für diese Empfehlung für die Zuverlässigkeitsprüfliste des Azure Well-Architected Framework:

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

Verwandte Leitfäden: Hoch verfügbares multiregionales Design | mithilfe von Verfügbarkeitszonen und Regionen

In diesem Leitfaden werden die Empfehlungen zum Hinzufügen von Redundanz in kritischen Flüssen auf unterschiedlichen Workloadebenen beschrieben, wodurch die Resilienz optimiert wird. Erfüllen Sie die Anforderungen Ihrer definierten Zuverlässigkeitsziele, indem Sie die richtigen Redundanzstufen auf Ihre Compute-, Daten-, Netzwerk- und anderen Infrastrukturebenen anwenden. Wenden Sie diese Redundanz an, um Ihrer Arbeitsauslastung eine starke, zuverlässige Grundlage zu geben, auf der Sie aufbauen können. 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ß für die Synchronisierung oder Synchronisierung eines bestimmten Datasets über mehrere Speicher hinweg.
Partitionierung Der Vorgang 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 zu enthalten, 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 über Ihre kritischen Flüsse und Zuverlässigkeitsziele identifiziert haben, um fundierte Entscheidungen zu treffen, die für die Redundanz der einzelnen Abläufe erforderlich sind.

Beispielsweise können mehrere Webserverknoten gleichzeitig ausgeführt werden. Die Kritischität des von ihnen unterstützten Flusses erfordert möglicherweise, dass alle Replikate vorhanden sind, die für die Annahme von Datenverkehr bereit sind, wenn ein Problem vorliegt, das sich auf den gesamten Pool auswirkt, z. B. einen regionalen Ausfall. Da große Probleme selten sind und es kostspielig ist, eine ganze Reihe von Replikaten bereitzustellen, stellen Sie möglicherweise eine begrenzte Anzahl von Replikaten bereit, sodass der Fluss in einem beeinträchtigten Zustand arbeitet, bis Sie das Problem beheben.

Wenn Sie redundanz im Kontext der Leistungseffizienz entwerfen, verteilen Sie die Last über mehrere redundante Knoten, um sicherzustellen, dass jeder Knoten optimal ausgeführt wird. Bauen Sie im Zusammenhang mit zuverlässigkeitsfähiger Kapazität auf, um Fehler oder Fehlfunktionen zu absorbieren, die sich auf einen oder mehrere Knoten auswirken. Stellen Sie sicher, dass die Ersatzkapazität Fehler für die gesamte Zeit aufnehmen kann, die zum Wiederherstellen der betroffenen Knoten erforderlich ist. Mit dieser Unterscheidung müssen beide Strategien zusammenarbeiten. Wenn Sie datenverkehrsübergreifend auf zwei Knoten für die Leistung verteilen und beide bei einer Auslastung von 60 Prozent ausgeführt werden und ein Knoten fehlschlägt, besteht das Risiko, dass der verbleibende Knoten überfordert wird, da er nicht mit 120 Prozent ausgeführt werden kann. Verteilen Sie die Auslastung mit einem anderen Knoten, um sicherzustellen, dass Ihre Leistungs- und Zuverlässigkeitsziele eingehalten werden.

Tradeoffs:

  • Mehr Arbeitsauslastungsredundanz entspricht mehr Kosten. Überlegen Sie sorgfältig, Redundanz hinzuzufügen und ihre Architektur regelmäßig zu überprüfen, um sicherzustellen, dass Sie Kosten verwalten, insbesondere wenn Sie überprovisionieren. Wenn Sie die Überprovisionierung als Resilienzstrategie verwenden, wägen Sie sie mit einer gut definierten Skalierungsstrategie ab, um die Kostenineffizienzen zu minimieren.
  • Es kann Leistungseinbußen geben, wenn Sie in einem hohen Grad an Redundanz aufbauen. Beispielsweise können Ressourcen, die sich über Verfügbarkeitszonen oder Regionen erstrecken, die Leistung beeinträchtigen, da Sie Datenverkehr über verbindungen mit hoher Latenz zwischen redundanten Ressourcen senden müssen, z. B. Webserver oder Datenbankinstanzen.
  • Unterschiedliche Abläufe innerhalb derselben Workload können unterschiedliche Zuverlässigkeitsanforderungen aufweisen. Flussspezifische Redundanzdesigns können die Komplexität in das Gesamtdesign einbringen.

Redundantes Architekturdesign

Berücksichtigen Sie zwei Ansätze, wenn Sie eine redundante Architektur entwerfen: aktiv oder aktiv passiv. Wählen Sie Ihren Ansatz abhängig von der Kritischität des Benutzerflusses und des Systemflusses aus, den die Infrastrukturkomponenten unterstützen. In Bezug auf Zuverlässigkeit hilft Ihnen ein mehrregionenaktives Design dabei, das höchste Maß an Zuverlässigkeit zu erreichen, aber es ist wesentlich teurer als ein aktiv-passives Design. Die Entscheidung der geeigneten geografischen Regionen wird zur nächsten kritischen Wahl. Sie können diese Entwurfsansätze auch für eine einzelne Region mithilfe von Verfügbarkeitszonen verwenden. Weitere Informationen finden Sie unter "Empfehlungen für hochverwendbares Design mit mehreren Regionen".

Bereitstellungsstempel und Skalierungseinheiten

Unabhängig davon, ob Sie ein aktives oder passives Modell bereitstellen, befolgen Sie das Entwurfsmuster für Bereitstellungsstempel, um sicherzustellen, dass Sie Ihre Workload auf wiederholbare, skalierbare Weise bereitstellen. Bereitstellungsstempel sind die Gruppierungen von Ressourcen, die erforderlich sind, um Ihre Workload für eine bestimmte Teilmenge Ihrer Kund*innen bereitzustellen. Bei der Teilmenge kann es sich beispielsweise um eine regionale Teilmenge oder um eine Teilmenge mit denselben Datenschutzanforderungen wie Ihre Workload handeln. Stellen Sie sich jeden Stempel als eine Skalierungseinheit vor, die Sie duplizieren können, um Ihre Arbeitsauslastung horizontal zu skalieren oder blaugrüne Bereitstellungen durchzuführen. Entwerfen Sie Ihre Arbeitsauslastung mit Bereitstellungsstempeln, um Ihre aktive oder passive Implementierung für Resilienz und Verwaltungslasten zu optimieren. Die Planung des Skalierungsmaßstabs für mehrere 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 aktives oder passives Design bereitstellen, nutzen Sie die Verfügbarkeitszonen innerhalb der aktiven Regionen, um Ihre Resilienz vollständig zu optimieren. Viele Azure-Regionen bieten mehrere Verfügbarkeitszonen, die getrennte Gruppen von Rechenzentren innerhalb einer Region sind. Je nach Azure-Dienst können Sie die Verfügbarkeitszonen nutzen, indem Sie Elemente Ihrer Workload redundant über Zonen bereitstellen oder Elemente an bestimmte Zonen anheften. Weitere Informationen finden Sie unter Empfehlungen für die Verwendung von Verfügbarkeitszonen und Regionen.

Implementieren von Zonenredundanz für Computeressourcen

  • Wählen Sie den entsprechenden Computedienst für Ihre Workload aus. Je nachdem, welche Art von Workload Sie entwerfen, stehen möglicherweise mehrere Optionen zur Verfügung. Recherchieren Sie die verfügbaren Dienste, und verstehen Sie, welche Arten von Workloads für einen bestimmten Computedienst am besten funktionieren. Sap-Workloads eignen sich z. B. in der Regel am besten für Die Infrastruktur as a Service (IaaS)-Computedienste. Ermitteln Sie für eine containerisierte Anwendung die spezifische Funktionalität, über die Sie die Kontrolle haben müssen, um zu bestimmen, ob Azure Kubernetes Service (AKS) oder eine Plattform als Dienstlösung (PaaS) verwendet werden soll. Ihre Cloudplattform verwaltet einen PaaS-Dienst vollständig.

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

  • Verwenden Sie Skalierungsgruppen für virtuelle Azure-Computer, wenn Sie virtuelle Computer (VMs) bereitstellen müssen. Mit Skalierungssätzen für virtuelle Computer können Sie Ihre Berechnung automatisch gleichmäßig über Verfügbarkeitszonen verteilen.

  • Sorgen Sie dafür, dass die Computeschicht von jedem Zustand sauber bleibt, da einzelne Knoten, die Anforderungen erfüllen, jederzeit gelöscht, fehlerhaft oder ersetzt werden können.

  • Verwenden Sie zonenredundante Dienste, wenn möglich, um höhere Resilienz bereitzustellen, ohne ihre betriebliche Belastung zu erhöhen.

  • Überschreiben Sie kritische Ressourcen, um Fehler redundanter Instanzen zu mindern, auch bevor die automatische Skalierung beginnt, sodass das System nach einem Komponentenausfall weiterhin ausgeführt wird. Berechnen Sie den akzeptablen Effekt eines Fehlers, wenn Sie die Überteilung in Ihren Redundanzentwurf integrieren. Wie bei Ihrem Redundanzentscheidungsprozess bestimmen Ihre Zuverlässigkeitsziele und finanzielle Kompromissentscheidungen den Umfang, in dem Sie mit überprovisionierender Kapazität zusätzliche Kapazität hinzufügen. Die Außerkraftsetzung bezieht sich speziell auf das Skalieren, was bedeutet, dass zusätzliche Instanzen eines bestimmten Computeressourcentyps hinzugefügt werden, anstatt die Computefunktionen einer einzelnen Instanz zu erhöhen. Wenn Sie z. B. 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 repliziert werden.

Implementieren von Zonenredundanz für Datenressourcen

  • Ermitteln Sie, ob die synchrone oder asynchrone Datenreplikation für die Funktionalität Ihrer Workload erforderlich ist. Informationen zur Festlegung 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 datenwachstum, die Datenaufbewahrung und die Archivierung, um sicherzustellen, dass Ihre Zuverlässigkeitsanforderungen erfüllt sind, da die Datenmenge in Ihrer Lösung steigt.  

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

  • Replizieren Sie Daten in geografischen Regionen, um Ausfallsicherheit für regionale Ausfälle und katastrophale Fehler bereitzustellen.

  • Automatisieren Sie das Failover nach einem Datenbankinstanzfehler. Sie können automatisiertes Failover in mehreren Azure PaaS-Datendiensten konfigurieren. Für Datenspeicher, die Schreibvorgänge mit mehreren Regionen unterstützen, wie Azure Cosmos DB, ist kein automatisiertes Failover erforderlich. Weitere Informationen finden Sie unter Empfehlungen für den Entwurf einer Disaster-Recovery-Strategie.

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

  • Berücksichtigen Sie die Anforderungen an die Datenkonsistenz, und verwenden Sie ggf. die Konsistenz , wenn anforderungen dies zulassen. Wenn Daten verteilt werden, verwenden Sie geeignete Koordination, um starke Konsistenzgarantien durchzusetzen. Die Koordination kann ihren Durchsatz reduzieren und Ihre Systeme eng miteinander verkoppeln, wodurch sie spröd werden können. Wenn ein Vorgang z. B. zwei Datenbanken aktualisiert, anstatt ihn in einen einzelnen Transaktionsbereich einzufügen, ist es besser, wenn das System die mögliche Konsistenz berücksichtigen kann.

  • Partitionsdaten für die Verfügbarkeit. Die Datenbankpartitionierung verbessert die Skalierbarkeit und kann auch die Verfügbarkeit verbessern. Wenn ein Shard abfällt, sind die anderen Shards immer noch 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 schreibgeschützten und schreibgeschützten Datenmodelle zu trennen. Fügen Sie redundante schreibgeschützte Datenbankinstanzen hinzu, um mehr Resilienz bereitzustellen.  

  • Grundlegendes zu den integrierten Replikations- und Redundanzfunktionen der zustandsbehafteten Plattformdienste, die Sie verwenden. Spezifische Redundanzfunktionen von zustandsbehafteten Datendiensten finden Sie unter "Verwandte Links".

Implementieren von Zonenredundanz für Netzwerkressourcen

  • Entscheiden Sie sich für eine zuverlässige und skalierbare Netzwerktopologie. Verwenden Sie ein Hub-and-Spoke-Modell oder ein virtuelles AZURE-WAN-Modell, um Ihre Cloudinfrastruktur in logischen Mustern zu organisieren, mit denen Ihr Redundanzdesign einfacher erstellt und skaliert werden kann.

  • Wählen Sie den entsprechenden Netzwerkdienst aus, um Anforderungen innerhalb oder über Regionen hinweg abzugleichen und umzuleiten. Nutzen Sie wenn möglich globale oder zonenredundante Lastausgleichsdienste, um Ihre Zuverlässigkeitsziele zu erreichen.

  • Stellen Sie sicher, dass Sie ausreichenden IP-Adressraum in Ihren virtuellen Netzwerken und Subnetzen zugewiesen haben, um die geplante Nutzung zu berücksichtigen, einschließlich der Skalierungsanforderungen.

  • 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 zu einer schlechten Anwendungsleistung führen.

  • 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. Unterstützung für Zonenredundanz ist nur für einige SKUs für den Lastenausgleich verfügbar.

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

Azure-Erleichterung

Die Azure-Plattform hilft Ihnen, die Ausfallsicherheit Ihrer Workload zu optimieren und Redundanz hinzuzufügen, indem Sie:

DNS-spezifische Azure-Erleichterung

  • Verwenden Sie für Szenarien mit interner Namensauflösung Azure DNS private Zonen, die integrierte Zonenredundanz und Georedundanz aufweisen. Weitere Informationen finden Sie unter Ausfallsicherheit der privaten Azure DNS-Zone.

  • Verwenden Sie für Szenarien mit externer Namensauflösung öffentliche Azure DNS-Zonen, die integrierte Zonenredundanz und Georedundanz aufweisen.

  • Die öffentlichen und privaten Azure DNS-Dienste sind globale Dienste, die für regionale Ausfälle widerstandsfähig sind, da Zonendaten global verfügbar sind.

  • Verwenden Sie für Szenarien mit hybrider Namensauflösung zwischen lokalen und Cloudumgebungen Azure DNS Private Resolver. Dieser Dienst unterstützt Zonenredundanz, wenn sich Ihre Workload in einer Region befindet, die Verfügbarkeitszonen unterstützt. Für einen zonenweiten Ausfall ist während der Zonenwiederherstellung keine Aktion erforderlich. Der Dienst heilt sich automatisch selbst und rebalancet aus, um die gesunde Zone zu nutzen. Weitere Informationen finden Sie unter Resilienz in Azure DNS Private Resolver.

  • Um einen einzelnen Fehlerpunkt zu vermeiden und eine stabilere Hybridnamenauflösung über Regionen hinweg zu erzielen, stellen Sie zwei oder mehr private Azure DNS-Resolver in verschiedenen Regionen bereit. Dns-Failover wird in einem Szenario für die bedingte Weiterleitung erreicht, indem ein Resolver als primärer DNS-Server zugewiesen wird. 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 hochverwendbar zone-redundante 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:

Zuverlässigkeitsprüfliste

Lesen Sie den vollständigen Satz von Empfehlungen.