Niezawodny wzorzec aplikacji internetowej dla platformy .NET — planowanie implementacji

Azure App Service
Azure Front Door
Azure Cache for Redis
.NET

W tym artykule pokazano, jak zastosować wzorzec niezawodnej aplikacji internetowej. Wzorzec niezawodnej aplikacji internetowej to zestaw zasad i technik implementacji, które definiują sposób modyfikowania aplikacji internetowych (ponownego tworzenia platformy) podczas migracji do chmury. Koncentruje się on na minimalnych aktualizacjach kodu, które należy wprowadzić w chmurze.

Aby ułatwić stosowanie tych wskazówek, istnieje implementacja referencyjna wzorca niezawodnej aplikacji internetowej, którą można wdrożyć.

Diagram przedstawiający architekturę implementacji referencyjnej.Architektura implementacji referencyjnej. Pobierz plik programu Visio tej architektury.

Poniższe wskazówki używają implementacji referencyjnej jako przykładu w całym. Aby zaplanować implementację wzorca niezawodnej aplikacji internetowej, wykonaj następujące kroki:

Definiowanie celów biznesowych

Pierwszym krokiem przejścia do przetwarzania w chmurze jest przedstawienie celów biznesowych. Wzorzec niezawodnej aplikacji internetowej podkreśla znaczenie ustawiania zarówno natychmiastowych, jak i przyszłych celów aplikacji internetowej. Te cele wpływają na wybór usług w chmurze i architekturę aplikacji internetowej w chmurze.

Przykład: fikcyjna firma Relecloud sprzedaje bilety za pośrednictwem lokalnej aplikacji internetowej. Firma Relecloud ma pozytywną prognozę sprzedaży i przewiduje zwiększone zapotrzebowanie na aplikację internetową do tworzenia biletów. Aby sprostać temu zapotrzebowaniu, zdefiniowali cele aplikacji internetowej:

  • Stosowanie tanich zmian kodu o wysokiej wartości
  • Osiągnięcie celu poziomu usług (SLO) w wysokości 99,9%
  • Wdrażanie praktyk metodyki DevOps
  • Tworzenie środowisk zoptymalizowanych pod kątem kosztów
  • Zwiększanie niezawodności i zabezpieczeń

Infrastruktura lokalna firmy Relecloud nie była opłacalnym rozwiązaniem umożliwiającym osiągnięcie tych celów. Dlatego zdecydowali, że migracja aplikacji internetowej na platformę Azure była najbardziej opłacalnym sposobem osiągnięcia ich natychmiastowych i przyszłych celów.

Wybieranie odpowiednich usług zarządzanych

Po przeniesieniu aplikacji internetowej do chmury należy wybrać usługi platformy Azure spełniające wymagania biznesowe i dostosować je do bieżących funkcji lokalnej aplikacji internetowej. Wyrównanie pomaga zminimalizować nakład pracy ponownej platformy. Na przykład użyj usług, które umożliwiają zachowanie tego samego aparatu bazy danych i obsługę istniejącego oprogramowania pośredniczącego i struktur. Poniższe sekcje zawierają wskazówki dotyczące wybierania odpowiednich usług platformy Azure dla aplikacji internetowej.

Przykład: przed przejściem do chmury aplikacja internetowa usługi Relecloud była lokalną, monolityczną aplikacją ASP.NET. Uruchomiono ją na dwóch maszynach wirtualnych i miała bazę danych programu Microsoft SQL Server. Aplikacja internetowa cierpiała na typowe wyzwania związane z skalowalnością i wdrażaniem funkcji. Ten punkt początkowy, ich cele biznesowe i SLO doprowadziły do wyborów usług.

Platforma aplikacji

Wybierz najlepszą platformę hostingu aplikacji dla aplikacji internetowej. Platforma Azure ma wiele różnych opcji obliczeniowych, aby spełnić szereg wymagań dotyczących aplikacji internetowych. Aby uzyskać pomoc dotyczącą zawężania opcji, zobacz drzewo decyzyjne obliczeń platformy Azure.

Przykład: firma Relecloud wybrała usługę aplikacja systemu Azure jako platformę aplikacji z następujących powodów:

  • Umowa dotycząca wysokiego poziomu usług (SLA): ma wysoką umowę SLA spełniającą cel SLO środowiska produkcyjnego na poziomie 99,9%.

  • Mniejsze obciążenie związane z zarządzaniem: jest to w pełni zarządzane rozwiązanie, które obsługuje skalowanie, kontrole kondycji i równoważenie obciążenia.

  • Obsługa platformy .NET: obsługuje wersję platformy .NET zapisaną w aplikacji.

  • Możliwość konteneryzacji: aplikacja internetowa może być zbieżna z chmurą bez konteneryzacji, ale platforma aplikacji obsługuje również konteneryzację bez zmieniania usług platformy Azure

  • Skalowanie automatyczne: aplikacja internetowa może automatycznie skalować w górę, w dół i w poziomie na podstawie ruchu użytkowników i ustawień.

