Geo-replicatie in Azure Web PubSub

Bedrijfskritieke apps moeten vaak een robuust failoversysteem hebben en gebruikers dichter bij waar ze zich bevinden. Voordat de functie voor geo-replicatie werd uitgebracht, moesten ontwikkelaars meerdere Web PubSub-resources implementeren en aangepaste code schrijven om communicatie tussen resources te organiseren. Met snelle configuratie via Azure Portal kunt u deze functie nu eenvoudig inschakelen.

Voordelen van het gebruik van geo-replicatie

  • Toleranter voor regionale storingen: als er een regionale storing optreedt, worden clients automatisch doorgestuurd naar een goede replica.
  • Communicatie tussen regio's: ontwikkelaars gebruiken zoals gebruikelijk een resource met geo-replicatie, ook al zijn er achter de schermen meer dan één resource. De communicatie tussen replica's wordt verwerkt door de service.
  • Verbeterde netwerksnelheid: geografisch verspreide clients maken verbinding met de dichtstbijzijnde replica. Deze replica's communiceren via de backbone van het wereldwijde Azure-netwerk en zorgen voor snelle en stabiele netwerken.
  • Eenvoudig beheer. Alle replica's delen de configuratie van de primaire Web PubSub-resource.

Vereisten

Voorbeeld van een toepassing

Contoso, een bedrijf voor sociale media

Contoso is een sociaal mediabedrijf met zijn klantenbestand verspreid over de VS en Canada. Contoso biedt een mobiele app en web-app aan de gebruikers, zodat ze verbinding met elkaar kunnen maken. Contoso-toepassing wordt geïmplementeerd in VS - centraal. Als onderdeel van de architectuur van Contoso wordt Web PubSub gebruikt om permanente WebSocket-verbindingen tot stand te brengen tussen client-apps en de toepassingsserver. Contoso vindt het leuk om WebSocket-verbindingen met Web PubSub te offloaden, maar het is niet leuk om rapporten van gebruikers in Canada met een hogere latentie te lezen. Bovendien wil het ontwikkelteam van Contoso de app verzekeren tegen regionale storingen, zodat de gebruikers zonder onderbrekingen toegang hebben tot de app.

Diagram of using one Azure WebPubSub instance to handle traffic from two countries.

Contoso kan een andere Web PubSub-resource instellen in Canada - centraal, die geografisch dichter bij de gebruikers in Canada ligt. Het beheren van meerdere Web PubSub-resources brengt echter enkele uitdagingen met zich mee:

  1. Er moet een communicatiemechanisme tussen regio's worden geïmplementeerd, zodat gebruikers in Canada en de VS met elkaar kunnen communiceren.
  2. Het ontwikkelteam moet twee afzonderlijke Web PubSub-resources beheren, elk met een afzonderlijk domein en verbindingsreeks.
  3. Als er een regionale storing plaatsvindt, moet het verkeer worden omgeleid naar een beschikbare resource.

Al het bovenstaande neemt technische resources weg van het focussen op productinnovatie.

Diagram of using two Azure Web PubSub instances to handle traffic from two countries.

De functie geo-replicatie benutten

Met de functie voor geo-replicatie kan Contoso nu een replica maken in Canada Central, waarmee de bovenstaande uitdagingen effectief worden overgeslagen. Het ontwikkelaarsteam is blij om erachter te komen dat ze geen codewijzigingen hoeven aan te brengen. Het is net zo eenvoudig als klikken op een paar knoppen in Azure Portal. Het ontwikkelaarsteam deelt ook graag met de belanghebbenden die contoso van plan is om de Europese markt in te gaan, maar ze moeten gewoon een andere replica in Europa toevoegen.

Diagram of using one Azure Web PubSub instance with replica to handle traffic from two countries.

Geo-replicatie inschakelen in een Web PubSub-resource

Als u een replica in een Azure-regio wilt maken, gaat u naar uw Web PubSub-resource en zoekt u de blade Replica's in Azure Portal en klikt u op Toevoegen om een replica te maken.

Screenshot of creating replica for Azure Web PubSub on Portal.

Nadat u de replica hebt gemaakt, kunt u de replica in de portal weergeven/bewerken door op de naam van de replica te klikken.

Screenshot of overview blade of Azure Web PubSub replica resource.

Prijzen en resource-eenheid

Elke replica heeft een eigenunit en autoscale settings.

Replica is een functie van de Premium-laag van Azure Web PubSub Service. Elke replica wordt afzonderlijk gefactureerd op basis van een eigen eenheid en uitgaand verkeer. Het quotum voor gratis berichten wordt ook afzonderlijk berekend.

In het voorgaande voorbeeld heeft Contoso één replica toegevoegd in Canada Central. Contoso betaalt voor de replica in Canada Central op basis van de eenheid en het bericht in Premium Price.

Er worden uitgaande kosten in rekening gebracht voor uitgaand verkeer tussen regio's. Als een bericht wordt overgebracht over replica's en na de overdracht naar een client of server is verzonden, wordt dit gefactureerd als een uitgaand bericht.

Een replica verwijderen

Nadat u een replica voor een Web PubSub-resource hebt gemaakt, kunt u deze op elk gewenst moment verwijderen als deze niet meer nodig is.

