Punkt odniesienia o krytycznym znaczeniu w usłudze App Service

Azure App Service
Azure Front Door
Azure Cache for Redis
Azure App Configuration
Azure Monitor

W tym artykule opisano sposób wdrażania aplikacji internetowych o krytycznym znaczeniu przy użyciu usługi Azure App Service. Architektura używa niezawodnego wzorca aplikacji internetowej jako punktu wyjścia. Użyj tej architektury, jeśli masz starsze obciążenie i chcesz wdrożyć usługi typu platforma jako usługa (PaaS).

niezawodny wzorzec aplikacji internetowej dla platformy .NET zawiera wskazówki dotyczące aktualizowania lub ponownego tworzenia aplikacji internetowych, które są przenoszone do chmury. Takie podejście pomaga zminimalizować wymagane zmiany kodu i kierować cel poziomu usług (SLO) 99,9%. Obciążenia o krytycznym znaczeniu mają wymagania dotyczące wysokiej niezawodności i dostępności. Aby osiągnąć cel slo 99,95%, 99,99%lub nowszy, należy zastosować dodatkowe wzorce projektowe o krytycznym znaczeniu i rigor operacyjny. W tym artykule opisano kluczowe obszary techniczne oraz sposób wprowadzania i wdrażania rozwiązań projektowych o znaczeniu krytycznym.

Nuta

Wskazówki zawarte w tym artykule są oparte na metodologii projektowania i najlepszych rozwiązaniach z serii obciążeńWell-Architected Framework o znaczeniu krytycznym.

W poniższych sekcjach opisano, jak:

  • Przejrzyj istniejące obciążenie, aby zrozumieć jego składniki, przepływy użytkownika i system oraz wymagania dotyczące dostępności i skalowalności.
  • Opracowywanie i implementowanie architektury jednostek skalowania w celu zoptymalizowania kompleksowej skalowalności poprzez przedziały i standaryzacji procesu dodawania i usuwania pojemności.
  • Zaimplementuj bezstanowe, efemeryczne jednostki skalowania lub sygnatury wdrożenia, aby umożliwić skalowanie i wdrożenia bez przestojów.
  • Określ, czy obciążenie można podzielić na składniki, aby przygotować się do skalowalności. Poszczególne składniki są wymagane do skalowania i oddzielenia przepływów.
  • Przygotuj się do globalnej dystrybucji, wdrażając obciążenie w więcej niż jednym regionie świadczenia usługi Azure, aby zwiększyć bliskość klienta i przygotować się do potencjalnych awarii regionalnych.
  • Rozdziel składniki i zaimplementuj architekturę opartą na zdarzeniach.

Architektura

Na poniższym diagramie opisano poprzednie zagadnienia dotyczące niezawodnego wzorca aplikacji internetowej.

Diagram przedstawiający niezawodny wzorzec aplikacji internetowej z zastosowaną jednostką skalowania. pobierz plik programu Visio tej architektury.

Czerwone pole reprezentuje jednostkę skalowania z usługami, które skalują się razem. Aby efektywnie skalować je razem, zoptymalizuj rozmiar usługi, jednostkę SKU i dostępne adresy IP. Na przykład maksymalna liczba żądań, które usługa Azure App Configuration obsługuje, jest skorelowana z liczbą żądań na sekundę zapewnianą przez jednostkę skalowania. Po dodaniu większej pojemności w regionie należy również dodać więcej pojedynczych jednostek skalowania.

Te poszczególne jednostki skalowania nie mają żadnych zależności od siebie i komunikują się tylko z usługami udostępnionymi poza jednostką skalowania indywidualnego. Te jednostki skalowania można używać w wdrożenia niebieskiego, wdrażając nowe jednostki skalowania, sprawdzając, czy działają prawidłowo, i stopniowo przenosząc na nie ruch produkcyjny.

W tym scenariuszu uważamy jednostki skalowania za tymczasowe, co optymalizuje procesy wdrażania i zapewnia skalowalność w obrębie regionów i między nimi. W przypadku tego podejścia należy przechowywać dane tylko w bazie danych, ponieważ baza danych jest replikowana do regionu pomocniczego. Jeśli musisz przechowywać dane w jednostce skalowania, rozważ użycie usługi Azure Cache for Redis do magazynowania w jednostce skalowania. Jeśli jednostka skalowania musi zostać porzucona, ponowne wypełnienie pamięci podręcznej może zwiększyć opóźnienie, ale nie powoduje awarii.

Usługa Application Insights jest wykluczona z jednostki skalowania. Wyklucz usługi, które przechowują lub monitorują dane. Rozdziel je na własną grupę zasobów przy użyciu własnego cyklu życia.

