Niezawodność w Azure

W środowiskach chmurowych awarie są nieuniknione. Błędy sprzętowe, wady oprogramowania, błędy konfiguracji, skoki ruchu, awarie centrum danych, a nawet awarie całego regionu mogą wystąpić. Niezawodność to zdolność obciążenia do spełnienia oczekiwań biznesowych, nawet podczas awarii lub zakłóceń. W przypadku odpowiedniej architektury i operacji awarie nie muszą powodować przestojów.

Nieplanowany przestój może mieć ogromny wpływ. Wiąże się to z kosztami finansowymi i szkodami dla klienta i zaufania użytkowników. Poza tymi bezpośrednimi skutkami niska niezawodność wpływa na zobowiązania dotyczące zgodności i pozycjonowanie konkurencyjne. Twoje zespoły poświęcają więcej czasu na strzelaniny i mniej czasu na dostarczanie wartości. Może nawet wywołać kary na poziomie usług umownych.

Azure zapewnia odporną infrastrukturę i usługi zarządzane, ale niezawodność obciążenia zależy od podejmowania decyzji projektowych i operacyjnych: sposobu projektowania architektury, konfigurowania usług, zarządzania zależnościami, automatyzowania odpowiedzi na problemy oraz testowania oprogramowania i procesów. Wczesne projektowanie pod kątem niezawodności pomaga zminimalizować awarie i zapewnić, że w momencie ich wystąpienia obciążenie działa w przewidywalny i kontrolowany sposób, który jest zgodny z priorytetami biznesowymi.

Niezawodne obciążenie ma dwie istotne właściwości:

  • Jest odporny, co oznacza, że może pochłaniać awarie i zmiany w środowisku, kontynuując działanie na akceptowalnym poziomie usług.
  • Można go również odzyskać, co oznacza, że w przypadku zakłóceń obciążenie może przywrócić normalne operacje w zdefiniowanym czasie i limitach utraty danych.

Potrzebujesz obu właściwości, aby spełnić rzeczywiste oczekiwania dotyczące dostępności i zachować ciągłość działalności biznesowej.

Niezawodność w Azure działa w trzech połączonych warstwach:

  • Aplikacja: Wybór architektury, praktyki i procesy, w tym zarządzanie zależnościami, elementy Runbook, automatyzacja i testowanie
  • Funkcje niezawodności, w tym:
    • Usługi obciążeń i konfiguracja: Sposób konfigurowania usług Azure, które uruchamiają obciążenie, oraz możliwości niezawodności konfigurowanych w ramach tych usług
    • Azure usług platformy: usługi Azure, które obsługują niezawodność obciążeń, takie jak równoważenie obciążenia, dns, routing ruchu i monitorowanie
  • Podstawy niezawodności: wbudowana odporność Azure, taka jak strefy dostępności, regiony i bezpieczne praktyki wdrażania

Te warstwy współpracują ze sobą, aby określić ogólną niezawodność obciążenia. Zrozumienie ich ułatwia rozróżnienie między tym, co Azure zapewnia domyślnie, a co należy zaprojektować, skonfigurować i obsługiwać.

Ten model ułatwia wykorzystanie tego, co zapewnia Azure, jednocześnie biorąc na siebie odpowiedzialność za to, co można zaprojektować. Ten artykuł koncentruje się na tym, co Azure zapewnia w tych warstwach. Aby uzyskać kompleksowe wskazówki dotyczące warstwy projektowania i operacji obciążeń (projektowania odpornych rozwiązań i wzorców architektury), zobacz Azure Well-Architected Framework, a zwłaszcza filar niezawodności.

Wspólna odpowiedzialność za niezawodność

Niezawodność w Azure jest zgodna z modelem wspólnej odpowiedzialności. Microsoft zapewnia odporną platformę za pośrednictwem Azure. Projektujesz odporne obciążenie.

