Ausführen einer Webanwendung in mehreren Azure-Regionen für HochverfügbarkeitRun a web application in multiple Azure regions for high availability

Diese Referenzarchitektur zeigt, wie Sie eine Azure App Service-Anwendung in mehreren Regionen ausführen, um Hochverfügbarkeit zu erzielen.This reference architecture shows how to run an Azure App Service application in multiple regions to achieve high availability.

Referenzarchitektur für eine Webanwendung mit Hochverfügbarkeit

Laden Sie eine Visio-Datei dieser Architektur herunter.Download a Visio file of this architecture.

ArchitectureArchitecture

Diese Architektur basiert auf der in Verbessern der Skalierbarkeit in einer Webanwendung gezeigten Architektur.This architecture builds on the one shown in Improve scalability in a web application. Im Folgenden werden die Hauptunterschiede erläutert:The main differences are:

  • Primäre und sekundäre Regionen.Primary and secondary regions. Diese Architektur nutzt zwei Regionen, um eine höhere Verfügbarkeit zu erreichen.This architecture uses two regions to achieve higher availability. Die Anwendung wird in jeder Region bereitgestellt.The application is deployed to each region. Während des normalen Betriebs wird Netzwerkdatenverkehr an die primäre Region weitergeleitet.During normal operations, network traffic is routed to the primary region. Wenn die primäre Region nicht verfügbar ist, wird der Datenverkehr an die sekundäre Region umgeleitet.If the primary region becomes unavailable, traffic is routed to the secondary region.
  • Front Door.Front Door. Front Door leitet eingehende Anforderungen an die primäre Region weiter.Front Door routes incoming requests to the primary region. Wenn die in dieser Region ausgeführte Anwendung nicht verfügbar ist, führt Front Door ein Failover zur sekundären Region aus.If the application running that region becomes unavailable, Front Door fails over to the secondary region.
  • Georeplikation von SQL-Datenbank und/oder Cosmos DB.Geo-replication of SQL Database and/or Cosmos DB.

Eine Architektur mit mehreren Regionen kann eine höhere Verfügbarkeit als eine Bereitstellung in einer einzelnen Region bieten.A multi-region architecture can provide higher availability than deploying to a single region. Wenn ein regionaler Ausfall die primäre Region beeinträchtigt, können Sie mit Front Door ein Failover zur sekundären Region ausführen.If a regional outage affects the primary region, you can use Front Door to fail over to the secondary region. Diese Architektur kann auch hilfreich sein, wenn bei einem einzelnen Subsystem der Anwendung ein Fehler auftritt.This architecture can also help if an individual subsystem of the application fails.

Es gibt mehrere allgemeine Vorgehensweisen für das Erreichen von Hochverfügbarkeit mit mehreren Regionen:There are several general approaches to achieving high availability across regions:

  • Aktiv/passiv mit Hot Standby.Active/passive with hot standby. Der Datenverkehr wird an eine Region weitergeleitet, während die andere im Hot Standby wartet.Traffic goes to one region, while the other waits on hot standby. Hot Standby (unmittelbar betriebsbereit) bedeutet, dass die virtuellen Computer in der sekundären Region jederzeit zugeordnet sind und ausgeführt werden.Hot standby means the VMs in the secondary region are allocated and running at all times.
  • Aktiv/passiv mit Cold Standby.Active/passive with cold standby. Der Datenverkehr wird an eine Region weitergeleitet, während die andere im Cold Standby wartet.Traffic goes to one region, while the other waits on cold standby. Cold Standby (verzögert betriebsbereit) bedeutet, dass die virtuellen Computer in der sekundären Region erst zugewiesen werden, wenn sie für das Failover benötigt werden.Cold standby means the VMs in the secondary region are not allocated until needed for failover. Dieser Ansatz erfordert weniger Ausführungszeit, es dauert aber im Allgemeinen länger, bis bei einem Ausfall alle Komponenten online geschaltet sind.This approach costs less to run, but will generally take longer to come online during a failure.
  • Aktiv/aktiv.Active/active. Beide Regionen sind aktiv, und Anforderungen werden per Lastenausgleich zwischen ihnen verteilt.Both regions are active, and requests are load balanced between them. Wenn eine Region nicht verfügbar ist, wird sie aus der Rotation entfernt.If one region becomes unavailable, it is taken out of rotation.

In dieser Referenzarchitektur liegt der Fokus auf aktiv/passiv mit Hot Standby, wobei Front Door für das Failover verwendet wird.This reference architecture focuses on active/passive with hot standby, using Front Door for failover.

EmpfehlungenRecommendations

Ihre Anforderungen können von der hier beschriebenen Architektur abweichen.Your requirements might differ from the architecture described here. Verwenden Sie die Empfehlungen in diesem Abschnitt als Ausgangspunkt.Use the recommendations in this section as a starting point.

RegionspaareRegional pairing

Jede Azure-Region ist mit einer anderen Region innerhalb desselben Gebiets gepaart.Each Azure region is paired with another region within the same geography. Sie wählen im Allgemeinen Regionen aus dem gleichen Regionspaar aus (z.B. „USA, Osten 2“ und „USA, Mitte“).In general, choose regions from the same regional pair (for example, East US 2 and Central US). Das bietet die folgenden Vorteile:Benefits of doing so include:

  • Bei einem umfassenden Ausfall wird die Wiederherstellung mindestens einer Region aus jedem Paar priorisiert.If there is a broad outage, recovery of at least one region out of every pair is prioritized.
  • Geplante Azure-Systemupdates werden in Regionspaaren nacheinander ausgeführt, um mögliche Ausfallzeiten zu minimieren.Planned Azure system updates are rolled out to paired regions sequentially to minimize possible downtime.
  • In den meisten Fällen befinden sich Regionspaare innerhalb desselben geografischen Gebiets, um spezifische regionale Anforderungen zu erfüllen.In most cases, regional pairs reside within the same geography to meet data residency requirements.

Sie sollten allerdings sicherstellen, dass beide Regionen alle Azure-Dienste, die für Ihre Anwendung erforderlich sind, unterstützen.However, make sure that both regions support all of the Azure services needed for your application. Weitere Informationen finden Sie unter Dienste nach Region.See Services by region. Weitere Informationen zu Regionspaaren finden Sie unter Geschäftskontinuität und Notfallwiederherstellung: Azure-Regionspaare.For more information about regional pairs, see Business continuity and disaster recovery (BCDR): Azure Paired Regions.

RessourcengruppenResource groups

Sie sollten die primäre Region, die sekundäre Region und Traffic Manager unterschiedlichen Ressourcengruppen zuordnen.Consider placing the primary region, secondary region, and Traffic Manager into separate resource groups. So können Sie die in jeder Region bereitgestellten Ressourcen als Einzelsammlungen verwalten.This lets you manage the resources deployed to each region as a single collection.

Front Door-KonfigurationFront Door configuration

Routing:Routing. Front Door unterstützt verschiedene Routingmechanismen.Front Door supports several routing mechanisms. Verwenden Sie für das in diesem Artikel beschriebene Szenario das Routing nach Priorität.For the scenario described in this article, use priority routing. Bei dieser Einstellung sendet Front Door alle Anforderungen an die primäre Region, bis der Endpunkt für diese Region nicht mehr erreichbar ist.With this setting, Front Door sends all requests to the primary region unless the endpoint for that region becomes unreachable. Zu diesem Zeitpunkt wird automatisch ein Failover zur sekundären Region ausgeführt.At that point, it automatically fails over to the secondary region. Konfigurieren Sie den Back-End-Pool mit unterschiedlichen Prioritätswerten: 1 für die aktive Region und 2 oder niedriger für die Standbyregion oder passive Region.Set the backend pool with different priority values, 1 for the active region and 2 or lower for the standby or passive region.

