Freigeben über


Georeplikation in Azure Web PubSub

Unternehmenskritische Apps müssen häufig über ein stabiles Failoversystem verfügen und Benutzern näher an ihrem Standort zur Verfügung stehen. Vor der Veröffentlichung des Georeplikationsfeatures mussten Entwickler mehrere Web PubSub-Ressourcen bereitstellen und benutzerdefinierten Code schreiben, um die Kommunikation ressourcenübergreifend zu orchestrieren. Mit der Schnellkonfiguration über das Azure-Portal können Sie dieses Feature jetzt ganz einfach aktivieren.

Nutzen der Verwendung der Georeplikation

  • Resilienter gegenüber über einem regionalen Ausfall: Bei einem regionalen Ausfall werden Clients automatisch an ein fehlerfreies Replikat weitergeleitet.
  • Regionsübergreifende Kommunikation: Entwickler verwenden wie gewohnt eine Ressource mit aktivierter Georeplikation, obwohl im Hintergrund mehrere Ressourcen vorhanden sind. Die replikatübergreifende Kommunikation wird vom Dienst verarbeitet.
  • Verbesserte Netzwerkgeschwindigkeit: Geografisch verteilte Clients werden eine Verbindung mit dem nächstgelegenen Replikat herstellen. Diese Replikate kommunizieren über das globale Azure-Netzwerk-Backbone und sorgen für eine schnelle und stabile Netztechnologie.
  • Erleichterte Verwaltung. Alle Replikate haben die gleiche Konfiguration wie die primäre Web PubSub-Ressource.

Voraussetzungen

Beispiel eines Anwendungsfalls

Contoso, ein Social Media-Unternehmen

Contoso ist ein Social Media-Unternehmen, dessen Kundenbasis sich über die USA und Kanada erstreckt. Contoso stellt seinen Benutzern eine mobile App und eine Web-App bereit, damit sie miteinander in Kontakt treten können. Die Contoso-Anwendung wird in der Region „USA, Mitte“ bereitgestellt. Im Rahmen der Architektur von Contoso wird Web PubSub verwendet, um dauerhafte WebSocket-Verbindungen zwischen Client-Apps und dem Anwendungsserver einzurichten. Contoso gefällt, dass die Verwaltung von WebSocket-Verbindungen an Web PubSub ausgelagert werden kann, aber Contoso gefällt nicht, dass Benutzer in Kanada von einer längeren Wartezeit berichten. Darüber hinaus möchte das Entwicklungsteam von Contoso die App vor einem regionalen Ausfall schützen, damit die Benutzer ohne Unterbrechungen auf die App zugreifen können.

Abbildung: Verwendung einer Azure WebPubSub-Instanz zur Verarbeitung von Datenverkehr aus zwei Ländern.

Contoso könnte eine weitere Web PubSub-Ressource in „Kanada, Mitte“ einrichten, die geografisch näher an den Benutzern in Kanada liegt. Das Verwalten mehrerer Web PubSub-Instanzen birgt jedoch einige Herausforderungen:

  1. Ein regionsübergreifender Kommunikationsmechanismus muss implementiert werden, damit Benutzer in Kanada und in den USA miteinander interagieren können.
  2. Das Entwicklungsteam müsste zwei separate Web PubSub-Ressourcen verwalten, jeweils mit unterschiedlichen Domänen und Verbindungszeichenfolgen.
  3. Bei einem regionalen Ausfall muss der Datenverkehr an eine verfügbare Ressource weitergeleitet werden.

Alle oben genannten Punkte binden technische Ressourcen, die dann nicht mehr für die Produktinnovation zur Verfügung stehen.

Abbildung: Verwendung von zwei Azure Web PubSub-Instanzen zur Verarbeitung von Datenverkehr aus zwei Ländern.

Nutzen des Georeplikationsfeatures

Mit dem neuen Feature für die Georeplikation kann Contoso nun ein Replikat in „Kanada, Mitte“ einrichten und die oben genannten Herausforderungen effektiv meistern. Das Entwicklerteam freut sich, dass es keine Codeänderungen vornehmen muss. Es muss nur auf ein paar Schaltflächen im Azure-Portal klicken. Das Entwicklerteam freut sich auch, den Beteiligten mitteilen zu können, dass Contoso bei seinem Eintritt in den europäischen Markt einfach ein weiteres Replikat in Europa hinzufügen muss.

Abbildung: Verwendung einer Azure Web PubSub-Instanz mit Replikat zur Verarbeitung von Datenverkehr aus zwei Ländern/Regionen.

Aktivieren der Georeplikation in einer Web PubSub-Ressource