Diagram przedstawiający warstwy niezawodności w Azure.

  • Microsoft jest właścicielem podstaw platformy i usług niezawodności platformy. Ta własność obejmuje odporną infrastrukturę (nadmiarowość fizyczną, izolację błędów i naprawianie), strefy dostępności, dystrybucję regionalną, bezpieczne praktyki wdrażania i usługi na poziomie platformy, takie jak równoważenie obciążenia, routing ruchu i monitorowanie. Microsoft odpowiada za niezawodność platformy Azure oraz niezawodność usług zgodnie z definicją w opublikowanej umowie SLA i dokumentacji poszczególnych usług, takich jak przewodnik po niezawodności.

  • Jesteś właścicielem projektu i operacji obciążenia. Odpowiadasz za tłumaczenie możliwości Azure na niezawodne zachowanie obciążenia za pomocą decyzji dotyczących architektury, wyborów konfiguracji, praktyk operacyjnych i testowania.

    Azure nie może znać celów dostępności, akceptowalnych kompromisów, kontekstu biznesowego lub wymagań specyficznych dla aplikacji. Tylko te wymagania można zdefiniować i odpowiednio zaprojektować. Azure zapewnia możliwości, wybierając je i konfigurując. Można na przykład skonfigurować zachowanie trybu failover dla usług, takich jak bazy danych, i zdefiniować sondy kondycji modułu równoważenia obciążenia, które dokładnie reprezentują kondycję aplikacji, aby decyzje dotyczące routingu ruchu były poprawne, nawet podczas awarii.

    Important

    Platforma zapewnia bloki konstrukcyjne, a nie kompleksowe gwarancje. Twoje wybory projektowe i operacyjne określają, czy te możliwości przekładają się na niezawodne obciążenie. Aby uzyskać pełny podział modelu wspólnej odpowiedzialności, zobacz Wspólna odpowiedzialność w chmurze.

Umowy dotyczące poziomu usług (SLA) definiują zobowiązania dotyczące niezawodności i oczekiwań w ramach usług Azure. Zrozumienie umów SLA jest niezbędne podczas oceniania usług i projektowania pod kątem określonych celów dostępności. Azure usługi publikują zobowiązania SLA, które mogą się różnić w zależności od konfiguracji i poziomu nadmiarowości. Inne usługi używane przez innych dostawców mogą również publikować umowy SLA. Aby uzyskać kompleksowe wskazówki dotyczące sposobu działania umów SLA i powiązania z oczekiwaniami dotyczącymi dostępności obciążenia, zobacz Umowy dotyczące poziomu usług.

Odporne podstawy w Azure

Azure zaprojektowano z wieloma warstwami odporności wbudowanymi w samą platformę. Te podstawy zapewniają podstawowe możliwości, na których tworzone są niezawodne obciążenia:

  • Odporność infrastruktury fizycznej: Azure centra danych są zaprojektowane z nadmiarową infrastrukturą, takimi jak zasilanie, chłodzenie i łączność sieciowa. Kontroler sieci szkieletowej Azure automatycznie izoluje awarie sprzętowe i zarządza nimi. Wykrywa błędy i organizuje migrację obciążeń do sprzętu w dobrej kondycji bez interwencji klienta.

  • Regiony: Azure działa w ponad 70 regionach na całym świecie. Ta dystrybucja geograficzna umożliwia obciążeniom wytrzymanie zakłóceń i awarii w całym regionie dzięki zaplanowanym możliwościom trybu failover, a jednocześnie spełnić wymagania dotyczące rezydencji danych. Aby uzyskać więcej informacji, zobacz omówienie regionów Azure.

  • Strefy dostępności: Wiele Azure regionów obejmuje fizycznie oddzielne centra danych w tym samym regionie. Te strefy dostępności są połączone przez szybkie, małe opóźnienia sieci. Każda strefa ma niezależne zasilanie, chłodzenie i sieć w celu ochrony przed awariami na poziomie centrum danych przy zachowaniu synchronicznych możliwości replikacji dla wielu usług Azure. Aby uzyskać więcej informacji, zobacz Co to są strefy dostępności?

  • Bezpieczne wdrożenia: Azure implementuje kontrolowane, rozłożone procesy wdrażania na potrzeby aktualizacji i zmian usług platformy w celu zminimalizowania ryzyka zakłóceń w działaniu usługi. Platforma wdraża aktualizacje stopniowo, takie jak między domenami błędów, strefami dostępności i regionami, z automatycznymi funkcjami wycofywania w przypadku wykrycia problemów. Takie podejście zapewnia, że zmiany platformy nie powodują ryzyka związanego z niezawodnością obciążeń klientów.

Azure zapewnia te podstawy na poziomie platformy automatycznie. Tworzą warstwę podstawową, na której tworzysz niezawodne obciążenia. Jednak nadal musisz poprawnie skonfigurować usługi i połączyć te możliwości w sposób, który spełnia określone wymagania biznesowe.

Azure usług, które obsługują niezawodność

Azure zapewnia możliwości platformy, które przekładają pojęcia dotyczące niezawodności na bloki konstrukcyjne z możliwością działania dla architektury. Te możliwości współpracują ze sobą, aby umożliwić architektury odporne, a wiele usług Azure obejmuje wbudowane implementacje tych wzorców:

Capability Description
Optymalizacja niezawodności oparta na sztucznej inteligencji oparta na sztucznej inteligencji — optymalizacja niezawodności Używa funkcji opartych na sztucznej inteligencji do oceny i poprawy niezawodności. Te możliwości analizują wzorce obciążeń, identyfikują potencjalne zagrożenia i udostępniają zalecenia, które ułatwiają zespołom przejście od reaktywnego rozwiązywania problemów do proaktywnego zarządzania niezawodnością. Te możliwości obejmują sygnały niezawodności i tłumaczą je na zalecenia umożliwiające podejmowanie działań, które pomagają zespołom w określaniu priorytetów i ulepszaniu niezawodności w czasie.

Azure udostępnia kilka usług niezawodności opartych na sztucznej inteligencji, w tym:
- Azure możliwości odporności
- Możliwości odporności w agentach (wersja zapoznawcza) w Azure Copilot
- Azure agentA SRE

Te usługi analizują wzorce obciążeń i sugerują ulepszenia w celu zoptymalizowania poziomu niezawodności na całym tablicy.
Równoważenie obciążenia i zarządzanie ruchem Równoważenie obciążenia i zarządzanie ruchem Umożliwia niezawodność przez kierowanie ruchu między nadmiarowymi wystąpieniami i automatyczne obsługiwanie trybu failover. Ta funkcja jest niezbędna do utrzymania dostępności usługi w przypadku awarii poszczególnych składników.

Azure zapewnia równoważenie obciążenia w wielu warstwach, w tym:
- Azure Load Balancer dla dystrybucji ruchu TCP/UDP w warstwie 4
- Azure Application Gateway routingu HTTP w warstwie 7 z kontrolami kondycji obsługującymi aplikacje
- Azure Front Door globalne równoważenia obciążenia HTTP z szybkim trybem failover
- Azure Traffic Manager dla globalnej dystrybucji punktów końcowych opartych na systemie DNS

Jeśli potrzebujesz pomocy przy wyborze modułu równoważenia obciążenia do użycia w danym scenariuszu, zobacz Opcje równoważenia obciążenia.
Tworzenie kopii zapasowych i ochrona danych Kopia zapasowa i ochrona danych Zabezpiecza przed utratą i uszkodzeniem danych oraz umożliwia odzyskiwanie po wystąpieniu problemu.

Azure oferuje kilka możliwości tworzenia kopii zapasowych i odzyskiwania, w tym:
- Azure Backup dla scentralizowanej kopii zapasowej z konfigurowalnym przechowywaniem maszyn wirtualnych, kontenerów obiektów blob, plików i niektórych baz danych
— Natywne funkcje tworzenia kopii zapasowych i przywracania w wielu usługach Azure, w tym w większości usług baz danych
- Bicep i inną infrastrukturę jako narzędzia kodu do tworzenia kopii zapasowych konfiguracji, ochrony dryfu i szybkiego środowiska rekreacyjnego

Zapoznaj się z każdym przewodnikiem po niezawodności usługi Azure, aby zrozumieć podejścia do tworzenia kopii zapasowych obsługiwane przez usługę.
Replikacja geograficzna i replikacja geograficzna trybu failover oraz tryb failover Umożliwia odzyskiwanie po awariach regionalnych za pośrednictwem replikacji danych między regionami i automatycznych możliwości trybu failover.

Azure Site Recovery organizuje odzyskiwanie po awarii dla obciążeń maszyn wirtualnych przy użyciu automatycznej replikacji i sekwencjonowania trybu failover. Wiele usług Azure oferuje również wbudowane funkcje replikacji geograficznej, w tym:
- Azure Cosmos DB z natywną replikacją danych między regionami i możliwościami trybu failover
- Azure API Management z natywnymi możliwościami trybu failover między regionami

Przewodniki dotyczące niezawodności usługi szczegółowo opisują wszystkie opcje replikacji geograficznej dostępne dla każdej usługi.
Monitorowanie i obserwowanie monitorowania i obserwowania Zapewnia kompleksowy wgląd w stan niezawodności i umożliwia proaktywne reagowanie na problemy.

Azure zapewnia wiele usług obserwacji, w tym:
- Azure Monitor i Application Insights na potrzeby monitorowania, alertów i śledzenia zależności w czasie rzeczywistym
- Modele kondycji w Azure Monitor do monitorowania kondycji całego obciążenia
- Azure Service Health na potrzeby spersonalizowanych alertów i wskazówek dotyczących problemów z usługą Azure, które mogą mieć wpływ na obciążenia

Te możliwości ułatwiają zrozumienie, czy spełniasz wymagania dotyczące niezawodności i szybko reagujesz, gdy wystąpią problemy.
Testowanie niezawodności i walidacja — testowanie i walidacja niezawodności Pomaga sprawdzić, czy obciążenia działają zgodnie z oczekiwaniami w warunkach awarii i pomaga zapewnić, że rozwiązanie spełnia wymagania dotyczące niezawodności przed problemami dotyczącymi użytkowników.

Azure zapewnia usługi testowania niezawodności, w tym:
- Azure Chaos Studio w przypadku eksperymentów polegających na kontrolowanym wstrzyknięciu błędów w celu zweryfikowania zachowania samonaprawiania i odporności na rzeczywiste awarie
- Azure App Testing do testowania wydajności i funkcjonalności, aby zrozumieć, jak działają aplikacje, w tym pod obciążeniem

Włączanie niezawodności w usługach Azure

Platforma zapewnia możliwości niezawodności warstwy usług za pośrednictwem kilkudziesięciu usług Azure, z których każda ma określone mocne strony i przypadki użycia. Przewodnik po niezawodności każdej usługi zawiera szczegółowe informacje na temat sposobu, w jaki usługa może pozostać dostępna w różnych scenariuszach, na przykład:

  • Błędy przejściowe, które są krótkimi sporadycznymi awariami. Przewodniki dotyczące usług zawierają zalecenia dotyczące najlepszych rozwiązań w celu zminimalizowania ich wpływu, takich jak ponawianie prób i używanie zestawów SDK dostępnych Microsoft.
  • Awarie strefy dostępności, dzięki czemu usługa może automatycznie przekierowywać żądania w celu zachowania wysokiej dostępności.
  • Awarie całego regionu, dzięki czemu usługa może przejść w tryb failover do regionu pomocniczego i kontynuować działanie podczas zakłóceń w regionie.

Aby wyświetlić przewodniki dotyczące niezawodności dla wielu usług Azure, zobacz Przewodniki dotyczące niezawodności według usługi.

Projektowanie niezawodnych obciążeń

Niezawodność wynika z ciągłego cyklu definiowania celów, projektowania pod kątem awarii i szybkiego odzyskiwania, testowania założeń i ulepszania poprzez uczenie operacyjne. Skorzystaj z przewodników dotyczących niezawodności platformy Azure Well-Architected i usług, aby dowiedzieć się, co zapewnia każda usługa domyślnie i co wymaga jawnej konfiguracji. Aby uzyskać ustrukturyzowane podejście do implementowania niezawodności, zobacz model dojrzałości do niezawodności platformy Azure Well-Architected Framework.

Podczas projektowania połącz podstawowe pojęcia z pojęciami technicznymi. Podstawowe pojęcia, takie jak ciągłość działalności biznesowej i wspólna odpowiedzialność , określają, jakie wyniki należy osiągnąć. Pojęcia techniczne, takie jak nadmiarowość, replikacja, kopia zapasowa, tryb failover i powrót po awarii definiują sposób implementowania tych wyników w architekturze i operacjach. Umowy dotyczące poziomu usług pomagają zrozumieć gwarancje otrzymane od dostawców usług.

Niezależność i miejsce przechowywania danych

Podczas projektowania niezawodności należy uwzględnić wymagania dotyczące niezależności i rezydencji danych na wczesnym etapie, ponieważ mają one wpływ na wybór regionu, strategię replikacji i ścieżki trybu failover. Odporna architektura może nadal nie spełniać wymogów zgodności, jeśli przełączenie awaryjne lub przenoszenie danych przekracza granice objęte ograniczeniami. Aby uzyskać więcej informacji, zobacz Niezawodność i niezależność.

Niezawodność Azure jest osiągana dzięki połączeniu odpornych podstaw platform z przemyślanym projektowaniem obciążeń i operacjami. Zrozumienie, co zapewnia Azure i gdzie należy podejmować decyzje projektowe i konfiguracyjne, można tworzyć systemy, które nadal spełniają oczekiwania biznesowe, nawet w obecności awarii.