Empfehlungen zur Optimierung der Skalierungskosten

Gilt für diese Empfehlung für die Kostenoptimierung in Azure Well-Architected Framework:

CO:12 Optimieren Sie die Skalierungskosten. Bewerten Sie die alternative Skalierung innerhalb Ihrer Skalierungseinheiten. Ziehen Sie alternative Skalierungskonfigurationen in Betracht, und richten Sie sich an das Kostenmodell aus. Überlegungen sollten die Verwendung für die Erbgrenzen aller instance, Ressourcen und Skalierungseinheiten umfassen. Verwenden Sie Strategien zur Steuerung von Nachfrage und Angebot.

Dieser Leitfaden enthält Empfehlungen zur Optimierung der Skalierungskosten. Die kostenoptimierende Skalierung ist der Prozess, bei dem Ineffizienzen bei der Workloadskalierung beseitigt werden. Ziel ist es, die Skalierungskosten zu senken und gleichzeitig alle nicht funktionalen Anforderungen zu erfüllen. Weniger Ausgeben, um das gleiche Ergebnis zu erzielen. Durch die Optimierung der Skalierung können Sie unnötige Ausgaben, Überbereitstellung und Verschwendung vermeiden. Es hilft auch, unerwartete Kostenspitzen zu verhindern, indem die Nachfrage gesteuert und das Angebot gedeckelt wird. Ineffiziente Skalierungsmethoden können zu erhöhten Workload- und Betriebskosten führen und sich negativ auf die finanzielle Gesamtintegrität der Workload auswirken.

Definitionen

Begriff Definition
Automatische Skalierung Ein Skalierungsansatz, der Ressourcen automatisch hinzufügt oder entfernt, wenn eine Reihe von Bedingungen erfüllt ist.
Kostenmetriken Numerische Daten im Zusammenhang mit Workloadkosten.
Herunterskalieren Eine Vertikale Skalierungsstrategie, die zu einer niedrigeren SKU wechselt, um weniger Ressourcen für die Workload bereitzustellen.
Horizontales Herunterskalieren Eine horizontale Skalierungsstrategie, die Instanzen entfernt, um weniger Ressourcen für die Workload bereitzustellen.
Aufskalieren Eine horizontale Skalierungsstrategie, die Instanzen hinzufügt, um der Workload mehr Ressourcen bereitzustellen.
Skalierungseinheit Eine Gruppe von Ressourcen, die proportional skaliert werden.
Hochskalieren Eine Vertikale Skalierungsstrategie, die zu einer höheren SKU wechselt, um mehr Ressourcen für die Workload bereitzustellen.
Stock Keeping Unit (SKU) Eine Dienstebene für einen Azure-Dienst.
Nutzungsdaten Nutzungsdaten sind entweder direkte Informationen (real) oder indirekte/repräsentative Informationen (Proxy) darüber, wie viel eine Aufgabe, ein Dienst oder eine Anwendung verwendet wird.

Wichtige Entwurfsstrategien

Das Ziel der kostenoptimierenden Skalierung besteht darin, im letzten verantwortungsvollen Moment hoch- und herunterskalieren und zu skalieren, sobald es praktikabel ist. Um die Skalierung für Ihre Workload zu optimieren, können Sie alternative Skalierungsoptionen innerhalb der Skalierungseinheiten auswerten und sie am Kostenmodell ausrichten. Eine Skalierungseinheit stellt eine bestimmte Gruppe von Ressourcen dar, die unabhängig oder zusammen skaliert werden kann. Sie sollten Skalierungseinheiten entwerfen, um eine bestimmte Lastmenge zu bewältigen, und sie können mehrere Instanzen, Server oder andere Ressourcen umfassen. Sie müssen die Kosteneffizienz Ihrer Workloadskalierungseinheiten und Alternative Modelle bewerten.

Wenn Sie die Skalierung nicht verwenden, lesen Sie die Anleitung zum Skalieren der Workload. Sie müssen herausfinden, ob Ihre Anwendung skaliert werden kann. Zustandslose Anwendungen sind einfacher zu skalieren, da sie mehrere Anforderungen gleichzeitig verarbeiten können. Bewerten Sie außerdem, ob die Anwendung mit verteilten Systemprinzipien erstellt wird. Verteilte Systeme können eine erhöhte Last bewältigen, indem die Workload auf mehrere Knoten verteilt wird. Eine Singleton-Anwendung ist jedoch so konzipiert, dass nur eine instance zu einem bestimmten Zeitpunkt ausgeführt wird. Daher ist die Skalierung möglicherweise nicht für alle Workloads geeignet.