Integritätstest:Health probe. Front Door verwendet einen HTTP-Test (oder HTTPS-Test), um die Verfügbarkeit jedes Back-Ends zu überwachen.Front Door uses an HTTP (or HTTPS) probe to monitor the availability of each back end. Der Test meldet Front Door seinen erfolgreichen oder fehlerhaften Abschluss, damit ggf. ein Failover zur sekundären Region ausgeführt werden kann.The probe gives Front Door a pass/fail test for failing over to the secondary region. Dies erfolgt durch das Senden einer Anforderung an einen angegebenen URL-Pfad.It works by sending a request to a specified URL path. Wenn der Test innerhalb des Zeitlimits eine andere Antwort als „200“ erhält, löst er einen Fehler aus.If it gets a non-200 response within a timeout period, the probe fails. Sie können die Häufigkeit des Integritätstests, die Anzahl der erforderlichen Stichproben für die Bewertung sowie die Anzahl der erforderlichen Stichproben konfigurieren, die erforderlich sind, damit das Back-End als fehlerfrei markiert werden kann.You can configure the health probe frequency, number of samples required for evaluation, and the number of successful samples required for the backend to be marked as healthy. Wenn Front Door das Back-End als beeinträchtigt kennzeichnet, wird ein Failover auf das andere Back-End ausgeführt.If Front Door marks the backend as degraded, it fails over to the other backend. Einzelheiten hierzu finden Sie unter Integritätstests.For details, see Health Probes.

Es hat sich bewährt, einen Integritätstestpfad im Anwendungs-Back-End zu erstellen, der die Gesamtintegrität der Anwendung meldet.As a best practice, create a health probe path in your application backend that reports the overall health of the application. Von diesem Integritätstest sollten alle wichtigen Abhängigkeiten überprüft werden. Dazu gehören z. B. App Service-Apps, die Speicherwarteschlange und SQL-Datenbank.This health probe should check critical dependencies such as the App Service apps, storage queue, and SQL Database. Andernfalls meldet der Test eventuell ein fehlerfreies Back-End, obwohl wichtige Teile der Anwendung fehlerhaft sind.Otherwise, the probe might report a healthy backend when critical parts of the application are actually failing. Andererseits sollten Sie den Integritätstest nicht zum Überprüfen von Diensten mit einer niedrigeren Priorität verwenden.On the other hand, don't use the health probe to check lower priority services. Wenn beispielsweise ein E-Mail-Dienst ausfällt, kann die Anwendung zu einem zweiten Anbieter wechseln oder die E-Mails einfach später senden.For example, if an email service goes down the application can switch to a second provider or just send emails later. Weitere Informationen zu diesem Entwurfsmuster finden Sie unter Muster für Überwachung der Integrität von Endpunkten.For further discussion of this design pattern, see Health Endpoint Monitoring Pattern.

SQL-DatenbankSQL Database

Verwenden Sie die aktive Georeplikation, um ein lesbares sekundäres Replikat in einer anderen Region zu erstellen.Use Active Geo-Replication to create a readable secondary replica in a different region. Sie können bis zu vier lesbare sekundäre Replikate nutzen.You can have up to four readable secondary replicas. Führen Sie ein Failover zu einer sekundären Datenbank aus, wenn die primäre Datenbank ausfällt oder offline geschaltet werden muss.Fail over to a secondary database if your primary database fails or needs to be taken offline. Die aktive Georeplikation kann für jede Datenbank in einem beliebigen Pool für elastische Datenbanken konfiguriert werden.Active Geo-Replication can be configured for any database in any elastic database pool.

Cosmos DBCosmos DB

Cosmos DB unterstützt die regionsübergreifende Georeplikation mit Multimaster (mehrere Schreibregionen).Cosmos DB supports geo-replication across regions with multi-master (multiple write regions). Alternativ können Sie eine Region als die schreibbare Region und die andere als schreibgeschützte Replikate festlegen.Alternatively, you can designate one region as the writable region and the others as read-only replicas. Fällt eine Region aus, können Sie ein Failover ausführen, indem Sie eine andere Region als schreibbare Region festlegen.If there is a regional outage, you can fail over by selecting another region to be the write region. Das Client-SDK sendet Schreibanforderungen automatisch an die aktuell schreibbare Region, daher müssen Sie die Clientkonfiguration nach einem Failover nicht aktualisieren.The client SDK automatically sends write requests to the current write region, so you don't need to update the client configuration after a failover. Weitere Informationen finden Sie unter Globale Datenverteilung mit Azure Cosmos DB.For more information, see Global data distribution with Azure Cosmos DB.

Hinweis

Alle Replikate gehören derselben Ressourcengruppe an.All of the replicas belong to the same resource group.

StorageStorage

Bei Azure Storage verwenden Sie RA-GRS (Read-Access Geo-Redundant Storage, georedundanter Speicher mit Lesezugriff).For Azure Storage, use read-access geo-redundant storage (RA-GRS). Mit RA-GRS werden die Daten in eine sekundäre Region repliziert.With RA-GRS storage, the data is replicated to a secondary region. Sie haben über einen eigenen Endpunkt lediglich schreibgeschützten Zugriff auf die Daten in der sekundären Region.You have read-only access to the data in the secondary region through a separate endpoint. Tritt in einer Region ein Ausfall oder ein anderer Notfall ein, kann das Azure Storage-Team ein geografisches Failover zur sekundären Region ausführen.If there is a regional outage or disaster, the Azure Storage team might decide to perform a geo-failover to the secondary region. Für dieses Failover ist keine Kundenaktion erforderlich.There is no customer action required for this failover.

Erstellen Sie für Queue Storage eine Sicherungswarteschlange in der sekundären Region.For Queue storage, create a backup queue in the secondary region. Während des Failovers kann die App die Sicherungswarteschlange verwenden, bis die primäre Region wieder verfügbar ist.During failover, the app can use the backup queue until the primary region becomes available again. Auf diese Weise kann die Anwendung weiterhin neue Anforderungen verarbeiten.That way, the application can still process new requests.

Überlegungen zur Verfügbarkeit: Front DoorAvailability considerations - Front Door

Front Door führt automatisch ein Failover aus, wenn die primäre Region nicht mehr verfügbar ist.Front Door automatically fails over if the primary region becomes unavailable. Wenn Front Door ein Failover ausführt, können die Clients die Anwendung für eine bestimmte Zeit (normalerweise 20 bis 60 Sekunden) nicht erreichen.When Front Door fails over, there is a period of time (usually about 20-60 seconds) when clients cannot reach the application. Die Dauer wird durch folgende Faktoren beeinflusst:The duration is affected by the following factors:

  • Häufigkeit der Integritätstests.Frequency of health probes. Je häufiger die Integritätstests gesendet werden, desto schneller kann Front Door feststellen, dass ein Back-End ausfällt oder wieder in den fehlerfreien Zustand zurückkehrt.The more frequent the health probes are sent, the faster Front Door can detect downtime or the backend coming back healthy.
  • Konfiguration des Stichprobenumfangs.Sample size configuration. Mit dieser Konfiguration wird gesteuert, wie viele Stichproben erforderlich sind, damit der Integritätstest feststellen kann, dass das primäre Back-End nicht erreichbar ist.This configuration controls how many samples are required for the health probe to detect that the primary backend has become unreachable. Wenn dieser Wert zu niedrig ist, erhalten Sie möglicherweise falsch positive Meldungen zu zeitweiligen Problemen.If this value is too low, you could get false positives from intermittent issues.

Front Door ist eine potenzielle Fehlerquelle im System.Front Door is a possible failure point in the system. Wenn beim Dienst ein Fehler auftritt, können Clients während der Ausfallzeit nicht auf Ihre Anwendung zugreifen.If the service fails, clients cannot access your application during the downtime. In der Vereinbarung zum Servicelevel (SLA) für Front Door erfahren Sie, ob Ihre geschäftlichen Anforderungen für Hochverfügbarkeit mit Front Door allein erfüllt werden.Review the Front Door service level agreement (SLA) and determine whether using Front Door alone meets your business requirements for high availability. Wenn dies nicht der Fall ist, erwägen Sie als Alternative eine andere Verwaltungslösung für den Datenverkehr.If not, consider adding another traffic management solution as a fallback. Wenn der Front Door-Dienst fehlerhaft ist, ändern Sie die kanonischen Namensdatensätze (CNAME) im DNS, sodass sie auf die andere Verwaltungslösung für den Datenverkehr verweisen.If the Front Door service fails, change your canonical name (CNAME) records in DNS to point to the other traffic management service. Dieser Schritt muss manuell durchgeführt werden. Bis die DNS-Änderungen weitergegeben wurden, ist die Anwendung nicht verfügbar.This step must be performed manually, and your application will be unavailable until the DNS changes are propagated.

