Wdrażanie aplikacji internetowych przy użyciu strefowo nadmiarowej usługi Azure Red Hat OpenShift

Azure Red Hat OpenShift
Azure Cosmos DB
Azure Front Door

Ten artykuł zawiera kompleksowe omówienie obciążenia aplikacji internetowej w usłudze Azure Red Hat OpenShift w konfiguracji strefowo nadmiarowej. Usługi strefowo nadmiarowe replikują usługi i dane w strefach dostępności, aby chronić je przed pojedynczymi punktami awarii i zapewnić wysoką dostępność.

Przed utworzeniem środowiska produkcyjnego za pomocą usługi Azure Red Hat OpenShift przeczytaj artykuł Azure Red Hat OpenShift landing zone accelerator (Akcelerator strefy docelowej usługi Azure Red Hat OpenShift).

Architektura

Diagram przedstawiający architekturę aplikacji internetowej o wysokiej dostępności.

Pobierz plik programu Visio z tą architekturą.

Przepływ pracy

  • Użytkownik wysyła żądanie na platformę Azure.
  • Usługa Azure Front Door odbiera żądanie i kieruje żądanie do aplikacji internetowej hostowanej w usłudze Azure Red Hat OpenShift.
  • Aplikacja internetowa uruchamia żądanie przy użyciu usług Azure Key Vault, Azure Cosmos DB i Azure Container Registry.
  • Aplikacja internetowa wysyła odpowiedź z powrotem do użytkownika.

Składniki

  • Identyfikator entra firmy Microsoft lub usługa Azure AD B2C uwierzytelnia użytkowników. W tej architekturze identyfikator Entra firmy Microsoft zapewnia bezpieczny, szczegółowy dostęp do zasobów zewnętrznych.
  • Usługa Azure Front Door jest interfejsem publicznym dla wszystkich żądań internetowych. Działa jako globalny zwrotny serwer proxy HTTP i pamięć podręczna dla usług zaplecza. Usługa Azure Front Door zwiększa bezpieczeństwo i wydajność tej architektury, na przykład dodanie ochrony przed atakami typu "rozproszona odmowa usługi" (DDoS) w warstwie 4.
  • Azure Red Hat OpenShift to orkiestrator kontenerów oparty na platformie Kubernetes, który hostuje aplikacje i usługi interfejsu API oraz udostępnia interfejs dla usług zaplecza. Usługa Azure Red Hat OpenShift pełni rolę podstawowej platformy obliczeniowej w tej architekturze.
  • Usługa Container Registry obsługuje zgodne obrazy kontenerów docker i Open Container Initiative (OCI). Usługa Container Registry obsługuje nadmiarowość stref, która zapewnia wysoką dostępność i odporność na awarie strefy. Obsługuje również replikację geograficzną, która replikuje usługę w wielu regionach. W tej architekturze usługa Container Registry zapewnia prywatny dostęp klastra ARO do obrazów kontenerów zarządzanych lokalnie, które są częścią obciążenia.
  • Usługa Azure Red Hat OpenShift używa integracji sieci wirtualnej do łączenia się z usługami zaplecza za pośrednictwem prywatnej sieci wirtualnej. Integracja sieci wirtualnej zapewnia bezpieczną sieć z usługą Azure Red Hat OpenShift i innymi usługami platformy Azure w tej architekturze.
  • Usługa Azure Cosmos DB udostępnia bazy danych dokumentów NoSQL dla usług frontonu. Usługa Azure Cosmos DB jest używana przez obciążenie w tej architekturze do przechowywania danych użytkownika.
  • Prywatne punkty końcowe umożliwiają połączenia z usługami Platformy Azure PaaS z prywatnych sieci wirtualnych i umożliwiają wyłączenie publicznych punktów końcowych w tych usługach. W tej architekturze prywatne punkty końcowe z integracją sieci wirtualnej uniemożliwiają ruch sieciowy z prywatnej usługi Azure Red Hat OpenShift podczas komunikowania się z usługami PaaS.
  • Usługa Azure Prywatna strefa DNS konfiguruje i aktualizuje rekordy DNS, których wymagają usługi prywatnego punktu końcowego. W tej architekturze usługa Azure Prywatna strefa DNS jest używana do rozpoznawania nazw w sieciach prywatnych.
  • Usługa Key Vault bezpiecznie przechowuje wpisy tajne i certyfikaty, które są dostępne przez usługi platformy Azure. W tej architekturze usługa Azure Key Vault bezpiecznie przechowuje wpisy tajne dla aplikacji działających w usłudze Azure Red Hat OpenShift.
  • Usługi Azure Monitor i Application Insights zbierają dzienniki usług i metryki wydajności aplikacji w celu obserwowania. W tej architekturze usługa Azure Monitor jest synchronizacją dzienników zarówno dla dzienników platformy, jak i obciążeń. Usługa Application Insights jest przeznaczona specjalnie dla dzienników i metryk pochodzących z kodu obciążenia.