Zarządzanie tożsamościami

Wybierz najlepsze rozwiązanie do zarządzania tożsamościami dla aplikacji internetowej. Aby uzyskać więcej informacji, zobacz Porównanie rozwiązań do zarządzania tożsamościami i metod uwierzytelniania.

Przykład: Firma Relecloud wybrała identyfikator Entra firmy Microsoft z następujących powodów:

  • Uwierzytelnianie i autoryzacja: aplikacja musi uwierzytelniać i autoryzować pracowników centrum telefonicznego.

  • Skalowalne: umożliwia skalowanie w celu obsługi większych scenariuszy.

  • Kontrola tożsamości użytkownika: pracownicy centrum telefonicznego mogą używać istniejących tożsamości przedsiębiorstwa.

  • Obsługa protokołu autoryzacji: obsługuje protokół OAuth 2.0 dla tożsamości zarządzanych.

baza danych

Wybierz najlepszą bazę danych dla aplikacji internetowej. Aby uzyskać pomoc dotyczącą zawężania opcji, zobacz drzewo decyzyjne magazynu danych platformy Azure.

Przykład: aplikacja internetowa używała lokalnego programu SQL Server, a firma Relecloud chciała używać istniejącego schematu bazy danych, procedur składowanych i funkcji. Na platformie Azure jest dostępnych kilka produktów SQL, ale z następujących powodów firma Relecloud wybrała usługę Azure SQL Database :

  • Niezawodność: warstwa ogólnego przeznaczenia zapewnia wysoką nadmiarowość umowy SLA i wielu regionów. Może obsługiwać duże obciążenie użytkownika.

  • Mniejsze obciążenie związane z zarządzaniem: zapewnia zarządzane wystąpienie bazy danych SQL.

  • Obsługa migracji: obsługuje migrację bazy danych z lokalnego programu SQL Server.

  • Spójność z konfiguracjami lokalnymi: obsługuje istniejące procedury składowane, funkcje i widoki.

  • Odporność: obsługuje kopie zapasowe i przywracanie do punktu w czasie.

  • Wiedza i minimalna praca rework: usługa SQL Database wykorzystuje wiedzę i wymaga minimalnej pracy do wdrożenia.

Monitorowanie wydajności aplikacji

Wybierz monitorowanie wydajności aplikacji dla aplikacji internetowej. Szczegółowe informacje aplikacji to rozwiązanie do zarządzania wydajnością aplikacji natywnych dla platformy Azure (APM). Jest to funkcja rozwiązania do monitorowania platformy Azure, usługi Azure Monitor.

Przykład: Firma Relecloud zdecydowała się używać Szczegółowe informacje aplikacji z następujących powodów:

  • Integracja z usługą Azure Monitor: zapewnia najlepszą integrację z usługą Azure Monitor.

  • Wykrywanie anomalii: automatycznie wykrywa anomalie wydajności.

  • Rozwiązywanie problemów: ułatwia diagnozowanie problemów w uruchomionej aplikacji.

  • Monitorowanie: zbiera informacje o sposobie korzystania z aplikacji przez użytkowników i umożliwia łatwe śledzenie zdarzeń niestandardowych.

  • Luka w widoczności: rozwiązanie lokalne nie ma rozwiązania do monitorowania wydajności aplikacji. Szczegółowe informacje aplikacji zapewnia łatwą integrację z platformą aplikacji i kodem.

Pamięć podręczna

Wybierz, czy chcesz dodać pamięć podręczną do architektury aplikacji internetowej. Azure Cache for Redis to podstawowe rozwiązanie pamięci podręcznej platformy Azure. Jest to zarządzany magazyn danych w pamięci oparty na oprogramowaniu Redis.

Przykład: obciążenie aplikacji internetowej firmy Relecloud jest mocno niesymetryczne w kierunku wyświetlania koncertów i szczegółów miejsca. Usługa Azure Cache for Redis dodała z następujących powodów:

  • Mniejsze obciążenie związane z zarządzaniem: jest to w pełni zarządzana usługa.

  • Szybkość i wolumin: ma wysoką przepływność danych i odczyty o małych opóźnieniach dla często używanych, wolno zmieniających się danych.

  • Zróżnicowana możliwość obsługi: jest to ujednolicona lokalizacja pamięci podręcznej dla wszystkich wystąpień aplikacji internetowej do użycia.

  • Zewnętrzny magazyn danych: lokalne serwery aplikacji wykonały buforowanie lokalne maszyn wirtualnych. Ta konfiguracja nie odciążyła bardzo częstych danych i nie mogła unieważnić danych.

  • Sesje inne niż szminki: Stan sesji zewnętrznej obsługuje sesje inne niż szminki.

