Geo-replikering i Azure Web PubSub

Verksamhetskritiska appar måste ofta ha ett robust redundanssystem och betjäna användare närmare var de befinner sig. Innan geo-replikeringsfunktionen släpptes behövde utvecklare distribuera flera Web PubSub-resurser och skriva anpassad kod för att samordna kommunikationen mellan resurser. Med snabb konfiguration via Azure-portalen kan du nu enkelt aktivera den här funktionen.

Fördelar med att använda geo-replikering

  • Mer motståndskraftigt mot regionalt avbrott: Om ett regionalt avbrott inträffar dirigeras klienter automatiskt till en felfri replik.
  • Kommunikation mellan regioner: Utvecklare använder en geo-replikeringsaktiverad resurs som vanligt, även om det finns fler än en resurs bakom kulisserna. Kommunikationen mellan repliker hanteras av tjänsten.
  • Förbättrad nätverkshastighet: Geografiskt spridda klienter ansluter till närmaste replik. Dessa repliker kommunicerar via azures globala nätverksstomme, vilket säkerställer ett snabbt och stabilt nätverk.
  • Enkel hantering. Alla repliker delar konfigurationen av den primära Web PubSub-resursen.

Förutsättningar

Exempel på användningsfall

Contoso, ett företag inom sociala medier

Contoso är ett socialt medieföretag med sin kundbas spridd över USA och Kanada. Contoso tillhandahåller en mobil- och webbapp till sina användare så att de kan ansluta till varandra. Contoso-programmet distribueras i USA, centrala. Som en del av Contosos arkitektur används Web PubSub för att upprätta beständiga WebSocket-anslutningar mellan klientappar och programservern. Contoso gillar att de kan avlasta hantering av WebSocket-anslutningar till Web PubSub, men gillar inte att läsa rapporter om användare i Kanada som har högre svarstid. Dessutom vill Contosos utvecklingsteam försäkra appen mot regionala avbrott så att användarna kan komma åt appen utan avbrott.

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

Contoso kan konfigurera en annan Web PubSub-resurs i Canada Central som är geografiskt närmare sina användare i Kanada. Att hantera flera Web PubSub-resurser medför dock vissa utmaningar:

  1. En kommunikationsmekanism mellan regioner måste implementeras så att användare i Kanada och USA kan interagera med varandra.
  2. Utvecklingsteamet skulle behöva hantera två separata Web PubSub-resurser, var och en med distinkt domän och anslutningssträng.
  3. Om ett regionalt avbrott inträffar måste trafiken dirigeras till en tillgänglig resurs.

Alla ovanstående tar tekniska resurser från att fokusera på produktinnovation.

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

Utnyttja geo-replikeringsfunktionen

Med geo-replikeringsfunktionen kan Contoso nu upprätta en replik i Canada Central, vilket effektivt övervinner ovanstående utmaningar. Utvecklarteamet är glada över att få reda på att de inte behöver göra några kodändringar. Det är lika enkelt som att klicka på några knappar på Azure-portalen. Utvecklarteamet delar också gärna med sig av till intressenterna att när Contoso planerar att komma in på den europeiska marknaden behöver de helt enkelt lägga till ytterligare en replik i Europa.

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

Aktivera geo-replikering i en Web PubSub-resurs

Om du vill skapa en replik i en Azure-region går du till din Web PubSub-resurs och letar upp bladet Repliker på Azure-portalen och klickar på Lägg till för att skapa en replik.

Screenshot of creating replica for Azure Web PubSub on Portal.

När du har skapat den kan du visa/redigera repliken på portalen genom att klicka på repliknamnet.

Screenshot of overview blade of Azure Web PubSub replica resource.

Pris- och resursenhet

Varje replik har sin egenunit och autoscale settings.

Replik är en funktion i Premium-nivån för Azure Web PubSub Service. Varje replik faktureras separat enligt sin egen enhet och utgående trafik. Den kostnadsfria meddelandekvoten beräknas också separat.

I föregående exempel lade Contoso till en replik i Canada Central. Contoso skulle betala för repliken i Canada Central enligt dess enhet och meddelande i Premium Price.

Det kommer att finnas utgående avgifter för utgående trafik mellan regioner. Om ett meddelande överförs mellan repliker och skickas till en klient eller server efter överföringen debiteras det som ett utgående meddelande.

Ta bort en replik

När du har skapat en replik för en Web PubSub-resurs kan du ta bort den när som helst om den inte längre behövs.

