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.
Architekten entwerfen Arbeitslasten, indem Plattformdienste, Funktionen und Code integriert werden, um sowohl funktionale als auch nicht funktionale Anforderungen zu erfüllen. Um effektive Workloads zu entwerfen, müssen Sie diese Anforderungen verstehen und Topologien und Methoden auswählen, die den Herausforderungen der Einschränkungen Ihrer Workload gerecht werden. Clouddesignmuster bieten Lösungen für viele häufige Herausforderungen.
Systemdesign basiert stark auf etablierten Entwurfsmustern. Sie können Infrastruktur, Code und verteilte Systeme mithilfe einer Kombination dieser Muster entwerfen. Diese Muster sind entscheidend für die Erstellung zuverlässiger, hochsicherer, kostenoptimierter, betriebseffizienter und leistungsstarker Anwendungen in der Cloud.
Die folgenden Clouddesignmuster sind technologieunabhängig, wodurch sie für jedes verteilte System geeignet sind. Sie können diese Muster auf Azure, andere Cloudplattformen, lokale Setups und Hybridumgebungen anwenden.
Wie Clouddesignmuster den Entwurfsprozess verbessern
Cloud-Arbeitslasten sind anfällig für die Fehler des verteilten Computings, d.h. für gängige, aber falsche Annahmen darüber, wie verteilte Systeme funktionieren. Beispiele für diese Fallacien sind:
- Das Netzwerk ist zuverlässig.
- Die Latenz ist null.
- Bandbreite ist unendlich.
- Das Netzwerk ist sicher.
- Die Topologie ändert sich nicht.
- Es gibt einen Administrator.
- Die Komponentenversionsverwaltung ist einfach.
- Die Observability-Implementierung kann verzögert werden.
Diese Fehleinschätzungen können zu fehlerhaften Workloaddesigns führen. Designmuster beseitigen diese Fehlverständnise nicht, helfen aber dabei, das Bewusstsein zu erhöhen, Kompensationsstrategien bereitzustellen und Gegenmaßnahmen bereitzustellen. Jedes Clouddesignmuster hat Kompromisse. Konzentrieren Sie sich darauf, warum Sie ein bestimmtes Muster auswählen sollten, anstatt es zu implementieren.
Überlegen Sie, wie Sie diese branchenüblich üblichen Entwurfsmuster als kernige Bausteine für ein gut durchdachtes Workload-Design verwenden. Jedes Entwurfsmuster im Azure Well-Architected Framework stellt eine oder mehrere seiner Säulen dar. Einige Muster könnten Gegensätze einführen, die sich auf die Ziele anderer Säulen auswirken.
Musterkatalog
Jedes Muster in diesem Katalog beschreibt das Problem, das es behandelt, Überlegungen zum Anwenden des Musters und ein Beispiel basierend auf Microsoft Azure-Diensten und -Tools. Einige Muster umfassen Codebeispiele oder Codeausschnitte, die zeigen, wie das Muster in Azure implementiert wird.
Muster | Zusammenfassung | Well-Architected Rahmenpfeiler |
---|---|---|
Botschafter | Erstellen Sie Hilfsdienste, die im Auftrag von Consumerdiensten oder -anwendungen Netzwerkanforderungen senden. | -Zuverlässigkeit -Sicherheit |
Antikorruptionsschicht | Implementieren Sie eine „Fassade“ oder Adapterebene zwischen einer modernen Anwendung und einem älteren System. | - Operative Exzellenz |
Asynchrones Anforderung-Antwort-Muster | Entkoppeln der Back-End-Verarbeitung von einem Front-End-Host. Dieses Muster ist nützlich, wenn die Back-End-Verarbeitung asynchron sein muss, aber das Front-End erfordert eine klare und zeitnahe Antwort. | - Leistungseffizienz |
Back-Ends für Front-Ends | Erstellen Sie separate Back-End-Dienste für bestimmte Frontend-Anwendungen oder Schnittstellen. | -Zuverlässigkeit -Sicherheit - Leistungseffizienz |
Trennwand | Isolieren Sie Elemente einer Anwendung in Pools, sodass die anderen weiterhin funktionieren, falls einer ausfällt. | -Zuverlässigkeit -Sicherheit - Leistungseffizienz |
Zwischenspeichern | Daten bei Bedarf aus einem Datenspeicher in einen Cache laden. | -Zuverlässigkeit - Leistungseffizienz |
Choreographie | Lassen Sie einzelne Dienste entscheiden, wann und wie ein Geschäftsvorgang verarbeitet wird, statt je nach einem zentralen Orchestrator. | - Operative Exzellenz - Leistungseffizienz |
Trennschalter | Behandeln Sie Fehler, die eine variable Zeit zur Behebung benötigen können, wenn eine Anwendung eine Verbindung mit einem Remotedienst oder einer Ressource herstellt. | -Zuverlässigkeit - Leistungseffizienz |
Anspruchsprüfung | Teilen Sie eine große Nachricht in eine Anspruchsprüfung und eine Nutzlast auf, um die Überlastung eines Nachrichtenbusses zu vermeiden. | -Zuverlässigkeit -Sicherheit - Kostenoptimierung - Leistungseffizienz |
Ausgleichende Transaktion | Machen Sie die Arbeit rückgängig, die durch eine Abfolge von Schritten ausgeführt wird, die zusammen eine letztendlich konsistente Operation bilden. | -Zuverlässigkeit |
Konkurrierende Verbraucher | Ermöglichen Sie mehreren gleichzeitigen Konsumenten, Nachrichten zu verarbeiten, die sie im selben Messaging-Kanal empfangen. | -Zuverlässigkeit - Kostenoptimierung - Leistungseffizienz |
Computeressourcenkonsolidierung | Konsolidieren Sie mehrere Aufgaben oder Vorgänge in einer einzigen Recheneinheit. | - Kostenoptimierung - Operative Exzellenz - Leistungseffizienz |
CQRS | Trennen Sie Vorgänge, die Daten von denen lesen, die Daten aktualisieren, indem Sie unterschiedliche Schnittstellen verwenden. | - Leistungseffizienz |
Bereitstellungsstempel | Bereitstellen mehrerer unabhängiger Kopien von Anwendungskomponenten, einschließlich Datenspeicher | - Operative Exzellenz - Leistungseffizienz |
Event Sourcing | Verwenden Sie einen append-only Speicher, um eine vollständige Serie von Ereignissen aufzuzeichnen, die beschreiben, welche Aktionen auf Daten in einem Bereich ausgeführt wurden. | -Zuverlässigkeit - Leistungseffizienz |
Externer Konfigurationsspeicher | Verschieben von Konfigurationsinformationen aus einem Anwendungsbereitstellungspaket an einen zentralen Speicherort. | - Operative Exzellenz |
Verbundidentität | Delegieren Sie die Authentifizierung an einen externen Identitätsanbieter. | -Zuverlässigkeit -Sicherheit - Leistungseffizienz |
Gatewayaggregation | Aggregieren Sie mithilfe eines Gateways mehrere einzelne Anforderungen in einer einzigen Anforderung. | -Zuverlässigkeit -Sicherheit - Operative Exzellenz - Leistungseffizienz |
Gatewayabladung | Lagern Sie gemeinsam genutzte oder spezielle Dienstfunktionen an einen Gatewayproxy aus. | -Zuverlässigkeit -Sicherheit - Kostenoptimierung - Operative Exzellenz - Leistungseffizienz |
Gatewayrouting | Leiten Sie Anforderungen mithilfe eines einzelnen Endpunkts zu mehreren Diensten weiter. | -Zuverlässigkeit - Operative Exzellenz - Leistungseffizienz |
Druse | Stellen Sie Back-End-Dienste über geografisch verteilte Knoten bereit. Jeder Knoten kann Clientanforderungen aus einer beliebigen Region verarbeiten. | -Zuverlässigkeit - Leistungseffizienz |
Überwachung des Integritätsendpunkts | Implementieren Sie Funktionsprüfungen in einer Anwendung, auf die externe Tools in regelmäßigen Abständen über verfügbar gemachte Endpunkte zugreifen können. | -Zuverlässigkeit - Operative Exzellenz - Leistungseffizienz |
Indextabelle | Erstellen Sie Indizes über die Felder in Datenspeichern, auf die häufig verwiesen wird. | -Zuverlässigkeit - Leistungseffizienz |
Leiterwahl | Koordinieren Sie Aktionen in einer verteilten Anwendung, indem Sie eine Instanz als Anführer wählen. Der Leiter verwaltet eine Sammlung von Zusammenarbeitsaufgabeninstanzen. | -Zuverlässigkeit |
Materialisierte Sicht | Generieren Sie vorab aufgefüllte Ansichten über die Daten in einem oder mehreren Datenspeichern, wenn die Daten für erforderliche Abfragevorgänge schlecht formatiert sind. | - Leistungseffizienz |
Messaging-Bridge | Erstellen Sie einen Vermittler, um die Kommunikation zwischen Messagingsystemen zu ermöglichen, die andernfalls nicht kompatibel sind. | - Kostenoptimierung - Operative Exzellenz |
Rohre und Filter | Unterteilen einer Aufgabe, die komplexe Verarbeitungsvorgänge ausführt, in eine Reihe wiederverwendbarer separater Elemente | -Zuverlässigkeit |
Prioritätswarteschlange | Priorisieren Sie Anforderungen, die an Dienste gesendet werden, sodass Anforderungen mit höherer Priorität schneller verarbeitet werden. | -Zuverlässigkeit - Leistungseffizienz |
Herausgeber/Abonnent | Ermöglichen Sie einer Anwendung, Ereignisse asynchron an mehrere Consumer anzukündigen, ohne Absender an Empfänger zu koppeln. | -Zuverlässigkeit -Sicherheit - Kostenoptimierung - Operative Exzellenz - Leistungseffizienz |
Quarantäne | Stellen Sie sicher, dass externe Ressourcen ein vom Team vereinbartes Qualitätsniveau erfüllen, bevor die Arbeitsauslastung sie verbraucht. | -Sicherheit - Operative Exzellenz |
Warteschlangenbasierter Lastenausgleich | Verwenden Sie eine Warteschlange, die einen Puffer zwischen einem Vorgang und einem Dienst erstellt, um zeitweilige schwere Lasten zu glätten. | -Zuverlässigkeit - Kostenoptimierung - Leistungseffizienz |
Ratenbegrenzung | Vermeiden Sie Drosselungsfehler oder reduzieren Sie ihre Häufigkeit, indem Sie den Ressourcenverbrauch steuern. | -Zuverlässigkeit |
Wiederholen. | Ermöglichen Sie Anwendungen, erwartete temporäre Fehler zu behandeln, indem Sie fehlgeschlagene Vorgänge wiederholen. | -Zuverlässigkeit |
Saga | Verwalten der Datenkonsistenz über Microservices hinweg in verteilten Transaktionsszenarien. | -Zuverlässigkeit |
Scheduler-Agent-Supervisor | Koordinieren Sie eine Reihe von Aktionen über verteilte Dienste und Ressourcen hinweg. | -Zuverlässigkeit - Leistungseffizienz |
Sequenzieller Konvoi | Verarbeiten sie eine Reihe verwandter Nachrichten in einer definierten Reihenfolge, ohne andere Nachrichtengruppen zu blockieren. | -Zuverlässigkeit |
Sharding | Einen Datenspeicher in einen Satz horizontaler Partitionen oder Shards unterteilen | -Zuverlässigkeit - Kostenoptimierung |
Beiwagen | Stellen Sie Komponenten in einem separaten Prozess oder Container bereit, um Isolation und Kapselung bereitzustellen. | -Sicherheit - Operative Exzellenz |
Hosten von statischen Inhalten | Stellen Sie statische Inhalte für die direkte Clientbereitstellung in einem cloudbasierten Speicherdienst bereit. | - Kostenoptimierung |
Strangler-Muster | Inkrementelle Migration eines Legacysystems durch schrittweise Ersetzen von Funktionen durch neue Anwendungen und Dienste. | -Zuverlässigkeit - Kostenoptimierung - Operative Exzellenz |
Drosselung | Steuern Sie den Ressourcenverbrauch von Anwendungen, Mandanten oder Diensten. | -Zuverlässigkeit -Sicherheit - Kostenoptimierung - Leistungseffizienz |
Valet-Schlüssel | Verwenden Sie ein Token oder einen Schlüssel, um Clients eingeschränkten, direkten Zugriff auf eine bestimmte Ressource oder einen bestimmten Dienst bereitzustellen. | -Sicherheit - Kostenoptimierung - Leistungseffizienz |
Nächste Schritte
Überprüfen Sie die Entwurfsmuster aus der Perspektive der Well-Architected Framework-Säule, die das Muster optimieren soll.
- Designmuster zur Unterstützung des Elements Reliability
- Designmuster zur Unterstützung des Elements Sicherheit
- Designmuster zur Unterstützung des Elements Kostenoptimierung
- Designmuster zur Unterstützung des Elements Operational Excellence
- Designmuster zur Unterstützung des Elements Leistungseffizienz