Bewerten von Horizontal- und Hochskalieren

Die Bewertung von Horizontal- und Hochskalieren umfasst die Ermittlung des kostengünstigsten Ansatzes zwischen der Erhöhung der Ressourcen in einem vorhandenen System (Hochskalieren) oder dem Hinzufügen weiterer Instanzen dieses Systems (Horizontales Horizontales Hochskalieren) basierend auf verschiedenen Faktoren wie Preisen, Workloadanforderungen und akzeptablen Ausfallzeiten. Die Wahl des richtigen Skalierungsansatzes kann zu erheblichen Einsparungen führen und sicherstellen, dass Sie nur für das bezahlen, was Sie benötigen, während Sie trotzdem die Leistungs- und Zuverlässigkeitsstandards erfüllen.

Das Ziel besteht darin, die kosteneffizienteste Wahl basierend auf Tarifen des Diensttarifs, Workloadmerkmalen, akzeptablen Ausfallzeiten und dem Kostenmodell zu ermitteln. Für einige ist es möglicherweise wirtschaftlicher, sich für teurere Instanzen in weniger Anzahl zu entscheiden. Umgekehrt kann für andere ein günstigerer Tarif mit mehr Instanzen besser sein. Um eine fundierte Entscheidung zu treffen, müssen Sie reale oder repräsentative Daten aus Ihrem Setup analysieren und die relativen Kostenverbräuchen jeder Strategie bewerten. Berücksichtigen Sie die folgenden Empfehlungen, um den kosteneffizientesten Ansatz zu evaluieren:

  • Sammeln von Nutzungsdaten: Sammeln Sie tatsächliche Produktionsdaten oder Proxydaten, die die Workloadnutzungsmuster und die Ressourcenauslastung darstellen. Diese Daten sollten Metriken wie CPU-Auslastung, Arbeitsspeicherauslastung, Netzwerkdatenverkehr und alle anderen relevanten Metriken enthalten, die sich auf die Kosten der Skalierung auswirken.

  • Definieren von Kostenmetriken: Identifizieren Sie die Kostenmetriken, die für Ihre Workload relevant sind, z. B. die Kosten pro Stunde, die Kosten pro Transaktion oder die Kosten pro Einheit der Ressourcennutzung. Mit diesen Metriken können Sie die Kosteneffizienz verschiedener Skalierungsoptionen vergleichen.

  • Sammeln von Nutzungsdaten: Sammeln Sie tatsächliche Produktionsdaten oder Proxydaten, die die Workloadnutzungsmuster und die Ressourcenauslastung darstellen. Diese Daten sollten Metriken wie CPU-Auslastung, Arbeitsspeicherauslastung, Netzwerkdatenverkehr und alle anderen relevanten Metriken enthalten, die sich auf die Kosten der Skalierung auswirken.

  • Definieren von Kostenmetriken: Identifizieren Sie die Kostenmetriken, die für Ihre Workload relevant sind, z. B. die Kosten pro Stunde, die Kosten pro Transaktion oder die Kosten pro Einheit der Ressourcennutzung. Mit diesen Metriken können Sie die Kosteneffizienz verschiedener Skalierungsoptionen vergleichen.

  • Siehe Anforderungen: Berücksichtigen Sie bei der Entscheidung zwischen Horizontal- und Hochskalierungsstrategien die Zuverlässigkeits-, Leistungs- und Skalierungsanforderungen Ihrer Workload. Horizontales Hochskalieren kann die Zuverlässigkeit durch Redundanz verbessern. Das Hochskalieren erhöht die Kapazität einer Ressource, aber es gibt möglicherweise Grenzen für das Hochskalieren.

  • Ressourcenlimits berücksichtigen: Bei der Bewertung von Skalierungsoptionen ist es wichtig, die inhärenten Grenzen aller instance, Ressourcen und Skalierungseinheiten zu berücksichtigen. Beachten Sie die oberen Skalierungsgrenzwerte für jede Ressource und jeden Plan entsprechend. Beachten Sie außerdem die Grenzwerte Ihres Abonnements und anderer Ressourcen.

  • Testskalierung: Erstellen Sie Tests für verschiedene Skalierungsszenarien, einschließlich Horizontal- und Hochskalierungsoptionen. Simulieren Sie durch Anwenden der Nutzungsdaten das Workloadverhalten unter verschiedenen Skalierungskonfigurationen. Führen Sie reale Tests mithilfe der modellierten Skalierungsszenarien durch.

  • Berechnen von Kosten: Verwenden Sie die gesammelten Daten und Kostenmetriken, um die Mit jeder Skalierungskonfiguration verbundenen Kosten zu berechnen. Berücksichtigen Sie Faktoren wie instance Preise, Ressourcenauslastung und alle zusätzlichen Kosten im Zusammenhang mit der Skalierung.