Po zastąpieniu jednostki skalowania lub wdrożeniu nowej zachowaj dane historyczne i użyj jednego wystąpienia dla każdego regionu.

Aby uzyskać więcej informacji, zobacz Projektowanie aplikacji obciążeń o znaczeniu krytycznym w usłudze Azure.

Składniki

Ta architektura używa następujących składników.

Alternatywy

W niezawodnym wzorcu aplikacji internetowej można wykonywać następujące czynności:

  • użyć usługi Azure Kubernetes Service (AKS) zamiast usługi App Service. Ta opcja dobrze sprawdza się w przypadku złożonych obciążeń, które mają dużą liczbę mikrousług. Usługa AKS zapewnia większą kontrolę nad podstawową infrastrukturą i umożliwia złożone konfiguracje wielowarstwowe.
  • Konteneryzowanie obciążenia. Usługa App Service obsługuje konteneryzację, ale w tym przykładzie obciążenie nie jest konteneryzowane. Użyj kontenerów, aby zwiększyć niezawodność i przenośność.

Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące platformy aplikacji dotyczące obciążeń o znaczeniu krytycznym w usłudze Azure.

Zagadnienia dotyczące wysokiej dostępności

Niezależnie od wybranej platformy aplikacji zalecamy określanie priorytetów użycia stref dostępności dla obciążeń produkcyjnych.

zestawów dostępności rozmieszczania wdrożeń w wielu domenach błędów i aktualizacji w centrum danych. strefy dostępności rozmieszczania wdrożeń w poszczególnych centrach danych w regionie świadczenia usługi Azure. Strefy dostępności są często priorytetowe, ale używana strategia zależy od obciążenia. Na przykład obciążenia wrażliwe na opóźnienia lub czatty mogą korzystać z określania priorytetów zestawów dostępności. W przypadku rozłożenia obciążenia między strefy dostępności może zwiększyć opóźnienie i koszt ruchu między strefami. W przypadku korzystania ze stref dostępności upewnij się, że wszystkie usługi w jednostce skalowania obsługują je. Wszystkie usługi we wzorcu niezawodnej aplikacji internetowej obsługują strefy dostępności.

Wybieranie platformy danych

Wybrana platforma bazy danych ma wpływ na ogólną architekturę obciążenia, zwłaszcza obsługę konfiguracji aktywne-aktywne lub aktywne-pasywne platformy. Niezawodny wzorzec aplikacji internetowej korzysta z usługi Azure SQL, która nie obsługuje natywnie wdrożeń aktywnych-aktywnych, które mają operacje zapisu w więcej niż jednym wystąpieniu. W tej konfiguracji platforma danych jest ograniczona do strategii aktywne-pasywne. (częściowa) strategia aktywne-aktywne na poziomie aplikacji jest możliwa, jeśli istnieją repliki tylko do odczytu we wszystkich regionach i zapisujesz tylko w jednym regionie.

Diagram przedstawiający architekturę z replikacją usługi Azure SQL Database w każdym regionie.

Wiele baz danych jest często spotykanych w złożonych architekturach, takich jak architektury mikrousług, które mają bazę danych dla każdej usługi. Wiele baz danych umożliwia wdrożenie wielu podstawowych baz danych zapisu, takich jak Usługa Azure Cosmos DB, co zwiększa wysoką dostępność i małe opóźnienia. Opóźnienie między regionami może powodować ograniczenia. Ważne jest, aby wziąć pod uwagę niefunkcjonalne wymagania i czynniki, takie jak spójność, funkcjonalność, koszt i złożoność. Umożliwianie poszczególnym usługom używania oddzielnych magazynów danych i wyspecjalizowanych technologii danych w celu spełnienia ich unikatowych wymagań. Aby uzyskać więcej informacji, zobacz zagadnienia dotyczące platformy danych dotyczące obciążeń o znaczeniu krytycznym na platformie Azure.

Definiowanie modelu kondycji

W złożonych wielowarstwowych obciążeniach rozmieszczonych w wielu centrach danych i regionach geograficznych należy zdefiniować model kondycji.

Aby zdefiniować model kondycji:

  • Definiowanie przepływów użytkownika i systemu
  • Określanie i zrozumienie zależności między usługami
  • Zrozumienie wpływu awarii lub obniżenia wydajności jednej z usług na ogólne obciążenie
  • Monitorowanie i wizualizowanie środowiska klienta w celu umożliwienia odpowiedniego monitorowania i ulepszania ręcznych i zautomatyzowanych akcji.

Diagram pokazujący, jak awaria usługi App Configuration tworzy awarie dla innych usług.

Na poprzednim diagramie pokazano, jak awaria lub spadek pojedynczego składnika, takiego jak App Configuration, może spowodować potencjalne obniżenie wydajności klienta. Po rozdzieleniu składników na jednostki skalowania można zatrzymać wysyłanie ruchu do objętej części aplikacji, takiej jak jednostka skalowania, której dotyczy problem, lub cały region.

Kryteria określania kondycji jednostki skalowania są definiowane w modelu kondycji. Ten model jest następnie połączony z punktem końcowym kondycji jednostki skalowania, która umożliwia globalnemu modułowi równoważenia obciążenia wykonywanie zapytań dotyczących kondycji jednostki skalowania i używanie tych informacji do podejmowania decyzji dotyczących routingu.

Aby uzyskać więcej informacji, zobacz Modelowanie kondycji i obserwowanie obciążeń o znaczeniu krytycznym na platformie Azure.

Zabezpieczenia i sieć

Obciążenia o znaczeniu krytycznym mają ścisłe wymagania dotyczące sieci i zabezpieczeń. Zastosuj staranność szczególnie w przypadku obciążeń migrowanych ze środowiska lokalnego, ponieważ nie wszystkie ustanowione lokalne rozwiązania zabezpieczeń przekładają się na środowisko chmury. Zalecamy ponowne ewaluowanie wymagań dotyczących zabezpieczeń podczas migracji aplikacji.

Tożsamość jest często podstawowym obwodem zabezpieczeń dla wzorców natywnych dla chmury. Klienci korporacyjni mogą potrzebować bardziej znaczących środków zabezpieczeń. Aby spełnić wymagania dotyczące zabezpieczeń sieci, usługi Azure PaaS mogą używać usługi Azure Private Link do implementowania sieci jako obwodu zabezpieczeń. Usługa Private Link pomaga zagwarantować, że usługi są dostępne tylko z poziomu sieci wirtualnej. Wszystkie usługi są następnie dostępne tylko za pośrednictwem prywatnych punktów końcowych. Na poniższym diagramie pokazano, jak jedynym publicznym punktem końcowym dostępnym z Internetu jest usługa Azure Front Door.

Diagram przedstawiający punkty końcowe dostępne z Internetu w tej architekturze.

Aby wzorzec niezawodnej aplikacji internetowej skonfigurować sieć jako obwód zabezpieczeń, musi być używany:

  • Usługa Private Link dla wszystkich usług, które go obsługują.
  • Usługa Azure Front Door Premium jako jedyny publiczny punkt końcowy dostępny z Internetu.
  • Szybkie pola dostępu do usług za pośrednictwem usługi Azure Bastion.
  • Własnych agentów kompilacji, którzy mogą uzyskiwać dostęp do usług.

Innym typowym wymaganiem sieciowym dla aplikacji o krytycznym znaczeniu jest ograniczenie ruchu wychodzącego w celu zapobiegania eksfiltracji danych. Ograniczanie ruchu wychodzącego przez kierowanie zapory platformy Azure przez odpowiednie urządzenie zapory. Następnie przefiltruj ruch przy użyciu urządzenia. Architektura punktu odniesienia o krytycznym znaczeniu dla platformy Azure z kontrolkami sieciowymi, używa zapory i usługi Private Link.

Wdrażanie i testowanie

Przestój spowodowany błędnym wydaniem lub błędem ludzkim może być problemem dla obciążenia, które musi być zawsze dostępne. Oto kilka kluczowych obszarów, które należy wziąć pod uwagę:

  • Wdrożenia bez przestojów
  • Wdrożenia efemeryczne niebiesko-zielone
  • Analiza cyklu życia poszczególnych i grupowanych składników
  • Ciągła walidacja

wdrożenia bez przestojów są kluczowe dla obciążeń o znaczeniu krytycznym. Obciążenie, które musi być zawsze uruchomione, nie może mieć okna obsługi do wdrożenia nowszych wersji. Aby obejść to ograniczenie, architektura platformy Azure o znaczeniu krytycznym jest zgodna ze wzorcem wdrożeń bez przestojów. Zmiany są wdrażane jako nowe jednostki skalowania lub sygnatury, które są testowane na końcu przed przyrostowym kierowaniem ruchu do nich. Po skierowaniu całego ruchu do nowej sygnatury stare sygnatury są wyłączone i usuwane.

Aby uzyskać więcej informacji, zobacz Wdrażanie i testowanie obciążeń o znaczeniu krytycznym na platformie Azure.

Następne kroki