Navigieren Sie zum Erstellen eines Replikats in einer Azure-Region zu Ihrer Web PubSub-Ressource und dann zum Blatt Replikate im Azure-Portal, und klicken Sie auf Hinzufügen, um ein Replikat zu erstellen.

Screenshot: Erstellen eines Replikats für Azure Web PubSub im Portal

Nach der Erstellung können Sie Ihr Replikat im Portal anzeigen/bearbeiten, indem Sie auf den Replikatnamen klicken.

Screenshot: Übersichtsblatts der Azure Web PubSub-Replikatressource

Hinweis

  • Die Replikatanzahl ist derzeit auf maximal 8 pro primäre Ressource beschränkt.

Preise und Ressourceneinheit

Jedes Replikat verfügt über eigene Werte für unit und autoscale settings.

Replikat ist ein Feature der Premium-Ebene des Azure Web PubSub-Diensts. Jedes Replikat wird nach ihrer eigener Einheit und dem ausgehenden Datenverkehr separat abgerechnet. Das kostenlose Nachrichtenkontingent wird ebenfalls separat berechnet.

Im vorherigen Beispiel hat Contoso ein Replikat in „Kanada, Mitte“ hinzugefügt. Contoso würde für das Replikat in „Kanada, Mitte“ gemäß seiner Einheit und Nachricht im Premium-Preis bezahlen.

Es werden ausgehende Gebühren für grenzüberschreitenden ausgehenden Datenverkehr anfallen. Wenn eine Nachricht über Replikate hinweg übertragen und nach der Übertragung erfolgreich an einen Client oder Server gesendet wird, wird sie als ausgehende Nachricht in Rechnung gestellt.

Löschen eines Replikats

Nachdem Sie ein Replikat für eine Web PubSub-Ressource erstellt haben, können Sie es jederzeit löschen, wenn es nicht mehr benötigt wird.

So löschen Sie ein Replikat im Azure-Portal

  1. Navigieren Sie zu Ihrer Web PubSub-Instanz, und wählen Sie das Blatt Replikate aus. Klicken Sie auf das Replikat, das Sie löschen möchten.
  2. Klicken Sie auf dem Blatt „Replikatübersicht“ auf die Schaltfläche „Löschen“.

So löschen Sie ein Replikat mithilfe der Azure CLI

 az webpubsub replica delete --replica-name MyReplica --name MyWebPubSub -g MyResourceGroup

Grundlegendes zur Funktionsweise des Georeplikationsfeatures

Abbildung: Architektur des Azure Web PubSub-Replikats

  1. Der Client löst den vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) contoso.webpubsub.azure.com des Web PubSub-Diensts auf. Dieser FQDN verweist auf eine Traffic Manager-Instanz, die den kanonischen Namen (CNAME) der nächstgelegenen regionalen Azure Web PubSub-Instanz zurückgibt.
  2. Mit diesem CNAME stellt der Client eine WebSocket-Verbindung mit der regionalen Instanz (Replikat) her.
  3. Die beiden Replikate werden Daten miteinander synchronisieren. Nachrichten, die an ein Replikat gesendet werden, würden bei Bedarf an andere Replikate übertragen.
  4. Falls für ein Replikat bei der von Traffic Manager (TM) durchgeführten Integritätsprüfung ein Fehler auftritt, schließt TM den Endpunkt der fehlerhaften Instanz aus den Ergebnissen der Domänenauflösung aus. Ausführliche Informationen finden Sie unter Resilienz und Notfallwiederherstellung

Hinweis

  • Auf der Datenebene funktioniert eine primäre Azure Web PubSub-Ressource identisch wie ihre Replikate.

Resilienz und Notfallwiederherstellung

Azure Web PubSub verwendet eine Traffic Manager-Instanz für Integritätsprüfungen und DNS-Auflösung für die Replikate. Unter normalen Umständen, wenn alle Replikate ordnungsgemäß funktionieren, werden Clients an das nächstgelegene Replikat weitergeleitet. Beispiel:

  • Clients in der Nähe von eastus werden an das Replikat weitergeleitet, das sich in eastus befindet.
  • Ebenso werden Clients in der Nähe von westus an das Replikat in westus weitergeleitet.

Im Falle eines regionalen Ausfalls in „USA, Osten“ (unten dargestellt) wird der Datenverkehrsmanager den Integritätsprüfungsfehler für diese Region erkennen. Danach wird das DNS dieses fehlerhaften Replikats von den DNS-Auflösungsergebnissen des Datenverkehrsmanagers ausgeschlossen. Nach einer DNS-TTL (Time-to-Live)-Dauer, die auf 90 Sekunden festgelegt ist, werden Clients in eastus umgeleitet, um eine Verbindung mit dem Replikat in westus herzustellen.

Abbildung: Failover des Azure Web PubSub-Replikats