Optimieren der automatischen Skalierung

Die Optimierung der Richtlinie für die automatische Skalierung umfasst die Verfeinerung der automatischen Skalierung, um auf Laständerungen basierend auf den nicht funktionalen Anforderungen der Workload zu reagieren. Sie können übermäßige Skalierungsaktivitäten einschränken, indem Sie Schwellenwerte anpassen und den richtigen Abkühlzeitraum verwenden. Um die automatische Skalierung zu optimieren, berücksichtigen Sie die folgenden Empfehlungen:

  • Analysieren der aktuellen Richtlinie zur automatischen Skalierung: Verstehen der vorhandenen Richtlinie und ihres Verhaltens als Reaktion auf unterschiedliche Auslastungsstufen.

  • Informationen zu nicht funktionalen Anforderungen: Identifizieren Sie die spezifischen nicht funktionalen Anforderungen, die Sie berücksichtigen müssen, z. B. Antwortzeit, Ressourcenauslastung oder Kosten.

  • Anpassen von Skalierungsschwellenwerten: Passen Sie die Skalierungsschwellenwerte basierend auf den Workloadmerkmalen und nicht funktionalen Anforderungen an. Legen Sie Schwellenwerte für das Hoch- oder Herunterskalieren basierend auf Faktoren wie CPU-Auslastung im Zeitverlauf, Netzwerkdatenverkehr oder Warteschlangenlänge fest.

  • Anpassen eines Abkühlzeitraums: Passen Sie den Abkühlzeitraum an, um übermäßige Skalierungsaktivitäten zu verhindern, die durch temporäre Lastspitzen ausgelöst werden. Ein Abknabkühlungszeitraum führt zu einer Verzögerung zwischen Skalierungsereignissen, sodass sich das System vor weiteren Skalierungsaktionen stabilisieren kann.

  • Überwachen und Optimieren: Überwachen Sie kontinuierlich das Verhalten und die Leistung des Systems. Analysieren Sie die Skalierungsaktivitäten, und passen Sie die Richtlinie nach Bedarf an, um die Kosten zu optimieren und die gewünschten nicht funktionalen Anforderungen zu erfüllen.

Kompromiss: Die Reduzierung der Anzahl von Skalierungsereignissen erhöht die Wahrscheinlichkeit, dass Probleme im Zusammenhang mit der Skalierung auftreten. Dies bedeutet, dass Sie das zusätzliche Polster oder Puffer beseitigen, das bei der Verwaltung potenzieller Probleme oder Verzögerungen bei der Skalierung helfen könnte.

Ereignisbasierte Skalierung in Betracht ziehen