Alternatywy

  • Zalecana jest usługa DNS zarządzana przez platformę Azure, ale możesz użyć własnego dostawcy DNS.
  • Należy użyć usługi aplikacja systemu Azure Gateway zamiast usługi Azure Front Door, jeśli większość użytkowników znajduje się w pobliżu regionu świadczenia usługi Azure obsługującego obciążenie i jeśli nie potrzebujesz buforowania zawartości. Użyj usługi Azure DDoS Protection , aby chronić usługi Application Gateway dostępne z Internetu.
  • Wdróż wystąpienie usługi Azure API Management w warstwie Premium z nadmiarowością stref jako alternatywą dla hostowania interfejsów API frontonu, interfejsów API zaplecza lub obu tych rozwiązań. Aby uzyskać więcej informacji na temat nadmiarowości stref usługi API Management, zobacz Migrowanie usługi Azure API Management do obsługi stref dostępności.
  • Możesz użyć platformy OpenShift Container Platform (OCP) lub dystrybucji społeczności pochodzenia platformy Kubernetes (OKD) na maszynach wirtualnych platformy Azure zamiast usługi Azure Red Hat OpenShift. OCP lub OKD to alternatywy infrastruktury jako usługi (IaaS) dla w pełni zarządzanej usługi, takiej jak Azure Red Hat OpenShift. W celu zapewnienia nadmiarowości strefy należy użyć usługi Azure Virtual Machine Scale Sets . Aby uzyskać więcej informacji, zobacz Azure Red Hat OpenShift.

Szczegóły scenariusza

W tej architekturze opisano sposób tworzenia strefowo nadmiarowych usług w rozwiązaniu, które zapewnia wysoką dostępność i jest odporne na awarie strefowe.

Strefy dostępności to oddzielne lokalizacje fizyczne w każdym regionie świadczenia usługi Azure. Strefy dostępności rozpowszechniają rozwiązanie w wielu niezależnych strefach w regionie, co umożliwia aplikacji kontynuowanie działania w przypadku awarii jednej strefy. Ta architektura opiera się na infrastrukturze stref dostępności, która znajduje się w wielu regionach. Aby uzyskać listę regionów obsługujących strefy dostępności platformy Azure, zobacz Regiony platformy Azure ze strefami dostępności.

W przypadku platform hostingu na dużą skalę często trudno jest zachować ich wysoką dostępność. Wysoka dostępność wymaga historycznie złożonych i kosztownych wdrożeń w wielu regionach z kompromisami spójności danych i wysokiej wydajności. Strefy dostępności rozwiązują wiele z tych problemów. Większość głównych usług platformy Azure i wiele wyspecjalizowanych usług platformy Azure zapewnia obsługę stref dostępności. Wszystkie usługi platformy Azure w tej architekturze są strefowo nadmiarowe, co upraszcza wdrażanie i zarządzanie. Aby uzyskać więcej informacji, zobacz Usługi platformy Azure, które obsługują strefy dostępności.

Aby zachować umowy dotyczące poziomu usług (SLA), strefowo nadmiarowe rozwiązanie Azure Red Hat OpenShift zarządza i ogranicza błędy, w tym awarie stref. Nadmiarowość strefy zapewnia czas odzyskiwania równy zero dla awarii strefy. Jeśli pojedyncza strefa w regionie jest niedostępna, nie utracisz żadnych danych, a obciążenie będzie nadal działać. Nadmiarowość strefy jest konfigurowana w czasie wdrażania i jest zarządzana przez usługi, więc nie trzeba zarządzać wdrożeniami strefowymi ani przypinania stref.

W tej architekturze klaster usługi Azure Red Hat OpenShift jest wdrażany w trzech strefach dostępności w regionach platformy Azure, które je obsługują. Klaster składa się z trzech węzłów płaszczyzny sterowania i co najmniej trzech węzłów roboczych. Aby zwiększyć nadmiarowość, węzły są rozmieszczone w różnych strefach.

Usługi Azure Front Door, Microsoft Entra ID i Azure DNS są globalnie dostępne usługi odporne na awarie strefy i całego regionu. Wszystkie inne usługi w tej architekturze są strefowo nadmiarowe.

Potencjalne przypadki użycia

Azure Red Hat OpenShift to usługa orkiestracji kontenerów korzystająca z platformy Kubernetes. Nadaje się do wielu przypadków użycia, takich jak:

  • Bankowość
  • Handel akcjami
  • Handel elektroniczny
  • Media społecznościowe
  • Aplikacje sieci Web
  • Aplikacje mobilne
  • Aplikacje przetwarzania wsadowego
  • Przesyłanie strumieniowe multimediów
  • Obciążenia uczenia maszynowego

Zalecenia

Poniższe zalecenia dotyczą większości scenariuszy.

Azure Front Door

  • Użyj certyfikatów zarządzanych przez platformę Azure we wszystkich aplikacjach frontonu, aby zapobiec błędnej konfiguracji certyfikatu i problemom z wygaśnięciem.
  • Włącz buforowanie tras, aby zwiększyć dostępność. Pamięć podręczna usługi Azure Front Door dystrybuuje zawartość dynamiczną, a także zawartość statyczną do węzłów brzegowych punktu obecności platformy Azure (POP). Buforowanie zmniejsza obciążenie serwerów pochodzenia i zwiększa wydajność.
  • Wdróż usługę Azure Front Door Premium i skonfiguruj zasady zapory aplikacji internetowej (WAF) przy użyciu zestawu reguł zarządzanych przez firmę Microsoft. Zastosuj zasady do wszystkich domen niestandardowych. Użyj trybu zapobiegania, aby wyeliminować ataki internetowe, które mogą spowodować awarię usługi pochodzenia.

Azure Red Hat OpenShift

  • Upewnij się, że region świadczenia usługi Azure, w którym wdrożono usługę Azure Red Hat OpenShift, obsługuje strefy dostępności. Aby uzyskać więcej informacji, zobacz Regiony platformy Azure z obsługą stref dostępności.
  • Klaster usługi Azure Red Hat OpenShift zależy od niektórych usług. Upewnij się, że te usługi obsługują nadmiarowość stref i zostały skonfigurowane. Aby uzyskać więcej informacji, zobacz Usługi platformy Azure z obsługą stref dostępności.
  • Usuń stan z kontenerów i zamiast tego użyj usługi Azure Storage lub database.
  • Skonfiguruj wiele replik we wdrożeniach z odpowiednią konfiguracją budżetu zakłóceń, aby stale zapewniać usługę aplikacji pomimo zakłóceń, takich jak awarie sprzętu w strefach.
  • Bezpieczny dostęp do usługi Azure Red Hat OpenShift. Aby upewnić się, że żądania nie mogą pominąć zapory aplikacji internetowej usługi Azure Front Door, zezwalaj tylko na ruch usługi Azure Front Door. Aby uzyskać więcej informacji na temat ograniczania dostępu do określonego wystąpienia usługi Azure Front Door, zobacz Bezpieczny dostęp do usługi Azure Red Hat OpenShift za pomocą usługi Azure Front Door.

