Freigeben über


Cloudbasierte Resilienz

Tipp

Dieser Inhalt ist ein Auszug aus dem eBook, Architecting Cloud Native .NET Applications for Azure, verfügbar auf .NET Docs oder als kostenlose herunterladbare PDF, die offline gelesen werden kann.

Miniaturansicht des E-Books „Architecting Cloud Native .NET Applications for Azure“.

Resilienz ist die Fähigkeit Ihres Systems, auf Fehler zu reagieren und weiterhin funktionsfähig zu bleiben. Es geht nicht darum, Fehler zu vermeiden, sondern Fehler zu akzeptieren und Ihre cloudeigenen Dienste zu erstellen, um darauf zu reagieren. Sie möchten so schnell wie möglich zu einem voll funktionsfähigen Zustand zurückkehren.

Im Gegensatz zu herkömmlichen monolithischen Anwendungen, bei denen alles in einem einzigen Prozess zusammenläuft, nutzen cloudeigene Systeme eine verteilte Architektur, wie in Abbildung 6-1 dargestellt:

Verteilte cloudeigene Umgebung

Abbildung 6-1. Verteilte cloudeigene Umgebung

In der vorherigen Abbildung werden jeder Microservice und der cloudbasierte Backing Service in einem separaten Prozess über die Serverinfrastruktur hinweg ausgeführt, die über netzwerkbasierte Aufrufe kommunizieren.

Wenn Sie in dieser Umgebung arbeiten, muss ein Dienst für viele verschiedene Herausforderungen sensibel sein:

  • Unerwartete Wartezeit im Netzwerk – die Zeit, die eine Dienstanforderung benötigt, um zum Empfänger und zurück zu gelangen.

  • Vorübergehende Fehler – kurzlebige Netzwerkkonnektivitätsfehler.

  • Blockierung durch einen länger andauernden synchronen Vorgang.

  • Ein Hostprozess, der abgestürzt ist und gerade neu gestartet oder verschoben wird.

  • Ein überladener Microservice, der nicht für kurze Zeit reagieren kann.

  • Ein In-Flight-Orchestrierungsprozess, wie ein schrittweises Upgrade oder das Verschieben eines Dienstes von einem Node zu einem anderen.

  • Hardwarefehler.

Cloudplattformen können viele dieser Infrastrukturprobleme erkennen und beheben. Möglicherweise wird Ihr Dienst neu gestartet, skaliert und sogar auf einen anderen Knoten verteilt. Um diesen integrierten Schutz jedoch vollständig nutzen zu können, müssen Sie Ihre Dienste so entwerfen, dass sie darauf reagieren und in dieser dynamischen Umgebung gedeihen.

In den folgenden Abschnitten untersuchen wir Abwehrtechniken, die Ihr Dienst und verwaltete Cloudressourcen nutzen können, um Ausfallzeiten und Unterbrechungen zu minimieren.