Clouddesignmuster, die Kostenoptimierung unterstützen
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, die sich auf Zuverlässigkeit, Sicherheit, Leistung und Vorgänge auswirken können. Wenn sie nicht abgemildert werden, werden die Risiken letztendlich die Kosten erhöhen. 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 Kostenoptimierung unterstützen, richten sich an die Implementierung günstiger Abrechnungsmodelle, Verringern der Überteilung, Ändern der Skalierungsdimensionen und Maximieren des Werts bei Migrationen.
Entwurfsmuster für die Kostenoptimierung
In der folgenden Tabelle sind Clouddesignmuster zusammengefasst, die die Ziele der Kostenoptimierung unterstützen.
Muster | Zusammenfassung |
---|---|
Anspruchsprüfung | Trennt Daten vom Nachrichtenfluss, wodurch eine Möglichkeit zum getrennten Abrufen der Daten im Zusammenhang mit einer Nachricht bereitgestellt wird. Messaging-Systeme legen häufig Beschränkungen für die Nachrichtengröße fest, und höhere Größenbeschränkungen sind oft eine Premium-Funktion. Wenn Sie die Größe von Nachrichtentexten verringern, können Sie möglicherweise eine günstigere Messaging-Lösung verwenden. |
Konkurrierende Consumer | Wendet verteilte und gleichzeitige Verarbeitung an, um Elemente in einer Warteschlange effizient zu verarbeiten. Dieses Muster kann Ihnen bei der Kostenoptimierung helfen, indem es eine Skalierung basierend auf der Warteschlangentiefe ermöglicht, bis hin zu Null, wenn die Warteschlange leer ist. Es kann auch die Kosten optimieren, indem es Ihnen ermöglicht, die maximale Anzahl gleichzeitiger Verbraucherinstanzen zu begrenzen. |
Computeressourcenkonsolidierung | Optimiert und konsolidiert Rechenressourcen durch erhöhung der Dichte. Dieses Muster kombiniert mehrere Anwendungen oder Komponenten einer Workload in einer freigegebenen Infrastruktur. Dadurch wird die Nutzung von Computerressourcen maximiert, indem nicht genutzte bereitgestellte Kapazität über die Aggregation von Komponenten oder sogar ganzen Workloads in einer poolierten Infrastruktur vermieden wird. Container-Orchestratoren sind ein gängiges Beispiel. |
Gatewayabladung | Lädt die Anforderungsverarbeitung vor und nach der Weiterleitung der Anforderung an einen Back-End-Knoten an ein Gatewaygerät aus. Durch das Hinzufügen eines Offloadgateways in den Anforderungsprozess können Sie Kosten von Ressourcen umleiten, die pro Knoten in die Gatewayimplementierung ausgegeben würden. Die Kosten im zentralisierten Verarbeitungsmodell sind häufig niedriger als die des verteilten Modells. |
Messaging-Brücke | Stellt einen Vermittler bereit, um die Kommunikation zwischen Messagingsystemen zu ermöglichen, die andernfalls aufgrund von Protokoll oder Format inkompatibel sind. Dieser Vermittler kann die Langlebigkeit Ihres vorhandenen Systems erhöhen und gleichzeitig die Interoperabilität mit Systemen ermöglichen, die eine andere Messaging- oder Ereignistechnologie verwenden. |
Herausgeber/Abonnent | Decoupiert Komponenten einer Architektur, indem die direkte Client-zu-Service- oder Client-zu-Dienst-Kommunikation mit der Kommunikation durch einen Zwischennachrichtenbroker oder Ereignisbus ersetzt wird. Dieses Design kann einen ereignisgesteuerten Ansatz in Ihrer Architektur ermöglichen, der gut mit verbrauchsbasierter Abrechnung gekoppelt ist, um eine Überteilung zu vermeiden. |
Warteschlangenbasierter Lastenausgleich | Steuert die Ebene eingehender Anforderungen oder Aufgaben, indem sie in einer Warteschlange gepuffert und der Warteschlangenprozessor sie in einem kontrollierten Tempo verarbeiten lässt. Da die Lastverarbeitung von der Aufnahme von Anfragen oder Aufgaben entkoppelt ist, können Sie diesen Ansatz nutzen, um die Notwendigkeit einer Überversorgung mit Ressourcen zur Bewältigung von Lastspitzen zu verringern. |
Sharding | Directs load to a specific logical destination to handle the specific request, enabling colocation for optimization. Ein System, das Shards implementiert, profitiert oft von der Verwendung mehrerer Instanzen von weniger teuren Rechen- oder Speicherressourcen anstelle einer einzigen teureren Ressource. In vielen Fällen können Sie mit dieser Konfiguration Geld sparen. |
Hosten von statischen Inhalten | Optimiert die Bereitstellung statischer Inhalte an Clients mithilfe einer Hostingplattform, die für diesen Zweck entwickelt wurde. Dynamische Anwendungshosts sind in der Regel teurer als statische Hosts, da dynamische Hosts Ihre kodierte Geschäftslogik ausführen können. Die Verwendung einer Anwendungsplattform zur Bereitstellung statischer Inhalte ist nicht kosteneffizient. |
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. Ziel dieses Ansatzes ist es, die Nutzung bestehender Investitionen im derzeit ausgeführten System zu maximieren und gleichzeitig inkrementell zu modernisieren. Es ermöglicht Es Ihnen, vor Densetzungen mit geringem ROI hohe ROI-Ersetzungen durchzuführen. |
Drosselung | Legt Grenzwerte für die Rate oder den Durchsatz eingehender Anforderungen an eine Ressource oder Komponente fest. Die Grenzwerte können die Kostenmodellierung informieren und sogar direkt an das Geschäftsmodell Ihrer Anwendung gebunden werden. Sie setzen auch klare Obergrenzen für die Auslastung, die bei der Dimensionierung der Ressourcen berücksichtigt werden können. |
Valet-Schlüssel | Gewährt sicherheitsbeschränkten Zugriff auf eine Ressource, ohne eine zwischengeschaltete Ressource zum Proxyn des Zugriffs zu verwenden. Dieses Design entlastet die Verarbeitung als exklusive Beziehung zwischen dem Client und der Ressource, ohne eine Komponente hinzuzufügen, die alle Client-Anfragen direkt bearbeitet. Der Vorteil ist am dramatischsten, wenn Clientanforderungen häufig oder groß genug sind, um erhebliche Proxyressourcen zu erfordern, oder der Proxy fügt keinen Wert als Teil der Anforderung hinzu. |
Nächste Schritte
Überprüfen Sie die Clouddesignmuster, die die anderen Säulen des Azure Well-Architected Framework unterstützen: