Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie Arbeitsauslastungsarchitekturen entwerfen, sollten Sie Branchenmuster verwenden, die häufig auftretende Herausforderungen bewältigen. Muster können Ihnen helfen, absichtliche Kompromisse innerhalb von Workloads zu treffen und für Ihr gewünschtes Ergebnis zu optimieren. Sie können auch dazu beitragen, Risiken zu mindern, die aus bestimmten Problemen stammen, was sich auf Sicherheit, Leistung, Kosten und Vorgänge auswirken kann. Wenn diese Risiken nicht abgemildert werden, führen diese Risiken schließlich zu Zuverlässigkeitsproblemen. Diese Muster werden von realen Erfahrungen unterstützt, sind für Cloud-Skalierungs- und Betriebsmodelle konzipiert und sind inhärent anbieterunabhängig. Die Verwendung bekannter Muster als Möglichkeit zum Standardisieren Ihres Workloaddesigns ist eine Komponente der betrieblichen Exzellenz.
Viele Entwurfsmuster unterstützen direkt eine oder mehrere Architekturpfeiler. Entwurfsmuster, die die Zuverlässigkeitssäule unterstützen, priorisieren die Verfügbarkeit der Arbeitsauslastung, die Selbsterhaltung, Wiederherstellung, Daten- und Verarbeitungsintegrität und die Eindämmung von Fehlfunktionen.
In der folgenden Tabelle sind Architekturentwurfsmuster zusammengefasst, die die Ziele der Zuverlässigkeit unterstützen.
| Muster | Zusammenfassung |
|---|---|
| Botschafter | Kapselt und verwaltet die Netzwerkkommunikation, indem übergreifende Aufgaben im Zusammenhang mit der Netzwerkkommunikation ausgelagert werden. Die resultierenden Hilfsdienste initiieren die Kommunikation im Auftrag des Clients. Dieser Vermittlungspunkt bietet die Möglichkeit, Zuverlässigkeitsmuster zur Netzwerkkommunikation hinzuzufügen, z. B. Wiederholung oder Pufferung. |
| Back-Ends für Frontends | Individualisiert die Dienstebene einer Workload, indem separate Dienste erstellt werden, die exklusiv für eine bestimmte Frontend-Schnittstelle sind. Aufgrund dieser Trennung wirkt sich eine Fehlfunktion auf der Dienstebene, die einen Client unterstützt, möglicherweise nicht auf die Verfügbarkeit des Zugriffs eines anderen Clients aus. Wenn Sie verschiedene Clients unterschiedlich behandeln, können Sie Zuverlässigkeitsbemühungen basierend auf erwarteten Clientzugriffsmustern priorisieren. |
| Schott | Führt beabsichtigte und vollständige Segmentierung zwischen Komponenten ein, um den Auswirkungsbereich von Fehlfunktionen zu isolieren. Diese Fehlerisolationsstrategie versucht, Fehler nur für den Bulkhead zu enthalten, der das Problem aufweist, und verhindert auswirkungen auf andere Bulkheads. |
| Cache-Aside | Optimiert den Zugriff auf häufig gelesene Daten, indem ein Cache eingeführt wird, der bei Bedarf aufgefüllt wird. Der Cache wird dann für nachfolgende Anforderungen für dieselben Daten verwendet. Die Zwischenspeicherung erstellt die Datenreplikation und kann auf begrenzte Weise verwendet werden, um die Verfügbarkeit häufig aufgerufener Daten beizubehalten, wenn der Ursprungsdatenspeicher vorübergehend nicht verfügbar ist. Wenn im Cache eine Fehlfunktion auftritt, kann die Workload auch auf den Ursprungsdatenspeicher zurückgreifen. |
| Sicherungsautomat | Verhindert kontinuierliche Anforderungen an eine fehlerhafte oder nicht verfügbare Abhängigkeit. Dadurch verhindert dieses Muster die Überladung einer fehlerhaften Abhängigkeit. Sie können dieses Muster auch verwenden, um eine sanfte Degradation der Arbeitslast auszulösen. Schaltkreisbrecher werden häufig mit der automatischen Wiederherstellung gekoppelt, um sowohl die Selbsterhaltung als auch die Selbstheilung zu ermöglichen. |
| Anspruchsprüfung | Trennt Daten vom Nachrichtenfluss, wodurch eine Möglichkeit zum getrennten Abrufen der Daten im Zusammenhang mit einer Nachricht bereitgestellt wird. Nachrichtenbusse bieten nicht die gleiche Zuverlässigkeit und Notfallwiederherstellung, die häufig in dedizierten Datenspeichern vorhanden sind, sodass die Trennung der Daten aus der Nachricht eine höhere Zuverlässigkeit für die zugrunde liegenden Daten bieten kann. Diese Trennung ermöglicht auch einen Ansatz für die Wiederherstellung von Nachrichtenwarteschlangen nach einem Notfall. |
| Ausgleichstransaktion | Stellt einen Mechanismus zum Wiederherstellen von Fehlern bereit, indem die Auswirkungen von zuvor angewendeten Aktionen rückgängig zu machen sind. Dieses Muster behebt Fehlfunktionen in kritischen Arbeitsauslastungspfaden mithilfe von Kompensationsaktionen, die Prozesse wie das direkte Zurücksetzen von Datenänderungen, das Unterbrechen von Transaktionssperren oder sogar das Ausführen des systemeigenen Systemverhaltens zum Umkehren des Effekts umfassen können. |
| Konkurrierende Verbraucher | Wendet verteilte und gleichzeitige Verarbeitung an, um Elemente in einer Warteschlange effizient zu verarbeiten. Dieses Modell erstellt Redundanz bei der Warteschlangenverarbeitung, indem Verbraucher als Replikate behandelt werden, sodass ein Instanzfehler nicht verhindert, dass andere Verbraucher Warteschlangennachrichten verarbeiten. |
| Edge-Workload-Konfiguration | Verwaltet die Konfiguration für verteilte Edgeworkloads, indem die Cloud als gewünschte Wahrheitsquelle behandelt wird, während sichergestellt wird, dass die Konfiguration während Verbindungsunterbrechungen lokal verfügbar bleibt. Dieses Muster verbessert die Zuverlässigkeit, indem Konfigurationsabgleich, Drifterkennung und Rollback unterstützt werden, um aus teilweisen Updates oder ungültigen Konfigurationen wiederherzustellen. |
| Event Sourcing | Behandelt Zustandsänderungen als Ereignisreihe und erfasst sie in einem unveränderlichen, nur anfügebaren Protokoll. Sie können dieses Muster verwenden, wenn eine zuverlässige Geschichte von Änderungen in einem komplexen Geschäftsprozess von entscheidender Bedeutung ist. Es erleichtert auch die Zustandsrekonstruktion, wenn Sie Zustandsspeicher wiederherstellen müssen. |
| Verbundidentität | Delegiert die Vertrauensstellung an einen Identitätsanbieter, der sich außerhalb der Arbeitslast für die Verwaltung von Benutzern befindet und die Authentifizierung für Ihre Anwendung bereitstellt. Durch das Entladen der Benutzerverwaltung und Authentifizierung wird die Zuverlässigkeit für diese Komponenten an den Identitätsanbieter verschoben, der in der Regel eine hohe SLA aufweist. Darüber hinaus müssen Authentifizierungskomponenten während der Workload-Notfallwiederherstellung wahrscheinlich nicht im Rahmen des Workload-Wiederherstellungsplans behandelt werden. |
| Gateway-Aggregation | Vereinfacht Clientinteraktionen mit Ihrer Workload, indem Aufrufe an mehrere Back-End-Dienste in einer einzigen Anforderung aggregiert werden. Mit dieser Topologie können Sie die vorübergehende Fehlerbehandlung von einer verteilten Implementierung über Clients in eine zentrale Implementierung verschieben. |
| Gateway-Entlastung | Überträgt die Anforderungsverarbeitung an ein Gateway-Gerät, bevor und nachdem die Anforderung an einen Backend-Knoten weitergeleitet wird. Durch das Entladen dieser Verantwortung auf ein Gateway wird die Komplexität von Anwendungscode auf Back-End-Knoten reduziert. In einigen Fällen ersetzt das Auslagern die Funktionalität vollständig durch eine zuverlässige, von der Plattform bereitgestellte Funktion. |
| Gateway-Routing | Leitet eingehende Netzwerkanforderungen an verschiedene Back-End-Systeme basierend auf Anforderungsabsichten, Geschäftslogik und Back-End-Verfügbarkeit weiter. Das Gatewayrouting ermöglicht es Ihnen, den Datenverkehr nur an fehlerfreie Knoten in Ihrem System weiterzuleiten. |
| Geode | Stellt Systeme bereit, die in aktiv aktiven Verfügbarkeitsmodi in mehreren Regionen arbeiten. Dieses Muster verwendet die Datenreplikation, um das ideale Szenario zu unterstützen, bei dem jeder Client mit einer beliebigen geografischen Instanz verbunden werden kann. Sie kann Ihrer Arbeitsauslastung helfen, einem oder mehreren regionalen Ausfällen standzuhalten. |
| Gesundheitsendpunktüberwachung | Bietet eine Möglichkeit, die Integrität oder den Status eines Systems zu überwachen, indem ein Endpunkt verfügbar ist, der speziell für diesen Zweck entwickelt wurde. Sie können diesen Endpunkt verwenden, um den Zustand Ihrer Workload sowie für Warnungen und Dashboards zu verwalten. Sie können es auch als Signal für die Selbstheilungskorrektur verwenden. |
| Indextabelle | Optimiert das Abrufen von Daten in verteilten Datenspeichern, indem Clients das Nachschlagen von Metadaten ermöglichen, sodass Daten direkt abgerufen werden können, ohne dass vollständige Datenspeicherüberprüfungen ausgeführt werden müssen. Da Clients über einen Nachschlagevorgang auf ihre Hard-, Partitions- oder Endpunkt verweisen, können Sie dieses Muster verwenden, um einen Failover-Ansatz für den Datenzugriff zu unterstützen. |
| Wahl des Leiters | Richtet einen Leiter von Instanzen einer verteilten Anwendung ein. Der Leiter koordiniert Die Verantwortlichkeiten, die mit dem Erreichen eines Ziels zusammenhängen. Dieses Muster mindert die Auswirkungen von Fehlfunktionen von Knoten durch eine zuverlässige Umleitung der Arbeit. Es implementiert auch Failover über Konsensalgorithmen, wenn ein Führungsleiter fehlfällt. |
| Rohre und Filter | Unterteilt die komplexe Datenverarbeitung in eine Reihe unabhängiger Stufen, um ein bestimmtes Ergebnis zu erzielen. Die eigenständige Verantwortung jeder Stufe ermöglicht eine gezielte Aufmerksamkeit und vermeidet die Ablenkung der Datenverarbeitung. |
| Prioritätswarteschlange | Stellt sicher, dass Elemente mit höherer Priorität verarbeitet und vor Elementen mit niedrigerer Priorität abgeschlossen werden. Durch das Trennen von Elementen basierend auf geschäftlicher Priorität können Sie die Zuverlässigkeitsbemühungen auf die wichtigsten Arbeiten konzentrieren. |
| Publisher/Subscriber | Entkoppelt Komponenten einer Architektur, indem die direkte Client-zu-Service- oder Client-zu-Dienst-Kommunikation mit der Kommunikation über einen Zwischennachrichtenbroker oder Ereignisbus ersetzt wird. |
| Queue-Based Lastverteilung | Steuert die Anzahl eingehender Anforderungen oder Aufgaben, indem sie in einer Warteschlange gepuffert werden und der Warteschlangenprozessor sie in kontrolliertem Tempo verarbeitet. Dieser Ansatz kann Resilienz gegen plötzliche Nachfragespitzen bieten, indem die Ankunft von Vorgängen von ihrer Verarbeitung abgekoppelt wird. Es kann auch Fehlfunktionen in der Warteschlangenverarbeitung isolieren, sodass sie sich nicht auf die Datenaufnahme auswirken. |
| Ratenbegrenzung | Regelt die Rate der Clientanforderungen, um Drosselungsfehler zu reduzieren und unbegrenzte Wiederholungen bei Fehlern zu vermeiden. Diese Taktik schützt den Client, indem sie die Einschränkungen und Kosten der Kommunikation mit einem Dienst erkennt, wenn der Dienst darauf ausgelegt ist, das Erreichen bestimmter Grenzwerte zu vermeiden. Es funktioniert, indem die Anzahl und/oder Größe von Vorgängen gesteuert wird, die während eines bestimmten Zeitraums an den Dienst gesendet werden. |
| Wiederholen. | Behebt Fehler, die vorübergehend oder zeitweise auftreten können, indem bestimmte Vorgänge auf kontrollierte Weise wiederholt werden. Das Mildern vorübergehender Fehler in einem verteilten System ist eine schlüsseltechnische Methode zur Verbesserung der Ausfallsicherheit einer Workload. |
| SAGA-Transaktionen im verteilten System | Koordiniert lange und potenziell komplexe Transaktionen, indem die Arbeit in Sequenzen kleinerer, unabhängiger Transaktionen dekompiliert wird. Jede Transaktion muss auch Ausgleichsaktionen haben, um Fehler bei der Ausführung rückgängig zu machen und integrität zu erhalten. Da monolithische Transaktionen über mehrere verteilte Systeme hinweg in der Regel unmöglich sind, bietet dieses Muster Konsistenz und Zuverlässigkeit, indem Atomität und Kompensation implementiert werden. |
| Supervisor für Planungsagenten | Verteilt Aufgaben effizient und verteilt sie über ein System basierend auf Faktoren, die im System feststellbar sind. Dieses Muster verwendet Integritätsmetriken, um Fehler zu erkennen und Aufgaben an einen fehlerfreien Agent umzuleiten, um die Auswirkungen einer Fehlfunktion zu verringern. |
| Sequenzieller Konvoy | Verwaltet den gleichzeitigen Nachrichten-Eingang, während die Verarbeitung in einer definierten Reihenfolge unterstützt wird. Dieses Muster kann Rennbedingungen beseitigen, die schwer zu beheben sind, die behandlung von strittigen Nachrichten oder andere Problemumgehungen für die Behandlung falsch sortierter Nachrichten, die zu Fehlfunktionen führen können. |
| Sharding | Lenkt die Last zu einem spezifischen logischen Ziel, um die spezielle Anfrage zu bearbeiten und ermöglicht eine Zusammenlegung zur Optimierung. Da die Daten oder die Verarbeitung auf den Shard begrenzt ist, bleibt eine Fehlfunktion auf diesen Shard beschränkt. |
| Strangler-Muster | Bietet einen Ansatz, um die Komponenten eines ausgeführten Systems systematisch durch neue Komponenten zu ersetzen, häufig während einer Migration oder Modernisierung des Systems. Der inkrementelle Ansatz dieses Musters kann dazu beitragen, Risiken während eines Übergangs zu mindern. |
| Drosselung | Legt Grenzwerte für die Rate oder den Durchsatz eingehender Anforderungen an eine Ressource oder Komponente fest. Sie können die Grenzwerte entwerfen, um die Ressourcenauslastung zu verhindern, die zu Fehlfunktionen führen kann. Sie können dieses Muster auch als Kontrollmechanismus in einem ordnungsgemäßen Abbauplan verwenden. |
Nächste Schritte
Überprüfen Sie die Architekturentwurfsmuster, die die anderen Azure Well-Architected Framework-Säulen unterstützen: