Udostępnij za pośrednictwem


Odporność rozwiązań natywnych dla chmury

Napiwek

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

Cloud Native .NET apps for Azure eBook cover thumbnail.

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 szybko powró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:

Distributed cloud-native environment

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.

  • Blokowanie 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 to spowodować ponowne uruchomienie, skalowanie w poziomie, a nawet ponowne dystrybuowanie usługi do innego węzła. 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ń.