Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
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:
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ń.