Projektowanie architektury sieci rozproszonej geograficznie
W aplikacji rozproszonej niezbędne jest zapewnienie, że składniki mogą niezawodnie komunikować się, a żądania mogą kierować do innego składnika lub regionu w przypadku awarii.
Postanowiliśmy przeprojektować architekturę naszego portalu wysyłkowego na platformie Azure, aby zmniejszyć jego podatność na awarie regionalne. Chcemy zapewnić, że aplikacja przełączy się na komponenty w regionie zapasowym, gdy region podstawowy jest niedostępny. Przejście w tryb failover powinno spowodować minimalne zakłócenia dostarczania usług użytkownikom.
Tutaj dowiesz się, jak usługi Azure DNS, Traffic Manager, Front Door i Azure CDN obsługują architekturę aplikacji firmy kurierskiej.
Azure DNS
Jak pamiętasz wcześniej, nie potrzebujemy żadnych zmian w implementacji usługi Azure DNS. Używamy usługi Azure DNS do hostowania rekordów nazw domen, które identyfikują naszą aplikację.
Usługa Azure DNS zapewnia rozpoznawanie nazw w całości za pośrednictwem infrastruktury platformy Azure. Ta usługa jest z natury wielo regionalna i dlatego nie ma potrzeby modyfikowania istniejącej konfiguracji usługi Azure DNS, aby obsługiwać tę funkcję w naszym nowym projekcie architektury.
Umowa SLA usługi Azure DNS ma również 100% zagwarantować, że prawidłowe żądania DNS otrzymają odpowiedź od co najmniej jednego serwera nazw usługi Azure DNS przez cały czas.
Wybierz router ruchu
Potrzebujemy usługi, która może równoważyć obciążenie i przekierowywać ruch w wielu regionach za pomocą rozproszonych aplikacji internetowych.
Platforma Azure udostępnia kilka różnych usług, które mogą kierować ruch między komponentami frontendu. Pamiętaj, że musimy zastąpić naszą usługę Azure Application Gateway, ponieważ jest ona powiązana z pojedynczym regionem. Jeśli ten region zawiedzie, nie będzie możliwości przeprowadzenia routingu.
Na platformie Azure istnieją dwa routery ruchu, które mogą wykonywać globalny routing między wieloma regionami i nie są narażone na awarię jednego regionu:
- Azure Traffic Manager
- Azure Front Door
Przyjrzyjmy się tym usługom bardziej szczegółowo, abyśmy mogli wybrać odpowiedni router dla naszej aplikacji.
Co to jest usługa Azure Traffic Manager?
Usługa Azure Traffic Manager to globalny moduł równoważenia obciążenia, który używa rekordów DNS do kierowania ruchu do miejsc docelowych w wielu regionach świadczenia usługi Azure.
Usługę Traffic Manager można skonfigurować tak, aby kierowała wszystkie żądania do naszego regionu podstawowego i monitorowała czas odpowiedzi usługi App Service w tym regionie. Jeśli usługa App Service w regionie podstawowym zakończy się niepowodzeniem, usługa Traffic Manager automatycznie przekierowuje żądania użytkowników do usługi App Service w regionie pomocniczym. To przekierowanie wykonuje tryb failover, który zapewnia ciągłą obsługę. Nazywamy to rozwiązaniem tryb routingu o priorytecie .
Ponieważ usługa Traffic Manager używa systemu DNS do kierowania ruchu, kieruje on dowolny protokół, a nie tylko ruch HTTP. Jednak usługa Traffic Manager nie może kierować ani filtrować ruchu na podstawie właściwości HTTP, takich jak kody kraju klienta lub nagłówki agenta użytkownika. Nie może również wykonać zakończenia protokołu Transport Layer Security (TLS), gdzie router odszyfrowuje żądania i szyfruje odpowiedzi, aby pobrać to obciążenie z serwerów wirtualnych usługi App Service. Jeśli potrzebujemy jednej z tych funkcji, musimy użyć usługi Azure Front Door.
Usługa Traffic Manager używa wysoce konfigurowalnego monitorowania punktów końcowych. Na przykład możemy zdefiniować protokół, port, ścieżkę, niestandardowe ustawienia nagłówka, oczekiwane zakresy kodu stanu i tolerowaną liczbę awarii. Monitorowanie punktów końcowych daje nam ciągłe pojęcie ogólnej kondycji wszystkich części naszej aplikacji.
Co to jest usługa Azure Front Door?
Podobnie jak usługa Traffic Manager, usługa Azure Front Door jest globalnym modułem równoważenia obciążenia. W przeciwieństwie do usługi Traffic Manager działa w warstwie aplikacji sieciowej, warstwie 7 i używa właściwości HTTP i HTTPS do filtrowania i routingu.
Dzięki usłudze Front Door możemy wykonywać wiele typów routingu, których usługa Traffic Manager nie obsługuje. Na przykład możemy kierować ruch na podstawie kodu kraju przeglądarki. Usługa Front Door obsługuje również zakończenie sesji protokołu TLS.
Istnieje jednak wyjątek. Jeśli chcemy kierować ruch dla dowolnego protokołu innego niż HTTP i HTTPS, musimy użyć usługi Traffic Manager.
Usługa Front Door umożliwia przypisywanie priorytetów różnym zapleczom tworzącym portal śledzenia. Te priorytety umożliwiają usłudze Front Door kierowanie żądań zgodnie z potrzebami. Przydzielamy usługom regionu podstawowego priorytet najwyższy, a usługom regionu pomocniczego priorytet niższy.
Usługa Front Door implementuje sondy kondycji w celu monitorowania stanu zdrowia naszych usług, a jeśli wystąpi awaria, może odpowiednio przekierowywać ruch. Tryb routingu priorytetowego i monitorowanie punktu końcowego w usłudze Front Door jest podobne do tych funkcji w usłudze Traffic Manager, z tą różnicą, że sondy kondycji zawsze działają za pośrednictwem protokołu HTTP.
Cały ruch dla internetowego interfejsu użytkownika portalu wysyłkowego i jego interfejsów API odbywa się za pośrednictwem protokołu HTTPS, co umożliwia nam zamianę usługi Azure Traffic Manager na usługę Front Door. Możemy również skonfigurować usługę Front Door z priorytetowym przypisaniem zaplecza.
Azure CDN
W naszej architekturze z jednym regionem użyliśmy usługi Azure CDN do buforowania zawartości statycznej z usługi Azure Blob Storage. Usługa Azure CDN to globalna sieć serwerów, która buforuje zawartość statyczną blisko użytkowników. Nie musimy modyfikować tej usługi dla architektury obejmującej wiele regionów. Istnieją jednak zagadnienia dotyczące naszego konta usługi Azure Storage, które omówimy w następnej lekcji.