Ga als volgt te werk om een replica te verwijderen in Azure Portal:

  1. Navigeer naar uw Web PubSub-resource en selecteer de blade Replica's . Klik op de replica die u wilt verwijderen.
  2. Klik op de knop Verwijderen op de blade Overzicht van replica's.

Een replica verwijderen met behulp van de Azure CLI:

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

Inzicht in de werking van de functie geo-replicatie

Diagram of the arch of Azure Web PubSub replica.

  1. De client lost de FQDN (Fully Qualified Domain Name) contoso.webpubsub.azure.com van de Web PubSub-service op. Deze FQDN verwijst naar een Traffic Manager, die de Canonical Name (CNAME) van het dichtstbijzijnde regionale Web PubSub-exemplaar retourneert.
  2. Met deze CNAME brengt de client een websocket-verbinding tot stand met het regionale exemplaar (replica).
  3. De twee replica's synchroniseren gegevens met elkaar. Berichten die naar de ene replica worden verzonden, worden indien nodig overgebracht naar andere replica's.
  4. Als een replica de statuscontrole mislukt die wordt uitgevoerd door Traffic Manager (TM), sluit de TM het eindpunt van het mislukte exemplaar uit van de resultaten van de domeinomzetting. Raadpleeg de onderstaande tolerantie en herstel na noodgevallen voor meer informatie

Notitie

  • In het gegevensvlak werkt een primaire Azure Web PubSub-resource op dezelfde manier als de replica's ervan

Tolerantie en herstel na noodgevallen

Azure Web PubSub Service maakt gebruik van traffic manager voor statuscontroles en DNS-omzetting naar de replica's. Onder normale omstandigheden, wanneer alle replica's goed functioneren, worden clients omgeleid naar de dichtstbijzijnde replica. Bijvoorbeeld:

  • Clients in de buurt eastus worden omgeleid naar de replica in eastus.
  • Op dezelfde manier worden clients in de buurt westus omgeleid naar de replica in westus.

In het geval van een regionale storing in eastus (hieronder geïllustreerd), detecteert traffic manager de statuscontrolefout voor die regio. Vervolgens wordt de DNS van deze defecte replica uitgesloten van de DNS-omzettingsresultaten van traffic manager. Na een TTL-duur (Time-to-Live) van DNS, die is ingesteld op 90 seconden, worden clients eastus omgeleid om verbinding te maken met de replica in westus.

Diagram of Azure Web PubSub replica failover.

Zodra het probleem eastus is opgelost en de regio weer online is, slaagt de statuscontrole. Clients in eastus worden vervolgens opnieuw omgeleid naar de replica in hun regio. Deze overgang verloopt soepel omdat de verbonden clients pas worden beïnvloed nadat deze bestaande verbindingen zijn gesloten.

Diagram of Azure Web PubSub replica failover recovery.

Dit failover- en herstelproces is automatisch en vereist geen handmatige tussenkomst.

Het replica-eindpunt uitschakelen of inschakelen

Bij het instellen van een replica hebt u de mogelijkheid om het eindpunt ervan in of uit te schakelen. Als deze optie is uitgeschakeld, bevat de DNS-resolutie van de primaire FQDN de replica niet en wordt er daarom geen verkeer naar omgeleid.

Diagram of Azure Web PubSub replica endpoint setting.

U kunt het eindpunt ook uitschakelen nadat het is gemaakt. Klik op de blade replica's van de primaire resource op de knop met het beletselteken aan de rechterkant van de replica en kies Eindpunt inschakelen of Eindpunt uitschakelen:

Diagram of Azure Web PubSub replica endpoint modification.

Voordat u een replicatie verwijdert, kunt u overwegen eerst het eindpunt ervan uit te schakelen. Na verloop van tijd worden bestaande verbindingen verbroken. Omdat er geen nieuwe verbindingen komen, wordt de replicatie definitief inactief. Dit zorgt voor een naadloos verwijderingsproces.

Deze functie is ook handig voor het oplossen van regionale problemen.

Notitie

  • Vanwege de DNS-cache kan het enkele minuten duren voordat de DNS-update van kracht wordt.
  • Bestaande verbindingen blijven ongewijzigd totdat de verbinding wordt verbroken.

Invloed op prestaties na het inschakelen van de functie geo-replicatie

Nadat replica's zijn ingeschakeld, distribueren clients op natuurlijke wijze op basis van hun geografische locaties. Hoewel Web PubSub de verantwoordelijkheid neemt om gegevens over deze replica's te synchroniseren, zult u blij zijn dat de bijbehorende overhead bij serverbelasting minimaal is voor de meest voorkomende gebruiksscenario's.

Als uw toepassing doorgaans uitzendt naar grotere groepen (grootte >10) of één verbinding, is de invloed van de prestaties van synchronisatie nauwelijks zichtbaar. Als u berichten wilt verzenden naar kleine groepen (grootte < 10), merkt u mogelijk wat meer synchronisatie-overhead.

Om effectief failoverbeheer te garanderen, is het raadzaam om de eenheidsgrootte van elke replica in te stellen om al het verkeer te verwerken. U kunt ook automatisch schalen inschakelen om dit te beheren.

Raadpleeg Prestaties voor meer prestatie-evaluatie.