Container Registry

Aby uzyskać więcej informacji, zobacz Enable zone redundancy in Container Registry for resiliency and high availability and Use Container Registry with Azure Red Hat OpenShift (Włączanie nadmiarowości stref w usłudze Container Registry w celu zapewnienia odporności i wysokiej dostępności ) oraz Use Container Registry with Azure Red Hat OpenShift (Używanie usługi Container Registry z usługą Azure Red Hat OpenShift).

Azure Cosmos DB

Key Vault

Usługa Key Vault jest strefowo nadmiarowa w dowolnym regionie, w którym są dostępne strefy dostępności. W tej architekturze usługa Key Vault jest wdrażana z włączonym prywatnym punktem końcowym i wyłączonym publicznym punktem końcowym. Aby uzyskać więcej informacji na temat prywatnych punktów końcowych dla usługi Key Vault, zobacz Integrowanie usługi Key Vault z usługą Private Link.

Prywatne strefy DNS platformy Azure

Aby uprościć zarządzanie systemem DNS, zintegruj prywatne punkty końcowe z prywatnymi strefami usługi Azure DNS. Aby uzyskać więcej informacji, zobacz Konfiguracja usługi DNS prywatnego punktu końcowego platformy Azure.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Azure Well-Architected Framework.

Niezawodność

Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Design review checklist for Reliability(Lista kontrolna dotycząca niezawodności).

Ta architektura zapewnia niezawodność, zapewniając dostępność, odporność i niezawodne funkcje usługi globalnej.

Dostępność

W przypadku prawidłowego wdrożenia infrastruktury strefy dostępności ta architektura zapewnia doskonałą dostępność dla niższych kosztów i niższych kosztów operacyjnych niż inne rozwiązania. Ta architektura ogranicza ryzyko awarii strefy w regionie świadczenia usługi Azure, ponieważ usługi strefowo nadmiarowe wytrzymają awarię podczas działania w ramach zdefiniowanej umowy SLA.

Awarie regionalne są mało prawdopodobne, ale możliwe. W przypadku awarii regionalnej usługi są niedostępne we wszystkich strefach dostępności w regionie. Połącz tę architekturę strefowo nadmiarową z architekturą z wieloma regionami, aby ograniczyć ryzyko awarii regionu. Zaplanuj architekturę z wieloma regionami, aby skrócić czas odzyskiwania, jeśli cały region jest niedostępny.

Projekty obejmujące wiele regionów są bardziej złożone i często droższe niż projekty wielostrefowe w jednym regionie, ale projekty obejmujące wiele regionów zapewniają możliwość dalszej optymalizacji dostępności i ogólnej niezawodności.

Uwaga

Przeprowadź ocenę ryzyka, aby określić, czy rozwiązanie wymaga architektury obejmującej wiele regionów.

Odporność

Projekty wielostrefowe oparte na strefach dostępności oferują dostępność i odporność, która spełnia lub przekracza wymagania biznesowe większości organizacji. Jeśli jednak chcesz replikować dane do regionu pomocniczego na potrzeby odzyskiwania po awarii, dostępne opcje zależą od używanych usług platformy Azure.

Na przykład usługa Azure Storage obsługuje replikację obiektów dla blokowych obiektów blob. Usługi danych platformy Azure, takie jak Azure Cosmos DB, oferują replikację danych do innych regionów świadczenia usługi Azure, które mają ciągłą kopię zapasową. Możesz użyć tych funkcji, aby przywrócić rozwiązanie w przypadku wystąpienia awarii. Aby uzyskać więcej informacji, zobacz Ciągła kopia zapasowa z przywracaniem do punktu w czasie w usłudze Azure Cosmos DB.

Usługi globalne

Błędy w usługach globalnych, takich jak Azure Front Door i Microsoft Entra ID, są rzadkie, ale wpływ awarii może być wysoki. Aby poprawić odzyskiwanie w przypadku wystąpienia awarii, przygotuj i przećmij elementy Runbook.

