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. Nu, med snabb konfiguration via Azure Portal, kan du 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 över hur du använder en Azure WebPubSub-instans för att hantera trafik från två länder.

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 över hur du använder två Azure Web PubSub-instanser för att hantera trafik från två länder.

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 Portal. 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 över hur du använder en Azure Web PubSub-instans med replik för att hantera trafik från två länder.

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 Portal och klickar på Lägg till för att skapa en replik.

Skärmbild av att skapa replik för Azure Web PubSub på portalen.

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

Skärmbild av översiktsbladet för Azure Web PubSub-replikresursen.

Kommentar

  • Antalet repliker är för närvarande begränsat till högst 8 per primär resurs.

Pris- och resursenhet

Varje replik har sin egen unit 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 Portal:

  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 över bågen för Azure Web PubSub-repliken.

  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 över redundans för Azure Web PubSub-replikering.

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 över återställning av Redundans för Azure Web PubSub-replikering.

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 över inställningen för Azure Web PubSub-replikslutpunkt.

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 över ändring av Azure Web PubSub-replikslutpunkt.

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.

Icke-ärvda och ärvda konfigurationer

Repliker ärver de flesta konfigurationer från den primära resursen. Vissa inställningar måste dock konfigureras direkt på replikerna. Nedan visas listan över dessa konfigurationer:

  1. SKU: Varje replik har sitt eget SKU-namn och enhetsstorlek. Reglerna för automatisk skalning för repliker måste konfigureras separat baserat på deras enskilda mått.
  2. Delade privata slutpunkter: Även om delade privata slutpunkter replikeras automatiskt till repliker krävs separata godkännanden för privata mållänkresurser. Om du vill lägga till eller ta bort delade privata slutpunkter hanterar du dem på den primära resursen. Aktivera inte repliken förrän dess delade privata slutpunkt har godkänts.
  3. Loggmålinställningar. Om den inte har konfigurerats på replikerna överförs endast loggar från den primära resursen.
  4. Aviseringar.

Alla andra konfigurationer ärvs från den primära resursen. Till exempel åtkomstnycklar, identitet, programbrandvägg, anpassade domäner, privata slutpunkter och åtkomstkontroll.