Überlegungen zur Verfügbarkeit: SQL-DatenbankAvailability Considerations - SQL Database

Die Recovery Point Objective (RPO) und die geschätzte Wiederherstellungszeit (ERT) für SQL-Datenbank sind in Übersicht über die Geschäftskontinuität mit Azure SQL-Datenbank dokumentiert.The recovery point objective (RPO) and estimated recovery time (ERT) for SQL Database are documented in Overview of business continuity with Azure SQL Database.

Überlegungen zur Verfügbarkeit: SpeicherAvailability Considerations - Storage

RA-GRS stellt permanenten Speicher bereit. Trotzdem sollten Sie verstehen, was bei einem Ausfall passieren kann:RA-GRS storage provides durable storage, but it's important to understand what can happen during an outage:

  • Tritt ein Speicherausfall auf, haben Sie für eine gewisse Zeit keinen Schreibzugriff auf die Daten.If a storage outage occurs, there will be a period of time when you don't have write-access to the data. Sie können während des Ausfalls weiterhin vom sekundären Endpunkt lesen.You can still read from the secondary endpoint during the outage.

  • Wenn sich ein regionaler Ausfall oder Notfall auf den primären Standort auswirkt und die Daten nicht wiederhergestellt werden können, kann das Azure Storage-Team ein geografisches Failover zur sekundären Region ausführen.If a regional outage or disaster affects the primary location and the data there cannot be recovered, the Azure Storage team may decide to perform a geo-failover to the secondary region.

  • Die Datenreplikation zur sekundären Region wird asynchron ausgeführt.Data replication to the secondary region is performed asynchronously. Wenn ein geografisches Failover durchgeführt wird, ist daher ein Datenverlust möglich, wenn die Daten nicht aus der primären Region wiederhergestellt werden können.Therefore, if a geo-failover is performed, some data loss is possible if the data can't be recovered from the primary region.

  • Vorübergehende Fehler, etwa Netzwerkausfälle, lösen kein Speicherfailover aus.Transient failures, such as a network outage, will not trigger a storage failover. Entwerfen Sie Ihre Anwendung flexibel gegenüber vorübergehenden Fehlern.Design your application to be resilient to transient failures. Mögliche Gegenmaßnahmen:Possible mitigations:

    • Lesen aus der sekundären Region.Read from the secondary region.
    • Wechseln Sie vorübergehend für neue Schreibvorgänge (z.B. in Warteschlangennachrichten) zu einem anderen Speicherkonto.Temporarily switch to another storage account for new write operations (for example, to queue messages).
    • Kopieren Sie Daten aus der sekundären Region in ein anderes Speicherkonto.Copy data from the secondary region to another storage account.
    • Stellen Sie eine eingeschränkte Funktionalität bereit, bis das Failback für das System ausgeführt wurde.Provide reduced functionality until the system fails back.

Weitere Informationen finden Sie unter Vorgehensweise beim Ausfall von Azure Storage.For more information, see What to do if an Azure Storage outage occurs.

Überlegungen zur Verwaltbarkeit: SQL-DatenbankManageability Considerations - SQL Database

Wenn die primäre Datenbank fehlerhaft ist, führen Sie ein manuelles Failover zur sekundären Datenbank aus.If the primary database fails, perform a manual failover to the secondary database. Weitere Informationen finden Sie unter Wiederherstellen einer Azure SQL-Datenbank oder Failover auf eine sekundäre Datenbank.See Restore an Azure SQL Database or failover to a secondary. Die sekundäre Datenbank bleibt schreibgeschützt, bis Sie ein Failover ausführen.The secondary database remains read-only until you fail over.