Można na przykład zmniejszyć czas przestoju usługi Azure Front Door przy użyciu elementu Runbook w celu wdrożenia bramy aplikacja systemu Azure i zmiany rekordów DNS w celu przekierowania ruchu do momentu przywrócenia usługi Azure Front Door.

Aby uzyskać więcej informacji, zobacz Tworzenie odporności w infrastrukturze zarządzania tożsamościami i dostępem.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotyczącazabezpieczeń.

  • Rozważ wdrożenie klastra prywatnego.
  • Używaj prywatnych punktów końcowych w usługach platformy Azure, które nie są dostępne z publicznego Internetu.
  • Domyślnie cała komunikacja między usługami na platformie Azure jest szyfrowana za pomocą protokołu Transport Layer Security (TLS). Skonfiguruj usługę Azure Front Door tak, aby akceptowała tylko ruch HTTPS i ustawiła minimalną wersję protokołu TLS.
  • Tożsamości zarządzane uwierzytelniają komunikację między usługami platformy Azure, gdy są dostępne. Aby uzyskać więcej informacji, zobacz Co to są tożsamości zarządzane dla zasobów platformy Azure?
  • Aby zarządzać wpisami tajnymi, certyfikatami i parametry połączenia w klastrze oraz chronić je, połącz klaster Azure Red Hat OpenShift z platformą Kubernetes z włączoną usługą Azure Arc. Użyj rozszerzenia dostawcy wpisów tajnych usługi Key Vault, aby pobrać wpisy tajne.
  • Skonfiguruj usługę Microsoft Defender for Containers w celu zapewnienia zabezpieczeń klastrów, kontenerów i aplikacji. Usługa Defender for Containers jest obsługiwana za pośrednictwem platformy Kubernetes z obsługą usługi Azure Arc. Skanuj obrazy pod kątem luk w zabezpieczeniach za pomocą usługi Microsoft Defender lub innego rozwiązania do skanowania obrazów.
  • Skonfiguruj integrację firmy Microsoft Entra, aby używać identyfikatora Entra firmy Microsoft do uwierzytelniania użytkowników (na przykład SRE, SecOps lub deweloperów aplikacji) w klastrze usługi Azure Red Hat OpenShift.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dlaoptymalizacji kosztów.

Architektury strefowo nadmiarowe są tańsze niż alternatywy dla wielu regionów, ponieważ usługi są wdrażane w jednym regionie. Istnieje jednak kilka konsekwencji związanych z kosztami, o których należy pamiętać:

  • Niektóre usługi wymagają wdrożenia minimalnej liczby wystąpień lub replik w celu uzyskania nadmiarowości strefy.
  • Magazyn strefowo nadmiarowy (ZRS) i magazyn lokalnie nadmiarowy (LRS) mają różne ceny. Aby uzyskać więcej informacji, zobacz Cennik usługi Storage.
  • Prywatne punkty końcowe są w większości dostępne w jednostkach SKU usługi platformy Azure w warstwie Premium. Prywatne punkty końcowe generują opłaty godzinowe i opłaty za przepustowość. Aby uzyskać więcej informacji, zobacz Cennik usługi Private Link.

Zoptymalizuj koszty, rezerwując zasoby z wyprzedzeniem. Wiele usług w tej architekturze kwalifikuje się do cen pojemności zarezerwowanej. Aby uzyskać więcej informacji, zobacz Rezerwacje.

Koszty możesz szacować za pomocą kalkulatora cen platformy Azure.

Doskonałość operacyjna

Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i działają w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca doskonałości operacyjnej.

Wszystkie usługi platformy Azure, które są platformą jako usługą (PaaS) są zintegrowane z usługą Azure Monitor. Postępuj zgodnie z najlepszymi rozwiązaniami usługi Azure Monitor (niezawodność, zabezpieczenia, optymalizacja kosztów, doskonałość operacyjna i wydajność) w celu:

  • Tworzenie modelu kondycji w celu kwantyfikacji kondycji aplikacji w kontekście wymagań biznesowych.
  • Skonfiguruj odpowiednią ilość zbierania danych dziennika.
  • Tworzenie pulpitów nawigacyjnych platformy Azure w celu ujednolicenia danych w jednym widoku dla zespołów operacyjnych.
  • Utwórz pomyślną strategię zgłaszania alertów.
  • Integrowanie usługi Application Insights z aplikacjami w celu śledzenia metryk wydajności aplikacji.
  • Aby dostarczyć powiadomienia, gdy jest wymagana akcja bezpośrednia, użyj systemu alertów, takiego jak alerty metryk usługi Container Insights lub interfejs użytkownika alertów usługi Azure Red Hat OpenShift.
  • Rozważ różne metody monitorowania i rejestrowania usługi Azure Red Hat OpenShift, aby uzyskać wgląd w kondycję zasobów i przewidzieć potencjalne problemy.
  • Zapoznaj się z macierzą odpowiedzialności usługi Azure Red Hat OpenShift, aby dowiedzieć się, jak firma Microsoft, Red Hat i klienci dzielą się obowiązkami dla klastrów.
  • Automatyzowanie wdrożeń usług za pomocą rozwiązania Bicep — języka szablonu do wdrażania infrastruktury jako kodu (IaC). Ponieważ usługi platformy Azure w tej architekturze mają prywatne punkty końcowe, nie można używać agentów hostowanych przez firmę Microsoft usługi Azure Pipelines ani modułów uruchamiających hostowane w usłudze GitHub. Użyj rozwiązań, takich jak samodzielnie hostowani agenci usługi Azure Pipelines lub moduły uruchamiające hostowane w usłudze GitHub.
  • Ciągłe weryfikowanie obciążenia w celu przetestowania wydajności i odporności całego rozwiązania przy użyciu usług, takich jak testowanie obciążenia platformy Azure i usługa Azure Chaos Studio.

Wydajność

Wydajność to możliwość skalowania obciążenia w celu spełnienia wymagań, które są na nim nakładane przez użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu pod kątem wydajności.

  • Zasoby pamięci podręcznej w usłudze Azure Front Door do dystrybucji obciążeń do lokalizacji brzegowych.
  • Przejrzyj limity subskrypcji i limity przydziału , aby upewnić się, że usługi są skalowane na żądanie.
  • Monitorowanie wydajności aplikacji przy użyciu usługi Application Insights.
  • Obciążenia testów wydajnościowych, aby mierzyć wszelkie opóźnienia spowodowane połączeniami między strefami.
  • Wybierz odpowiednie rozmiary maszyn wirtualnych dla obciążeń. Wybierz rozmiar wystarczająco duży, aby uzyskać korzyści ze zwiększonej gęstości, ale nie tak duży, że klaster nie może obsłużyć obciążenia węzła, który kończy się niepowodzeniem.
  • Użyj żądań zasobników i limitów, aby zarządzać zasobami obliczeniowymi w klastrze. Żądania zasobników i limity informują harmonogram platformy Kubernetes, który przypisuje zasoby obliczeniowe do zasobnika. Ogranicz użycie zasobów w projekcie przy użyciu zakresów limitów.
  • Zdefiniuj żądania zasobów zasobnika i limity w manifestach wdrażania aplikacji i wymuś je za pomocą usługi Azure Policy.
  • Zoptymalizuj wartości żądań procesora CPU i pamięci oraz zmaksymalizuj wydajność zasobów klastra przy użyciu narzędzia Do automatycznego skalowania pionowych zasobników.
  • Skalowanie zasobników w celu zaspokojenia zapotrzebowania przy użyciu narzędzia Horizontal Pod Autoscaler.
  • Zdefiniuj klaster ClusterAutoScaler i MachineAutoScaler, aby skalować maszyny, gdy w klastrze zabraknie zasobów w celu obsługi większej liczby wdrożeń.

Wdrażanie tego scenariusza

Aby wdrożyć tę architekturę, zobacz akcelerator strefy docelowej usługi Azure Red Hat OpenShift i skojarzone repozytorium GitHub.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Autorzy zabezpieczeń:

Inni współautorzy:

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki