Replikacja geograficzna w usłudze Azure Web PubSub

Aplikacje o krytycznym znaczeniu często wymagają solidnego mechanizmu przełączania awaryjnego i obsługi użytkowników jak najbliżej ich lokalizacji. Przed wydaniem funkcji replikacji geograficznej deweloperzy musieli wdrożyć wiele zasobów Web PubSub i napisać kod niestandardowy w celu organizowania komunikacji między zasobami. Teraz dzięki szybkiej konfiguracji za pośrednictwem witryny Azure Portal można łatwo włączyć tę funkcję.

Zalety korzystania z replikacji geograficznej

  • Większa odporność na awarię regionalną: jeśli wystąpi awaria regionalna, klienci będą automatycznie kierowani do repliki w dobrej kondycji.
  • Komunikacja międzyregionalna: Deweloperzy korzystają z zasobu z włączoną replikacją geograficzną jak zwykle, mimo że w tle znajduje się więcej niż jeden zasób. Komunikacja między replikami jest obsługiwana przez usługę.
  • Zwiększona szybkość sieci: geograficznie rozproszeni klienci będą łączyć się z najbliższą repliką. Te repliki komunikują się za pośrednictwem globalnej sieci szkieletowej platformy Azure, zapewniając szybką i stabilną sieć.
  • Łatwość zarządzania. Wszystkie repliki współdzielą konfigurację podstawowego zasobu Web PubSub.

Wymagania wstępne

Przykładowy przypadek użycia

Contoso, firma zajmująca się mediami społecznościowymi

Contoso to firma zajmująca się mediami społecznościowymi, która ma swoją bazę klientów w Stanach Zjednoczonych i Kanadzie. Firma Contoso udostępnia użytkownikom aplikację mobilną i internetową, aby mogli się ze sobą łączyć. Aplikacja firmy Contoso jest wdrożona w regionie Central US. W ramach architektury firmy Contoso usługa Web PubSub służy do ustanawiania trwałych połączeń protokołu WebSocket między aplikacjami klienckimi a serwerem aplikacji. Firma Contoso lubi, że może powierzyć usłudze Web PubSub zarządzanie połączeniami WebSocket, ale nie podoba jej się czytanie raportów o tym, że użytkownicy w Kanadzie doświadczają większych opóźnień. Ponadto zespół deweloperów firmy Contoso chce ubezpieczyć aplikację przed awarią regionalną, aby użytkownicy mogli uzyskiwać dostęp do aplikacji bez żadnych przerw.

Schemat przedstawiający użycie jednego wystąpienia usługi Azure WebPubSub do obsługi ruchu z dwóch krajów.

Firma Contoso może skonfigurować kolejny zasób Web PubSub w Kanadzie Środkowej, który jest geograficznie bliżej swoich użytkowników w Kanadzie. Jednak zarządzanie wieloma zasobami Web PubSub wiąże się z pewnymi wyzwaniami:

  1. Należy zaimplementować mechanizm komunikacji między regionami, aby użytkownicy w Kanadzie i Stanach Zjednoczonych mogli ze sobą korzystać.
  2. Zespół deweloperów musi zarządzać dwoma oddzielnymi zasobami Web PubSub, z których każda ma odrębną domenę i parametry połączenia.
  3. Jeśli wystąpi awaria regionalna, ruch musi być kierowany do dostępnego zasobu.

Wszystko to odciąga zasoby inżynierskie od koncentrowania się na innowacjach produktowych.

Diagram przedstawiający wykorzystanie dwóch instancji Azure Web PubSub do obsługi ruchu pochodzącego z dwóch krajów.

Korzystanie z funkcji replikacji geograficznej

Dzięki funkcji replikacji geograficznej firma Contoso może teraz utworzyć replikę w regionie Canada Central, skutecznie przezwyciężając wyżej wymienione trudności. Zespół deweloperów chętnie dowie się, że nie musi wprowadzać żadnych zmian w kodzie. Wystarczy kliknąć kilka przycisków w witrynie Azure Portal. Zespół deweloperów z przyjemnością informuje również interesariuszy, że ponieważ firma Contoso planuje wejść na rynek europejski, wystarczy, że doda kolejną replikę w Europie.

Diagram przedstawiający użycie jednego wystąpienia usługi Azure Web PubSub z repliką do obsługi ruchu z dwóch krajów lub regionów.

Jak włączyć replikację geograficzną w zasobie Web PubSub

