Udostępnij przez


Odporność chmurowa natywna

Wskazówka

Ta zawartość jest fragmentem e-książki, Architektura Cloud Native .NET Applications for Azure, dostępnej w .NET Docs lub jako bezpłatny plik PDF do pobrania, który można czytać offline.

Natywne aplikacje .NET dla chmury Azure - okładka miniatury eBooka.

Odporność to zdolność systemu do reagowania na awarie i nadal pozostaje funkcjonalna. Nie chodzi o unikanie awarii, ale akceptowanie awarii i konstruowanie usług natywnych dla chmury w celu reagowania na nie. Chcesz jak najszybciej wrócić do w pełni działającego stanu.

W przeciwieństwie do tradycyjnych aplikacji monolitycznych, w których wszystko działa razem w jednym procesie, systemy natywne dla chmury obejmują architekturę rozproszoną, jak pokazano na rysunku 6-1:

Rozproszone środowisko natywne dla chmury

Rysunek 6–1. Rozproszone środowisko natywne dla chmury

Na poprzedniej ilustracji każda mikrousługa i oparta na chmurze usługa zapasowa są wykonywane w osobnym procesie w ramach infrastruktury serwera, komunikując się za pośrednictwem wywołań opartych na sieci.

W tym środowisku usługa musi być wrażliwa na wiele różnych wyzwań:

  • Nieoczekiwane opóźnienie sieci — czas wysyłania żądania obsługi do odbiornika i z powrotem.

  • Błędy przejściowe — krótkotrwałe błędy łączności sieciowej.

  • Zablokowanie przez długotrwałą operację synchroniczną.

  • Proces hosta, który uległ awarii i jest uruchamiany ponownie lub przenoszony.

  • Przeciążona mikrousługa, która nie może odpowiedzieć przez krótki czas.

  • Operacja orkiestratora w locie, taka jak uaktualnienie stopniowe lub przenoszenie usługi z jednego węzła do innego.

  • Awarie sprzętowe.

Platformy w chmurze mogą wykrywać i rozwiązywać wiele z tych problemów z infrastrukturą. Może ponownie uruchomić, rozwinąć zakres, a nawet przenieść usługę na inny węzeł. Jednak aby w pełni wykorzystać tę wbudowaną ochronę, należy zaprojektować usługi, aby reagować na nie i rozwijać się w tym środowisku dynamicznym.

W poniższych sekcjach zapoznamy się z technikami obronnymi, które mogą być używane przez Twoją usługę i zarządzane zasoby w chmurze w celu zminimalizowania przestojów i zakłóceń.