Die ereignisgesteuerte automatische Skalierung ermöglicht der Anwendung das dynamische Anpassen von Ressourcen basierend auf bestimmten Ereignissen oder Triggern anstelle herkömmlicher Metriken wie CPU- oder Arbeitsspeicherauslastung. Die ereignisgesteuerte automatische Skalierung (KEDA) von Kubernetes kann beispielsweise Anwendungen basierend auf Skalierungsskalieren, z. B. der Länge eines Kafka-Themas, skalieren. Präzision hilft, unnötige Skalierungsschwankungen und Ressourcenverschwendung zu vermeiden. Eine hohe Genauigkeit optimiert letztendlich die Kosten. Führen Sie die folgenden Schritte aus, um die ereignisbasierte Skalierung zu verwenden:

  • Auswählen einer Ereignisquelle: Bestimmen Sie die Ereignisquelle, die die Skalierung Ihrer Skalierungseinheit auslöst. Eine Quelle kann eine Nachrichtenwarteschlange, eine Streamingplattform oder ein anderes ereignisgesteuertes System sein.

  • Einrichten der Ereigniserfassung: Konfigurieren Sie Ihre Anwendung so, dass Ereignisse aus der ausgewählten Ereignisquelle verwendet werden. Dies umfasst in der Regel das Herstellen einer Verbindung, das Abonnieren der relevanten Themen oder Warteschlangen und die Verarbeitung der eingehenden Ereignisse.

  • Implementieren von Skalierungslogik: Schreiben Sie die Logik, die bestimmt, wann und wie Ihre Skalierungseinheit basierend auf den eingehenden Ereignissen skaliert werden soll. Bei dieser Logik sollten Faktoren wie die Anzahl der Ereignisse, die Rate eingehender Ereignisse oder andere relevante Metriken berücksichtigt werden.

  • Integration in Skalierungsmechanismen: Abhängig von der Laufzeitumgebung Ihrer Anwendung können Sie verschiedene Skalierungsmechanismen verwenden, um die der Anwendung zugeordneten Ressourcen anzupassen.

  • Konfigurieren von Skalierungsregeln: Definieren Sie die Skalierungsregeln, die angeben, wie Ihre Skalierungseinheit als Reaktion auf Ereignisse skaliert werden soll. Diese Regeln können auf Schwellenwerten, Mustern oder anderen Kriterien basieren, die den Anforderungen Ihrer Anwendung entsprechen. Skalierungsschwellenwerte sollten sich auf Geschäftsmetriken beziehen. Wenn Sie beispielsweise zwei weitere Instanzen hinzufügen, können Sie 50 weitere Benutzer bei der Warenkorbverarbeitung unterstützen.

  • Testen und Überwachen: Überprüfen Sie das Verhalten Ihrer ereignisbasierten Skalierungsimplementierung, indem Sie es mit verschiedenen Ereignisszenarien testen. Überwachen Sie die Skalierungsaktionen, und stellen Sie sicher, dass die Aktionen Ihren Erwartungen entsprechen.

Kompromiss Das Konfigurieren und Optimieren der ereignisbasierten automatischen Skalierung kann komplex sein, und eine falsche Konfiguration kann zu einer Über- oder Unterbereitstellung von Ressourcen führen.

Optimieren von Nachfrage und Angebot

Steuern Sie die Nachfrage anhand Ihres Angebots. Bei Workloads, bei denen die Nutzung die Skalierung bestimmt, korrelieren die Kosten mit der Skalierung. Um die Kosten für die Skalierung zu optimieren, können Sie die Skalierungskosten minimieren. Sie können den Bedarf auslagern, indem Sie den Bedarf an andere Ressourcen verteilen, oder Sie können den Bedarf reduzieren, indem Sie Prioritätswarteschlangen, Gatewayauslagerung, Pufferung und Ratenbegrenzung implementieren. Beide Strategien können unerwünschte Kosten aufgrund von Skalierung und Ressourcenverbrauch verhindern. Sie können auch die Bereitstellung steuern, indem Sie die Skalierungsgrenzwerte deckeln. Berücksichtigen Sie die folgenden Empfehlungen, um Die Nachfrage und das Angebot von Workloads zu optimieren.

Auslagerungsbedarf