Moduł równoważenia obciążenia

Wybierz najlepszy moduł równoważenia obciążenia dla aplikacji internetowej. Platforma Azure ma kilka modułów równoważenia obciążenia. Aby uzyskać pomoc dotyczącą zawężania opcji, zobacz wybieranie najlepszego modułu równoważenia obciążenia dla aplikacji.

Przykład: usługa Relecloud potrzebowała modułu równoważenia obciążenia warstwy 7, który może kierować ruch między wieloma regionami. Usługa Relecloud potrzebowała wieloregionowej aplikacji internetowej, aby spełnić cel SLO na 99,9%. Usługa Relecloud wybrała usługę Azure Front Door z następujących powodów:

  • Globalne równoważenie obciążenia: jest to moduł równoważenia obciążenia warstwy 7, który może kierować ruch między wieloma regionami.

  • Zapora aplikacji internetowej: integruje się natywnie z zaporą aplikacji internetowej platformy Azure.

  • Elastyczność routingu: umożliwia zespołowi aplikacji konfigurowanie ruchu przychodzącego w celu obsługi przyszłych zmian w aplikacji.

  • Przyspieszanie ruchu: używa emisji anycast, aby dotrzeć do najbliższego punktu obecności platformy Azure i znaleźć najszybszą trasę do aplikacji internetowej.

  • Domeny niestandardowe: obsługuje niestandardowe nazwy domen z elastyczną weryfikacją domeny.

  • Sondy kondycji: aplikacja wymaga inteligentnego monitorowania sondy kondycji. Usługa Azure Front Door używa odpowiedzi z sondy, aby określić najlepsze źródło routingu żądań klientów.

  • Obsługa monitorowania: obsługuje wbudowane raporty z pulpitem nawigacyjnym typu all-in-one zarówno dla usługi Front Door, jak i wzorców zabezpieczeń. Możesz skonfigurować alerty zintegrowane z usługą Azure Monitor. Umożliwia aplikacji rejestrowanie każdego żądania i nieudanych sond kondycji.

  • Ochrona przed atakami DDoS: ma wbudowaną ochronę przed atakami DDoS warstwy 3-4.

  • Sieć dostarczania zawartości: umieszcza usługę Relecloud w celu korzystania z sieci dostarczania zawartości. Sieć dostarczania zawartości zapewnia przyspieszenie lokacji.

Zapora aplikacji internetowej

Wybierz zaporę aplikacji internetowej, aby chronić aplikację internetową przed atakami internetowymi. Usługa Azure Web Application Firewall to zapora aplikacji internetowej (WAF) platformy Azure i zapewnia scentralizowaną ochronę przed typowymi programami wykorzystującymi luki i lukami w zabezpieczeniach internetowych.

Przykład: firma Relecloud musi chronić aplikację internetową przed atakami internetowymi. Z następujących powodów korzystali z usługi Azure Web Application Firewall:

  • Ochrona globalna: zapewnia lepszą globalną ochronę aplikacji internetowych bez utraty wydajności.

  • Ochrona botnetu: zespół może monitorować i konfigurować pod kątem problemów z zabezpieczeniami z botnetów.

  • Równoważność ze środowiskiem lokalnym: rozwiązanie lokalne działało za zaporą aplikacji internetowej zarządzanej przez dział IT.

  • Łatwość użycia: Zapora aplikacji internetowej integruje się z usługą Azure Front Door.

Magazyn konfiguracji

Wybierz, czy chcesz dodać magazyn konfiguracji aplikacji do aplikacji internetowej. aplikacja systemu Azure Configuration to usługa umożliwiająca centralne zarządzanie ustawieniami aplikacji i flagami funkcji. Zapoznaj się z najlepszymi rozwiązaniami dotyczącymi usługi App Configuration, aby zdecydować, czy ta usługa jest odpowiednia dla twojej aplikacji.

Przykład: firma Relecloud chciała zastąpić konfigurację opartą na plikach centralnym magazynem konfiguracji, który integruje się z platformą aplikacji i kodem. Z następujących powodów dodali usługę App Configuration do architektury:

  • Elastyczność: obsługuje flagi funkcji. Flagi funkcji umożliwiają użytkownikom rezygnację z funkcji wczesnej wersji zapoznawczej i jej brak w środowisku produkcyjnym bez ponownego wdrażania aplikacji.

  • Obsługuje potok Git: źródło prawdy dla danych konfiguracji wymaganych do repozytorium Git. Potok potrzebny do zaktualizowania danych w centralnym magazynie konfiguracji.

  • Obsługuje tożsamości zarządzane: obsługuje tożsamości zarządzane w celu uproszczenia i zabezpieczenia połączenia z magazynem konfiguracji.

Menedżer wpisów tajnych

Użyj usługi Azure Key Vault , jeśli masz wpisy tajne do zarządzania na platformie Azure. Usługę Key Vault można uwzględnić w aplikacjach platformy .NET przy użyciu obiektu ConfigurationBuilder.

Przykład: lokalna aplikacja internetowa firmy Relecloud przechowywała wpisy tajne w plikach konfiguracji kodu, ale lepszym rozwiązaniem w zakresie zabezpieczeń jest zewnętrzna obsługa wpisów tajnych. Tożsamości zarządzane są preferowanym rozwiązaniem do nawiązywania połączenia z zasobami platformy Azure, ale firma Relecloud miała wpisy tajne aplikacji potrzebne do zarządzania. Usługa Relecloud używała usługi Key Vault z następujących powodów:

  • Szyfrowanie: obsługuje szyfrowanie magazynowane i przesyłane.

  • Tożsamości zarządzane: usługi aplikacji mogą używać tożsamości zarządzanych do uzyskiwania dostępu do magazynu wpisów tajnych.

  • Monitorowanie i rejestrowanie: ułatwia inspekcję dostępu i generuje alerty podczas zmiany przechowywanych wpisów tajnych.

  • Integracja: zapewnia natywną integrację z magazynem konfiguracji platformy Azure (App Configuration) i platformą hostingu internetowego (App Service).

Rozwiązanie magazynu

Wybierz najlepsze rozwiązanie magazynu dla aplikacji internetowej. Aby uzyskać więcej informacji, zobacz Przeglądanie opcji magazynu.

Przykład: lokalna aplikacja internetowa miała zainstalowany magazyn dysków na każdym serwerze internetowym, ale zespół chciał użyć zewnętrznego rozwiązania magazynu danych. Z następujących powodów usługa Relecloud wybrała usługę Azure Blob Storage :

  • Bezpieczny dostęp: aplikacja internetowa może wyeliminować punkty końcowe umożliwiające uzyskiwanie dostępu do magazynu udostępnianego publicznemu Internetowi z dostępem anonimowym.

  • Szyfrowanie: szyfruje dane magazynowane i przesyłane.

  • Odporność: obsługuje magazyn strefowo nadmiarowy (ZRS). Magazyn strefowo nadmiarowy replikuje dane synchronicznie w trzech strefach dostępności platformy Azure w regionie podstawowym. Każda strefa dostępności znajduje się w oddzielnej lokalizacji fizycznej, która ma niezależne zasilanie, chłodzenie i sieć. Ta konfiguracja powinna sprawić, że obrazy biletów będą odporne na utratę.

Zabezpieczenia punktu końcowego

Wybierz opcję włączenia dostępu prywatnego tylko do usług platformy Azure. Usługa Azure Private Link zapewnia dostęp do rozwiązań typu "platforma jako usługa" za pośrednictwem prywatnego punktu końcowego w sieci wirtualnej. Ruch między siecią wirtualną a usługą jest przesyłany przez sieć szkieletową firmy Microsoft.

Przykład: Usługa Relecloud używa usługi Private Link z następujących powodów:

  • Ulepszona komunikacja z zabezpieczeniami: umożliwia aplikacji prywatny dostęp do usług na platformie Azure i zmniejsza zużycie sieci magazynów danych w celu ochrony przed wyciekiem danych.

  • Minimalny nakład pracy: prywatne punkty końcowe obsługują platformę aplikacji internetowej i platformę bazy danych używaną przez aplikację internetową. Obie platformy dubluje istniejące konfiguracje lokalne w celu minimalnej zmiany.

Bezpieczeństwo sieci

Wybierz, czy chcesz dodać usługi zabezpieczeń sieci do sieci wirtualnych. Usługa Azure Firewall to stanowa zapora sieciowa, która sprawdza ruch sieciowy. Usługa Azure Bastion umożliwia bezpieczne łączenie się z maszynami wirtualnymi bez uwidaczniania portów RDP/SSH.