Aby utworzyć replikę w regionie platformy Azure, przejdź do swojego zasobu Web PubSub, znajdź kartę Replicas w portalu Azure i kliknij przycisk Add, aby utworzyć replikę.

Zrzut ekranu przedstawiający tworzenie repliki dla usługi Azure Web PubSub w portalu.

Po utworzeniu można wyświetlić/edytować replikę w portalu, klikając nazwę repliki.

Zrzut ekranu przedstawiający blok przeglądu zasobu repliki usługi Azure Web PubSub.

Uwaga

  • Liczba replik jest obecnie ograniczona do maksymalnie 8 na zasób podstawowy.

Cennik i jednostka zasobów

Każda replika ma własneunitautoscale settings.

Replica to funkcja warstwy Premium usługi Azure Web PubSub Service. Każda replika jest rozliczana oddzielnie zgodnie z własną jednostką i ruchem wychodzącym. Bezpłatny limit wiadomości jest również obliczany oddzielnie.

W poprzednim przykładzie firma Contoso dodała jedną replikę w Kanadzie Środkowej. Firma Contoso zapłaci za replikę w regionie Canada Central za jednostkę i komunikat według taryfy Premium.

Będą obowiązywać opłaty za transfer wychodzący między regionami. Jeśli komunikat zostanie przeniesiony między replikami i pomyślnie wysłany do klienta lub serwera po przeniesieniu, zostanie on rozliczone jako komunikat wychodzący.

Usuwanie repliki

Po utworzeniu repliki dla zasobu Web PubSub można go usunąć w dowolnym momencie, jeśli nie jest już potrzebny.

Aby usunąć replikę w witrynie Azure Portal:

  1. Przejdź do zasobu Web PubSub i wybierz blok Repliki . Kliknij replikę, którą chcesz usunąć.
  2. Kliknij przycisk „Usuń” w panelu przeglądu repliki.

Aby usunąć replikę przy użyciu interfejsu wiersza polecenia platformy Azure:

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

Dowiedz się, jak działa funkcja replikacji geograficznej

Diagram architektury repliki usługi Azure Web PubSub.

  1. Klient rozpoznaje w pełni kwalifikowaną nazwę domeny (FQDN) contoso.webpubsub.azure.com usługi Web PubSub. Ta nazwa FQDN wskazuje na usługę Traffic Manager, która zwraca nazwę kanoniczną (CNAME) najbliższego regionalnego wystąpienia usługi Web PubSub.
  2. Za pomocą tego rekordu CNAME klient ustanawia połączenie WebSocket z instancją regionalną (repliką).
  3. Dwie repliki będą synchronizować dane ze sobą. W razie potrzeby komunikaty wysyłane do jednej repliki zostaną przeniesione do innych replik.
  4. Jeśli replika nie przejdzie kontroli kondycji przeprowadzanej przez usługę Traffic Manager (TM), usługa TM wykluczy punkt końcowy tej instancji z wyników rozpoznawania nazw domenowych. Aby uzyskać szczegółowe informacje, zapoznaj się z poniższymi informacjami na temat odporności i odzyskiwania po awarii

Uwaga

  • W płaszczyźnie danych podstawowy zasób usługi Azure Web PubSub działa identycznie jak jego repliki

Odporność i odzyskiwanie po awarii

Usługa Azure Web PubSub korzysta z usługi Traffic Manager na potrzeby kontroli kondycji i rozpoznawania nazw DNS w odniesieniu do replik. W normalnych okolicznościach, gdy wszystkie repliki działają prawidłowo, klienci będą kierowani do najbliższej repliki. Przykład:

  • Klienci znajdujący się blisko eastus zostaną przekierowani do repliki znajdującej się w eastus.
  • Podobnie klienci znajdujący się blisko westus będą kierowani do repliki w westus.

W przypadku awarii regionalnej w regionie eastus (zilustrowanym poniżej) menedżer ruchu wykryje błąd kontroli kondycji dla tego regionu. Następnie system DNS tej wadliwej repliki zostanie wykluczony z wyników rozpoznawania nazw DNS usługi Traffic Manager. Po upływie czasu życia rekordu DNS (TTL), ustawionego na 90 sekund, klienci w eastus zostaną przekierowani do połączenia z repliką w westus.

Diagram pracy awaryjnej repliki usługi Azure Web PubSub.

Po rozwiązaniu problemu eastus i powrocie regionu do trybu online kontrola kondycji zakończy się pomyślnie. Klienci w eastus będą następnie ponownie kierowani do repliki w swoim regionie. Ta zmiana przebiega bezproblemowo, ponieważ nie wpłynie na podłączonych klientów, dopóki istniejące połączenia nie zostaną zamknięte.

Diagram odzyskiwania po przełączeniu awaryjnym repliki usługi Azure Web PubSub.

Ten proces automatycznego przełączania awaryjnego i przywracania sprawności nie wymaga ręcznej interwencji.

Wyłączanie lub włączanie punktu końcowego repliki

Podczas konfiguracji repliki możesz włączyć lub wyłączyć jej punkt końcowy. Jeśli jest wyłączona, rozwiązywanie DNS podstawowej nazwy FQDN nie będzie uwzględniać repliki, w związku z tym ruch nie będzie do niej kierowany.

Diagram ustawienia punktu końcowego repliki usługi Azure Web PubSub.

Możesz również włączyć lub wyłączyć punkt końcowy po jego utworzeniu. W bloku replik zasobów podstawowych kliknij przycisk wielokropka po prawej stronie repliki i wybierz pozycję Włącz punkt końcowy lub Wyłącz punkt końcowy:

Diagram modyfikacji punktu końcowego repliki usługi Azure Web PubSub.

Przed usunięciem replikacji rozważ najpierw wyłączenie punktu końcowego. W czasie istniejące połączenia zostaną rozłączone. Ponieważ nie pojawiają się żadne nowe połączenia, replikacja ostatecznie przechodzi w stan bezczynności. Zapewnia to bezproblemowy proces usuwania.

Ta funkcja jest również przydatna do rozwiązywania problemów regionalnych.

Uwaga

  • Ze względu na pamięć podręczną DNS może upłynąć kilka minut, aby aktualizacja DNS weszła w życie.
  • Istniejące połączenia pozostają bez wpływu, dopóki nie zostaną rozłączone.

Wpływ na wydajność po włączeniu funkcji replikacji geograficznej

Po włączeniu replik klienci będą się naturalnie rozkładać zgodnie ze swoją lokalizacją geograficzną. Chociaż usługa Web PubSub odpowiada za synchronizację danych między tymi replikami, z przyjemnością dowiesz się, że związane z tym dodatkowe obciążenie serwera jest minimalne w większości typowych przypadków użycia.

W szczególności, jeśli aplikacja zazwyczaj emituje do większych grup (rozmiar >10) lub pojedynczego połączenia, wpływ synchronizacji na wydajność jest ledwo zauważalny. Jeśli wysyłasz wiadomości do małych grup (liczących < 10 osób), możesz zauważyć nieco większy narzut związany z synchronizacją.

Aby zapewnić skuteczne zarządzanie przełączaniem awaryjnym, zaleca się ustawienie rozmiaru zasobów każdej repliki tak, aby mogła obsłużyć cały ruch. Alternatywnie można włączyć skalowanie automatyczne, aby zarządzać tym rozwiązaniem.

Aby uzyskać więcej oceny wydajności, zobacz Wydajność.

Konfiguracje niedziedziczone i dziedziczone

Repliki dziedziczą większość konfiguracji z zasobu podstawowego; jednak niektóre ustawienia muszą być konfigurowane bezpośrednio w replikach. Poniżej znajduje się lista tych konfiguracji:

  1. Jednostka SKU: Każda replika ma własną nazwę jednostki SKU i rozmiar jednostki. Reguły skalowania automatycznego dla replik muszą być konfigurowane oddzielnie na podstawie poszczególnych metryk.
  2. Współużytkowane prywatne punkty końcowe: chociaż współużytkowane prywatne punkty końcowe są automatycznie replikowane do replik, oddzielne zatwierdzenia są wymagane w docelowych zasobach łącza prywatnego. Aby dodać lub usunąć udostępnione prywatne punkty końcowe, zarządzaj nimi w zasobie podstawowym. Nie włączaj repliki, dopóki jej współdzielony prywatny punkt końcowy nie zostanie zatwierdzony.
  3. Ustawienia miejsca docelowego logu. Jeśli repliki nie zostaną skonfigurowane, zostaną przeniesione tylko dzienniki z zasobu podstawowego.
  4. Alerty.

Wszystkie inne konfiguracje są dziedziczone z zasobu podstawowego. Na przykład klucze dostępu, tożsamość, zapora aplikacji, domeny niestandardowe, prywatne punkty końcowe i kontrola dostępu.