Sobald das Problem in eastus behoben und die Region wieder online ist, wird die Integritätsprüfung erfolgreich sein. Clients in eastus werden dann erneut an das Replikat in ihrer Region weitergeleitet. Dieser Übergang ist reibungslos, da die verbundenen Clients erst betroffen sind, wenn diese vorhandenen Verbindungen geschlossen werden.

Abbildung: Failoverwiederherstellung des Azure Web PubSub-Replikats

Dieser Failover- und Wiederherstellungsvorgang ist automatisch und erfordert keinen manuellen Eingriff.

Deaktivieren oder Aktivieren des Replikatendpunkts

Beim Einrichten eines Replikats haben Sie die Option, seinen Endpunkt zu aktivieren oder zu deaktivieren. Wenn er deaktiviert ist, enthält die DNS-Auflösung des primären FQDN das Replikat nicht, und daher wird der Datenverkehr nicht an ihn weitergeleitet.

Abbildung: Endpunkteinstellung des Azure Web PubSub-Replikats

Sie können den Endpunkt auch aktivieren oder deaktivieren, nachdem er erstellt wurde. Klicken Sie auf dem Replikatblatt der primären Ressource auf die Schaltfläche mit den Auslassungspunkten auf der rechten Seite des Replikats, und wählen Sie Endpunkt aktivieren oder Endpunkt deaktivieren aus:

Abbildung: Änderung des Azure Web PubSub-Replikatendpunkts

Bevor Sie eine Replikation löschen, sollten Sie zuerst ihren Endpunkt deaktivieren. Im Laufe der Zeit werden vorhandene Verbindungen getrennt. Da keine neuen Verbindungen verfügbar sind, wird die Replikation schließlich inaktiv. Dadurch wird ein nahtloser Löschprozess sichergestellt.

Dieses Feature ist auch hilfreich für die Behandlung regionaler Probleme.

Hinweis

  • Aufgrund des DNS-Cache kann es mehrere Minuten dauern, bis das DNS-Update wirksam wird.
  • Vorhandene Verbindungen bleiben davon unberührt, bis sie die Verbindung trennen.

Auswirkungen auf die Leistung nach der Aktivierung des Georeplikationsfeatures

Nachdem Replikate aktiviert wurden, werden Clients natürlich basierend auf ihren geografischen Standorten verteilt. Web PubSub übernimmt zwar die Verantwortung für die Synchronisierung der Daten zwischen diesen Replikaten, aber der damit verbundene Overhead für die Serverlast ist für die meisten gängigen Anwendungsfälle minimal.

Wenn Ihre Anwendung typischerweise an größere Gruppen (Größe >10) oder eine einzelne Verbindung sendet, sind die Auswirkungen der Synchronisierung auf die Leistung kaum spürbar. Wenn Sie an kleine Gruppen (Größe < 10) senden, stellen Sie möglicherweise einen etwas höheren Synchronisierungsaufwand fest.

Um eine effektive Failoververwaltung sicherzustellen, empfiehlt es sich, die Einheitengröße jedes Replikats so festzulegen, dass es den gesamte Datenverkehr verarbeiten kann. Alternativ können Sie die automatische Skalierung aktivieren, um dies zu verwalten.

Weitere Informationen zur Leistungsauswertung finden Sie unter Leistung.

Nicht geerbte und geerbte Konfigurationen

Replikate erben die meisten Konfigurationen von der primären Ressource, einige Einstellungen müssen jedoch direkt auf den Replikaten konfiguriert werden. Im Folgenden finden Sie die Liste dieser Konfigurationen:

  1. SKU: Jedes Replikat verfügt über einen eigenen SKU-Namen und eine eigene Einheitengröße. Die Regeln für die automatische Skalierung von Replikaten müssen basierend auf den jeweiligen Metriken separat konfiguriert werden.
  2. Freigegebene private Endpunkte: Während freigegebene private Endpunkte automatisch in Replikate repliziert werden, sind für private Ziellinkressourcen separate Genehmigungen erforderlich. Um freigegebene private Endpunkte hinzuzufügen oder zu entfernen, verwalten Sie sie in der primären Ressource. Aktivieren Sie das Replikat erst, nachdem der freigegebene private Endpunkt genehmigt wurde.
  3. Einstellungen für Protokollziel Wenn sie nicht für die Replikate konfiguriert wurden, werden nur Protokolle aus der primären Ressource übertragen.
  4. Warnungen:

Alle anderen Konfigurationen werden von der primären Ressource geerbt. Dies betrifft beispielsweise Zugriffsschlüssel, Identität, Anwendungsfirewall, benutzerdefinierte Domänen, private Endpunkte und Zugriffssteuerung.