Przykład: Firma Relecloud przyjęła topologię sieci piasty i szprych i chciała umieścić udostępnione usługi zabezpieczeń sieci w centrum. Usługa Azure Firewall zwiększa bezpieczeństwo, sprawdzając cały ruch wychodzący z szprych w celu zwiększenia bezpieczeństwa sieci. Usługa Relecloud potrzebowała usługi Azure Bastion do zabezpieczania wdrożeń z hosta szybkiego dostępu w podsieci DevOps.

Wybieranie odpowiedniej architektury

Po zdefiniowaniu dostępnych środków dla aplikacji internetowej i wybraniu najlepszych usług w chmurze należy określić najlepszą architekturę aplikacji internetowej. Twoja architektura musi obsługiwać wymagania biznesowe, wymagania techniczne i slo.

Wybieranie nadmiarowości architektury

Cele biznesowe określają poziom infrastruktury i nadmiarowości danych potrzebnych aplikacji internetowej. Cel slo aplikacji internetowej zapewnia dobry punkt odniesienia dla zrozumienia wymagań dotyczących nadmiarowości. Oblicz złożone umowy SLA wszystkie zależności na krytycznej ścieżce dostępności. Zależności powinny obejmować usługi platformy Azure i rozwiązania firmy innej niż Microsoft.

Przypisz oszacowanie dostępności dla każdej zależności. Umowy dotyczące poziomu usług (SLA) zapewniają dobry punkt wyjścia, ale umowy SLA nie uwzględniają kodu, strategii wdrażania i decyzji dotyczących łączności architektury.

Przykład: firma Relecloud zidentyfikowała usługi na krytycznej ścieżce dostępności. Do szacowania dostępności użyli umów SLA platformy Azure. Na podstawie obliczeń złożonych umów SLA usługa Relecloud potrzebowała architektury obejmującej wiele regionów, aby spełnić cele SLO na 99,9%.

Wybieranie topologii sieci

Wybierz odpowiednią topologię sieci dla wymagań sieci web i sieci. Topologia sieci piasty i szprych to standardowa konfiguracja na platformie Azure. Zapewnia ona korzyści z kosztów, zarządzania i zabezpieczeń. Obsługuje również opcje łączności hybrydowej z sieciami lokalnymi.

Przykład: Firma Relecloud wybrała topologię sieci piasty i szprych, aby zwiększyć bezpieczeństwo wdrożenia w wielu regionach przy obniżonych kosztach i narzucie zarządzania.

Wybieranie nadmiarowości danych

Zapewnianie niezawodności danych przez dystrybucję ich w regionach i strefach dostępności platformy Azure; im większa ich separacja geograficzna, tym większa niezawodność.

  • Ustaw cel punktu odzyskiwania (RPO). Cel punktu odzyskiwania definiuje maksymalną tolerowaną utratę danych podczas przestoju, prowadząc do tego, jak często dane wymagają replikacji. Na przykład cel punktu odzyskiwania wynoszący jedną godzinę oznacza zaakceptowanie do godziny utraty ostatnich danych.

  • Implementowanie replikacji danych. Dopasowanie replikacji danych do architektury i celu punktu odzyskiwania. Platforma Azure zwykle obsługuje replikację synchroniczną w strefach dostępności. Łatwe zwiększanie niezawodności przy użyciu wielu stref. W przypadku aplikacji internetowych w wielu regionach w konfiguracji aktywne-pasywne replikowanie danych do regionu pasywnego zgodnie z celem punktu odzyskiwania aplikacji internetowej, zapewniając, że częstotliwość replikacji przekracza cel punktu odzyskiwania. Konfiguracje aktywne-aktywne wymagają synchronizacji danych niemal w czasie rzeczywistym w różnych regionach, co może wymagać korekt kodu.

  • Utwórz plan trybu failover. Opracowywanie planu przejścia w tryb failover (odzyskiwanie po awarii) przedstawiającego strategie reagowania na awarie określone przez przestój lub utratę funkcji. Określ cele czasu odzyskiwania (RTO) dla maksymalnego dopuszczalnego przestoju. Upewnij się, że proces trybu failover jest szybszy niż cel czasu odzyskiwania. Zdecyduj się na automatyczne lub ręczne mechanizmy trybu failover dla spójności i kontroli oraz szczegółowo powrót do normalnego procesu operacji. Przetestuj plan trybu failover, aby zapewnić skuteczność.

Następny krok

W tym artykule pokazano, jak zaplanować implementację wzorca niezawodnej aplikacji internetowej. Następnym krokiem jest zastosowanie technik implementacji wzorca niezawodnej aplikacji internetowej.