Das Auslagern der Nachfrage bezieht sich auf die Praxis der Verteilung oder Übertragung des Ressourcenbedarfs an andere Ressourcen oder Dienste. Sie können verschiedene Technologien oder Strategien verwenden:

  • Zwischenspeichern: Verwenden Sie die Zwischenspeicherung, um häufig verwendete Daten oder Inhalte zu speichern, um die Auslastung Ihrer Back-End-Infrastruktur zu verringern. Verwenden Sie z. B. Content Delivery Networks (CDNs), um statische Inhalte zwischenzuspeichern und zu liefern, wodurch die Notwendigkeit für die Skalierung des Back-Ends verringert wird. Allerdings kann nicht jede Workload Daten zwischenspeichern. Workloads, die aktuelle Daten und Echtzeitdaten erfordern, z. B. Handels- oder Gamingworkloads, sollten keinen Cache verwenden. Die zwischengespeicherten Daten wären alt und für den Benutzer irrelevant.

    Kompromiss. Das Zwischenspeichern kann zu Herausforderungen in Bezug auf Cacheinvalidierung, Konsistenz und Verwaltung des Cacheablaufs führen. Es ist wichtig, Zwischenspeicherungsstrategien sorgfältig zu entwerfen und zu implementieren, um potenzielle Kompromisse zu vermeiden.

  • Auslagerung von Inhalten: Auslagern von Inhalten an externe Dienste oder Plattformen, um die Workload in Ihrer Infrastruktur zu reduzieren. Anstatt beispielsweise Videodateien auf Ihrem primären Server zu speichern, können Sie diese Dateien in einem separaten Speicherdienst hosten, der von Ihrem primären Server unabhängig ist. Sie können diese großen Dateien direkt aus dem Speicherdienst laden. Durch diesen Ansatz werden Ressourcen auf Ihren Servern freigegeben, sodass Sie einen kleineren Server verwenden können. Es kann günstiger sein, große Dateien in einem separaten Datenspeicher zu speichern. Sie können ein CDN verwenden, um die Leistung zu verbessern.

  • Lastenausgleich: Verteilen Sie eingehende Anforderungen mithilfe des Lastenausgleichs auf mehrere Server. Der Lastenausgleich verteilt die Workload gleichmäßig und verhindert, dass einzelne Server überlastet werden. Lastenausgleichsmodule optimieren die Ressourcennutzung und verbessern die Effizienz Ihrer Infrastruktur.

  • Datenbankauslagerung: Verringern Sie die Last auf Ihrem Standard Anwendungsserver, indem Sie Datenbankvorgänge auf einen separaten Datenbankserver oder einen spezialisierten Dienst auslagern. Verwenden Sie beispielsweise ein CDN für die Zwischenspeicherung statischer Inhalte und einen Redis-Cache für das Zwischenspeichern dynamischer Inhalte (Daten aus der Datenbank). Techniken wie Datenbanksharding, Lesereplikate oder die Verwendung verwalteter Datenbankdienste können die Last ebenfalls reduzieren.

    Kompromiss: Das Auslagern bestimmter Aufgaben in alternative Ressourcen trägt dazu bei, zusätzliche Skalierungs- und Skalierungskosten zu reduzieren oder zu vermeiden. Es ist jedoch wichtig, die Betriebs- und Wartungsprobleme zu berücksichtigen, die sich aus der Auslagerung ergeben können. Die Durchführung einer umfassenden Kosten-Nutzen-Analyse ist von entscheidender Bedeutung, wenn Sie die am besten geeigneten Auslagerungstechniken für Ihre Workload auswählen. Diese Analyse stellt sicher, dass die gewählte Methode sowohl effizient als auch in Bezug auf die erwarteten Einsparungen und die Betriebskomplexität möglich ist.

Reduzieren der Nachfrage

Die Reduzierung des Ressourcenbedarfs bedeutet, Strategien zu implementieren, die dazu beitragen, die Ressourcenauslastung in einer Workload zu minimieren. Das Auslagern der Nachfrage verschiebt den Bedarf auf andere Ressourcen. Die Verringerung der Nachfrage verringert die Nachfrage nach der Workload. Die Reduzierung der Nachfrage ermöglicht es Ihnen, eine Überbereitstellung von Ressourcen zu vermeiden und nicht genutzte oder nicht ausgelastete Kapazität zu bezahlen. Sie sollten Entwurfsmuster auf Codeebene verwenden, um den Bedarf an Workloadressourcen zu reduzieren. Führen Sie die folgenden Schritte aus, um den Bedarf durch Entwurfsmuster zu reduzieren:

  • Grundlegendes zu Entwurfsmustern: Machen Sie sich mit verschiedenen Entwurfsmustern vertraut, die die Ressourcenoptimierung fördern.

  • Analysieren von Workloadanforderungen: Bewerten Sie die spezifischen Anforderungen Ihrer Workload, einschließlich der erwarteten Bedarfsmuster, Spitzenlasten und Ressourcenanforderungen.

  • Geeignete Entwurfsmuster auswählen: Wählen Sie die Entwurfsmuster aus, die den Anforderungen und Zielen Ihrer Workload entsprechen. Wenn ihre Workload z. B. einen schwankenden Bedarf aufweist, können ereignisgesteuerte Skalierungs- und Drosselungsmuster die Workload verwalten, indem Ressourcen dynamisch zugeordnet werden. Wenden Sie die ausgewählten Entwurfsmuster auf Ihre Workloadarchitektur an. Möglicherweise müssen Sie Workloadkomponenten trennen, Anwendungen containerisieren, die Speicherauslastung optimieren und vieles mehr.

  • Fortlaufende Überwachung und Optimierung: Bewerten Sie regelmäßig die Effektivität der implementierten Entwurfsmuster und passen Sie sie bei Bedarf an. Überwachen der Ressourcennutzung, Leistungsmetriken und Möglichkeiten zur Kostenoptimierung.