Så här tar du bort en replik i Azure-portalen:

  1. Gå till din Web PubSub-resurs och välj bladet Repliker . Klicka på den replik som du vill ta bort.
  2. Klicka på knappen Ta bort på bladet repliköversikt.

Så här tar du bort en replik med hjälp av Azure CLI:

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

Förstå hur geo-replikeringsfunktionen fungerar

Diagram of the arch of Azure Web PubSub replica.

  1. Klienten löser det fullständigt kvalificerade domännamnet (FQDN) contoso.webpubsub.azure.com för Web PubSub-tjänsten. Det här fullständiga domännamnet pekar på en Traffic Manager som returnerar det kanoniska namnet (CNAME) för den närmaste regionala Web PubSub-instansen.
  2. Med detta CNAME upprättar klienten en websocket-anslutning till den regionala instansen (repliken).
  3. De två replikerna synkroniserar data med varandra. Meddelanden som skickas till en replik överförs till andra repliker om det behövs.
  4. Om en replik misslyckas med hälsokontrollen som utförs av Traffic Manager (TM) utesluter TM slutpunkten för den misslyckade instansen från dess resultat för domänmatchning. Mer information finns i nedan Återhämtning och haveriberedskap

Kommentar

  • I dataplanet fungerar en primär Azure Web PubSub-resurs identiskt med dess repliker

Återhämtning och haveriberedskap

Azure Web PubSub Service använder en trafikhanterare för hälsokontroller och DNS-matchning mot sina repliker. När alla repliker fungerar som de ska dirigeras klienterna under normala omständigheter till närmaste replik. Till exempel:

  • Klienter nära eastus dirigeras till repliken som finns i eastus.
  • På samma sätt dirigeras klienter nära westus till repliken i westus.

I händelse av ett regionalt avbrott i eastus (se nedan) identifierar trafikhanteraren hälsokontrollfelet för den regionen. Sedan undantas den här felaktiga replikens DNS från trafikhanterarens DNS-matchningsresultat. Efter en TTL-varaktighet (Time-to-Live) för DNS, som är inställd på 90 sekunder, omdirigeras klienter i eastus för att ansluta till repliken i westus.

Diagram of Azure Web PubSub replica failover.

När problemet i eastus har lösts och regionen är online igen lyckas hälsokontrollen. Klienter i eastus dirigeras sedan återigen till repliken i deras region. Den här övergången är smidig eftersom de anslutna klienterna inte påverkas förrän de befintliga anslutningarna har stängts.

Diagram of Azure Web PubSub replica failover recovery.

Den här redundans- och återställningsprocessen är automatisk och kräver inga manuella åtgärder.

Inaktivera eller aktivera replikslutpunkten

När du konfigurerar en replik kan du aktivera eller inaktivera dess slutpunkt. Om den är inaktiverad innehåller den primära FQDN:ns DNS-matchning inte repliken, och därför dirigeras inte trafiken till den.

Diagram of Azure Web PubSub replica endpoint setting.

Du kan också aktivera inaktivera slutpunkten när den har skapats. På den primära resursens replikblad klickar du på ellipsknappen till höger om repliken och väljer Aktivera slutpunkt eller Inaktivera slutpunkt:

Diagram of Azure Web PubSub replica endpoint modification.

Innan du tar bort en replikering bör du överväga att inaktivera slutpunkten först. Med tiden kopplas befintliga anslutningar från. Eftersom inga nya anslutningar kommer blir replikeringen äntligen inaktiv. Detta säkerställer en sömlös borttagningsprocess.

Den här funktionen är också användbar för felsökning av regionala problem.

Kommentar

  • På grund av DNS-cachen kan det ta flera minuter innan DNS-uppdateringen börjar gälla.
  • Befintliga anslutningar påverkas inte förrän de kopplas från.

Påverkan på prestanda efter aktivering av geo-replikeringsfunktion

När repliker har aktiverats distribueras klienter naturligt baserat på deras geografiska platser. Web PubSub tar på sig ansvaret att synkronisera data mellan dessa repliker, men du är glad över att veta att de associerade kostnaderna för serverbelastning är minimala för de vanligaste användningsfallen.

Mer specifikt, om ditt program vanligtvis sänder till större grupper (storlek >10) eller en enda anslutning, är prestandapåverkan av synkronisering knappt märkbar. Om du har små meddelandegrupper (storlek < 10) kanske du märker lite mer omkostnader för synkronisering.

För att säkerställa effektiv redundanshantering rekommenderar vi att du anger varje repliks enhetsstorlek för att hantera all trafik. Du kan också aktivera automatisk skalning för att hantera detta.

Mer prestandautvärdering finns i Prestanda.