Indem Sie diese Schritte ausführen und geeignete Entwurfsmuster verwenden, können Sie den Ressourcenbedarf reduzieren, die Kosten optimieren und den effizienten Betrieb ihrer Workloads sicherstellen.

Verwenden Sie die folgenden Entwurfsmuster, um den Bedarf zu reduzieren:

  • Cache beiseite: Das Muster überprüft den Cache, um festzustellen, ob die Daten bereits im Arbeitsspeicher gespeichert sind. Wenn die Daten im Cache gefunden werden, kann die Anwendung die Daten schnell abrufen und zurückgeben, wodurch die Notwendigkeit reduziert wird, den persistenten Datenspeicher abzufragen.

  • Anspruchsprüfung: Durch die Trennung von Daten vom Nachrichtenfluss reduziert dieses Muster die Größe von Nachrichten und unterstützt eine kostengünstigere Messaginglösung.

  • Konkurrierende Consumer: Dieses Muster verarbeitet Elemente in einer Warteschlange effizient, indem verteilte und gleichzeitige Verarbeitung angewendet wird. Dieses Entwurfsmuster optimiert die Kosten durch Skalierung, die auf der Warteschlangentiefe basiert, und legt Grenzwerte für maximale gleichzeitige Consumerinstanzen fest.

  • Konsolidierung von Computeressourcen: Dieses Muster erhöht die Dichte und konsolidiert Computeressourcen, indem mehrere Anwendungen oder Komponenten in einer gemeinsam genutzten Infrastruktur kombiniert werden. Es maximiert die Ressourcenauslastung, vermeidet nicht verwendete bereitgestellte Kapazität und senkt die Kosten.

  • Bereitstellungsstempel: Die Verwendung von Bereitstellungsstempeln bietet mehrere Vorteile, z. B. die geografische Verteilung von Gerätegruppen, das Bereitstellen neuer Features für bestimmte Stempel und die Beobachtung der Kosten pro Gerät. Bereitstellungsstempel ermöglichen eine bessere Skalierbarkeit, Fehlertoleranz und eine effiziente Ressourcennutzung.

  • Gatewayauslagerung: Dieses Muster entlädt die Anforderungsverarbeitung auf einem Gatewaygerät und leitet die Kosten von den Ressourcen pro Knoten an die Gatewayimplementierung um. Die Verwendung dieses Entwurfsmusters kann zu niedrigeren Betriebskosten in einem zentralisierten Verarbeitungsmodell führen.

  • Herausgeber/Abonnent: Dieses Muster entkoppelt Komponenten in einer Architektur und ersetzt die direkte Kommunikation durch einen zwischengeschalteten Nachrichtenbroker oder Ereignisbus. Es ermöglicht einen ereignisgesteuerten Ansatz und eine verbrauchsbasierte Abrechnung, wodurch eine Überbereitstellung vermieden wird.

  • Warteschlangenbasiertes Lastenausgleich: Das Muster puffert eingehende Anforderungen oder Aufgaben in einer Warteschlange. Die Pufferung glättet die Workload und reduziert die Notwendigkeit einer Überbereitstellung von Ressourcen, um Spitzenlasten zu bewältigen. Eingehende Anforderungen werden asynchron verarbeitet, um Kosten zu senken.

  • Sharding: Dieses Muster leitet bestimmte Anforderungen an ein logisches Ziel weiter, was Optimierungen mit Datenkolocation ermöglicht. Sharding kann zu Kosteneinsparungen führen, indem mehrere Instanzen von Compute- oder Speicherressourcen mit niedrigerer Spezifikation verwendet werden.

  • Hosten statischer Inhalte: Dieses Muster liefert statische Inhalte effizient mithilfe einer für diesen Zweck entwickelten Hostingplattform. Dadurch wird die Verwendung teurerer dynamischer Anwendungshosts vermieden, wodurch die Ressourcennutzung optimiert wird.

  • Drosselung: Dieses Muster setzt Grenzwerte für die Rate (Ratenbegrenzung) oder den Durchsatz eingehender Anforderungen an eine Ressource oder Komponente. Es hilft bei der Kostenmodellierung und kann direkt an das Geschäftsmodell der Anwendung gebunden werden.

  • Valet-Schlüssel: Dieses Muster gewährt sicheren und exklusiven Zugriff auf eine Ressource, ohne mehr Komponenten einzubeziehen, wodurch der Bedarf an Zwischenressourcen verringert und die Effizienz verbessert wird.

Steuerungsversorgung

Das Definieren einer Obergrenze für den Betrag, den Sie bereit sind, für eine bestimmte Ressource oder einen bestimmten Dienst auszugeben, ist eine Möglichkeit, die Bereitstellung zu steuern. Es ist eine wichtige Strategie zur Kostenkontrolle und zur Sicherstellung, dass die Ausgaben eine bestimmte Höhe nicht überschreiten. Richten Sie ein Budget ein, und überwachen Sie die Ausgaben, um sicherzustellen, dass sie innerhalb des definierten Betrags bleiben. Sie können Kostenverwaltungsplattformen, Budgetwarnungen oder Nutzungs- und Ausgabenmuster nachverfolgen. Einige Dienste ermöglichen es Ihnen, die Bereitstellung zu drosseln und die Raten zu begrenzen, und Sie sollten diese Features verwenden, wenn sie hilfreich sind.

Steuern des Angebots bezieht sich auf das Definieren einer Obergrenze für den Betrag, den Sie für eine bestimmte Ressource oder einen bestimmten Dienst ausgeben möchten. Dies ist eine wichtige Strategie, da sie zur Kostenkontrolle beiträgt und sicherstellt, dass die Ausgaben eine bestimmte Höhe nicht überschreiten. Richten Sie ein Budget ein, und überwachen Sie die Ausgaben, um sicherzustellen, dass sie innerhalb des definierten Schwellenwerts bleiben. Sie können Kostenverwaltungsplattformen, Budgetwarnungen oder Nutzungs- und Ausgabenmuster nachverfolgen. Einige Dienste ermöglichen es Ihnen, die Bereitstellung zu drosseln und die Raten zu begrenzen, und Sie sollten diese Features verwenden, wenn sie hilfreich sind.

Kompromiss: Strengere Grenzwerte können zu verpassten Skalierungschancen führen, wenn die Nachfrage steigt, was sich möglicherweise auf die Benutzererfahrung auswirkt. Dies kann dazu führen, dass heruntergefahren wird oder nicht auf das Laden reagiert werden kann. Es ist wichtig, ein Gleichgewicht zwischen Der Kostenoptimierung und der Sicherstellung, dass Sie über ausreichende Ressourcen verfügen, um Ihre geschäftlichen Anforderungen zu erfüllen.

Azure-Erleichterung

Auswerten von Horizontal- und Hochskalieren: Azure bietet eine Testumgebung, in der Sie verschiedene Skalierungskonfigurationen bereitstellen und testen können. Mithilfe der tatsächlichen Workload- oder Proxydaten können Sie reale Szenarien simulieren und die Auswirkungen auf die Kosten messen. Azure bietet Tools und Dienste für Leistungstests, Auslastungstests und Überwachung, mit denen Sie die Kosteneffizienz von Horizontal- und Hochskalierungsoptionen bewerten können.

Azure bietet Empfehlungen zur Kostenverwaltung über verschiedene Tools und Dienste, z. B. Azure Advisor. Diese Empfehlungen analysieren Ihre Nutzungsmuster, Ressourcennutzung und Skalierungskonfigurationen, um Erkenntnisse und Vorschläge zur Kostenoptimierung zu liefern.

Azure Load Testing ist ein vollständig verwalteter Auslastungstestdienst, der eine hohe Auslastung generiert. Der Dienst simuliert Datenverkehr für Ihre Anwendungen, unabhängig davon, wo sie gehostet werden. Entwickler, Tester und QA-Techniker können Auslastungstests verwenden, um die Anwendungsleistung, Skalierbarkeit oder Kapazität zu optimieren.

Optimieren der automatischen Skalierung: Viele Azure-Computedienste unterstützen die Bereitstellung mehrerer identischer Instanzen und die schnelle Optimierung der Skalierungsschwellenwerte und -richtlinien. Azure bietet Funktionen zur automatischen Skalierung, mit denen Sie die Anzahl von Instanzen oder Ressourcen automatisch basierend auf der Workloadnachfrage anpassen können. Sie können Skalierungsregeln und Schwellenwerte definieren, um Horizontal- oder Horizontalskalierungsaktionen auszulösen. Mithilfe der automatischen Skalierung können Sie die Ressourcenzuordnung und Kosteneffizienz optimieren, indem Sie Ressourcen dynamisch basierend auf dem tatsächlichen Bedarf skalieren.

Azure verwaltet eine Liste von Abonnement- und Dienstlimits. Die Anzahl der Instanzen einer Ressource, die Sie in jeder Ressourcengruppe bereitstellen können, ist mit einigen Ausnahmen allgemein begrenzt. Weitere Informationen finden Sie unter Resource instance Limits pro Ressourcengruppe.

Optimieren von Nachfrage und Angebot: Azure Monitor bietet Einblicke in die Leistung und Integrität Ihrer Anwendungen und Infrastruktur. Sie können Azure Monitor verwenden, um die Auslastung Ihrer Ressourcen zu überwachen und Trends im Laufe der Zeit zu analysieren. Mithilfe von Metriken und Protokollen, die von Azure Monitor erfasst werden, können Sie Bereiche identifizieren, in denen Skalierungsanpassungen erforderlich sind. Diese Informationen können die Verfeinerung Ihrer Richtlinie für die automatische Skalierung leiten, um sicherzustellen, dass sie an den nicht funktionalen Anforderungen und Kostenoptimierungszielen ausgerichtet ist.

  • Bereitstellung: Azure verfügt über ein modernes Cloud-Content Delivery Network (CDN) namens Azure Front Door und Zwischenspeicherdienste (Azure Cache for Redis und Azure HPC Cache). Das CDN speichert Inhalte näher an den Endbenutzern zwischen, wodurch die Netzwerklatenz verringert und die Antwortzeiten verbessert werden. Zwischenspeicherung speichert eine Kopie der Daten vor dem Standard Datenspeicher, wodurch die Notwendigkeit wiederholter Anforderungen an das Back-End verringert wird. Durch die Verwendung von CDN- und Zwischenspeicherdiensten können Sie die Leistung optimieren und die Auslastung der Server reduzieren, um potenzielle Kosteneinsparungen zu erzielen.

  • Steuern der Bereitstellung: Mit Azure können Sie auch Ressourcenlimits für Ihre Cloudworkload festlegen. Indem Sie Ressourcenlimits definieren, können Sie sicherstellen, dass Ihre Workload innerhalb der zugewiesenen Ressourcen verbleibt und unnötige Kosten vermeiden. Azure bietet verschiedene Mechanismen zum Festlegen von Ressourcengrenzwerten wie Kontingente, Richtlinien und Budgetwarnungen. Mit diesen Mechanismen können Sie die Ressourcennutzung überwachen und steuern.

    API Management können Ratenbegrenzungs- und Drosselungsanforderungen ausführen. Die Fähigkeit, eingehende Anforderungen zu begrenzen oder zu drosseln, ist für Azure API Management von großer Bedeutung. Mit API Management lässt sich entweder die Rate der Anforderungen oder die Gesamtzahl der Anforderungen bzw. die Gesamtmenge der übertragenen Daten steuern. Dies ermöglicht es den API-Anbietern, ihre APIs vor Missbrauch zu schützen und mit verschiedenen API-Produkttarifen Mehrwert zu schaffen.

Prüfliste zur Kostenoptimierung

Weitere Informationen finden Sie im vollständigen Satz von Empfehlungen.