Empfehlungen zur Optimierung der Skalierungskosten
Gilt für diese Checkliste für azure Well-Architected Framework Cost Optimization:
CO:12 | Optimieren von Skalierungskosten Bewerten sie die alternative Skalierung innerhalb Ihrer Skalierungseinheiten. Erwägen Sie alternative Skalierungskonfigurationen, und richten Sie sich an das Kostenmodell. Überlegungen sollten die Verwendung anhand der Vererbungsgrenzen jeder Instanz, Ressource und Skalierungseinheitsgrenze umfassen. Verwenden Sie Strategien zur Steuerung der Nachfrage und des Angebots. |
---|
Dieses Handbuch enthält Empfehlungen zur Optimierung der Skalierungskosten. Die Kostenoptimierung bei der Skalierung ist der Prozess des Entfernens von Ineffizienzen bei der Workloadskalierung. Ziel ist es, die Skalierungskosten zu reduzieren und gleichzeitig alle nicht funktionsfähigen Anforderungen zu erfüllen. Ausgaben weniger, um dasselbe Ergebnis zu erzielen. Durch die Optimierung der Skalierung können Sie unnötige Ausgaben, Überschreibung und Abfall vermeiden. Sie trägt auch dazu bei, unerwartete Kostenspitzen zu verhindern, indem sie die Nachfrage und die Deckelung des Angebots steuern. Ineffiziente Skalierungsmethoden können zu erhöhten Arbeitsauslastungen und Betriebskosten führen und sich negativ auf die finanzielle Gesamtintegrität der Arbeitsauslastung 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 Arbeitsauslastungskosten. |
Verkleinern | Eine vertikale Skalierungsstrategie, die zu einer niedrigeren SKU wechselt, um weniger Ressourcen für die Workload bereitzustellen. |
Abskalieren | Eine horizontale Skalierungsstrategie, die Instanzen entfernt, um weniger Ressourcen für die Workload bereitzustellen. |
Aufskalieren | Eine horizontale Skalierungsstrategie, die Instanzen hinzufügt, um mehr Ressourcen für die Workload bereitzustellen. |
Skalierungseinheit | Eine Gruppe von Ressourcen, die proportional zusammen 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 ist es, im letzten verantwortbaren Moment zu vergrößern und zu verkleinern und zu vergrößern, sobald es praktisch ist. Um die Skalierung für Ihre Workload zu optimieren, können Sie alternative Skalierungsoptionen innerhalb der Skalierungseinheiten bewerten und diese mit dem Kostenmodell abgleichen. Eine Skalierungseinheit stellt eine bestimmte Gruppierung von Ressourcen dar, die unabhängig oder zusammen skaliert werden können. Sie sollten Skalierungseinheiten entwerfen, um eine bestimmte Last zu verarbeiten, und sie können mehrere Instanzen, Server oder andere Ressourcen umfassen. Sie müssen die Kosteneffizienz Ihrer Workload-Skalierungseinheiten und Modellvarianten bewerten.
Wenn Sie keine Skalierung verwenden, finden Sie Anleitungen zum Skalieren der Workload. Sie müssen herausfinden, ob Ihre Anwendung skaliert werden kann. Zustandslose Anwendungen können einfacher skaliert werden, da sie mehrere Anforderungen gleichzeitig verarbeiten können. Bewerten Sie außerdem, ob die Anwendung mit verteilten Systemprinzipien erstellt wird. Verteilte Systeme können erhöhte Last bewältigen, indem sie die Workload über mehrere Knoten verteilt. Eine Singleton-Anwendung ist jedoch so konzipiert, dass jeweils nur eine Instanz ausgeführt wird. Daher eignet sich die Skalierung möglicherweise nicht für alle Workloads.
Auswerten des Skalierungsmaßstabs im Vergleich zur Skalierung
Bei der Abwägung zwischen Aufskalierung und Hochskalierung geht es darum, den kosteneffizientesten Ansatz für die Ressourcenaufstockung eines bestehenden Systems (Aufskalierung) oder das Hinzufügen weiterer Instanzen dieses Systems (Hochskalierung) anhand verschiedener Faktoren wie Preis, Workload-Anforderungen und akzeptable Ausfallzeiten zu ermitteln. Die Wahl des richtigen Skalierungsansatzes kann zu beträchtlichen Einsparungen führen, da Sie nur für das bezahlen, was Sie benötigen, während Sie gleichzeitig die Leistungs- und Zuverlässigkeitsstandards erfüllen.
Ziel ist es, die kostengünstigste Wahl basierend auf Service-Tier-Preisen, Workloadmerkmalen, akzeptablen Ausfallzeiten und dem Kostenmodell zu ermitteln. Für einige kann es sparsamer sein, sich für teurere Instanzen in weniger Zahlen zu entscheiden. Umgekehrt könnte für andere eine günstigere Stufe mit mehr Instanzen besser sein. Um eine fundierte Entscheidung zu treffen, müssen Sie reale oder repräsentative Daten aus Ihrer Einrichtung analysieren und die relativen Kosten der einzelnen Strategie bewerten. Berücksichtigen Sie die folgenden Empfehlungen, um den kosteneffizientesten Ansatz zu bewerten:
Sammeln von Nutzungsdaten: Sammeln Sie tatsächliche Produktionsdaten oder Proxydaten, die die Arbeitsauslastungsmuster 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 Sie 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. Diese Metriken helfen Ihnen, die Kosteneffizienz verschiedener Skalierungsoptionen zu vergleichen.
Sammeln von Nutzungsdaten: Sammeln Sie tatsächliche Produktionsdaten oder Proxydaten, die die Arbeitsauslastungsmuster 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 Sie 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. Diese Metriken helfen Ihnen, die Kosteneffizienz verschiedener Skalierungsoptionen zu vergleichen.
Beachten Sie die Anforderungen: Berücksichtigen Sie bei der Entscheidung zwischen Skalierungs- und Skalierungsstrategien die Zuverlässigkeit, Leistung und Skalierungsanforderungen Ihrer Workload. Das Skalieren kann die Zuverlässigkeit durch Redundanz verbessern. Die Skalierung erhöht die Kapazität einer Ressource, aber es kann Grenzen geben, wie viel Sie skalieren können.
Berücksichtigen Sie Ressourcengrenzwerte: Beim Auswerten von Skalierungsoptionen ist es wichtig, die inhärenten Grenzwerte jeder Instanz, Ressource und Skalierungseinheitsgrenze zu berücksichtigen. Beachten Sie die oberen Skalierungsgrenzwerte für jede Ressource und planen Sie entsprechend. Beachten Sie außerdem die Beschränkungen Ihres Abonnements und anderer Ressourcen.
Testskalierung: Erstellen Sie Tests für verschiedene Skalierungsszenarien, einschließlich Skalierungs- und Skalierungsoptionen. Simulieren Sie das Arbeitsauslastungsverhalten unter verschiedenen Skalierungskonfigurationen, indem Sie die Nutzungsdaten anwenden. Führen Sie reale Tests mithilfe der modellierten Skalierungsszenarien durch.
Kosten berechnen: Verwenden Sie die gesammelten Daten und Kostenmetriken, um die Kosten zu berechnen, die den einzelnen Skalierungskonfigurationen zugeordnet sind. Berücksichtigen Sie Faktoren wie z. B. Instanzenpreise, Ressourcenauslastung und zusätzliche Kosten im Zusammenhang mit der Skalierung.
Optimieren der automatischen Skalierung
Die Optimierung der Richtlinie für die automatische Skalierung umfasst das Verfeinern der automatischen Skalierung, um auf Laständerungen basierend auf den nichtfunktionalen Anforderungen der Workload zu reagieren. Sie können übermäßige Skalierungsaktivitäten einschränken, indem Sie Schwellenwerte anpassen und den richtigen Cooldownzeitraum verwenden. Berücksichtigen Sie die folgenden Empfehlungen, um die automatische Skalierung zu optimieren:
Analysieren Sie die aktuelle Richtlinie für die automatische Skalierung: Verstehen Sie die vorhandene Richtlinie und ihr Verhalten als Reaktion auf unterschiedliche Ladestufen.
Verweisen Sie auf nicht funktionsfähige Anforderungen: Ermitteln Sie die spezifischen nicht funktionsfreien Anforderungen, die Sie berücksichtigen müssen, z. B. Reaktionszeit, Ressourcenauslastung oder Kosten.
Anpassen von Skalierungsschwellenwerten: Passen Sie die Skalierungsschwellenwerte basierend auf den Arbeitsauslastungsmerkmalen und nichtfunktionellen Anforderungen an. Legen Sie Schwellenwerte für die Skalierung nach oben oder unten basierend auf Faktoren wie CPU-Auslastung im Zeitverlauf, Netzwerkdatenverkehr oder Warteschlangenlänge fest.
Passen Sie einen Cooldownzeitraum an: Passen Sie den Cooldown-Zeitraum an, um übermäßige Skalierungsaktivitäten zu verhindern, die durch temporäre Ladespitzen ausgelöst werden. Ein Abkühlzeitraum führt zu einer Verzögerung zwischen Skalierungsereignissen, sodass das System vor weiteren Skalierungsaktionen stabilisiert werden 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 funktionsfähigen Anforderungen zu erfüllen.
Tradeoff: Das Reduzieren der Anzahl von Skalierungsereignissen erhöht die Wahrscheinlichkeit, dass Probleme im Zusammenhang mit der Skalierung auftreten. Dies bedeutet, dass Sie das zusätzliche Kissen oder Puffer beseitigen, das ihnen dabei helfen kann, potenzielle Probleme oder Verzögerungen bei der Skalierung zu bewältigen.
Verwenden der ereignisbasierten Skalierung
Durch die ereignisgesteuerte automatische Skalierung kann die Anwendung Ressourcen basierend auf bestimmten Ereignissen oder Triggern dynamisch anpassen, anstatt herkömmliche Metriken wie CPU oder Arbeitsspeicherauslastung. Beispielsweise kann kubernetes ereignisgesteuerte Automatische Skalierung (KEDA) Anwendungen basierend auf Scalern skalieren, z. B. die Länge eines Kafka-Themas. Präzision verhindert unnötige Skalierungsschwankungen und Ressourcenverschwendung. Ein hohes Maß an Präzision optimiert letztendlich die Kosten. Führen Sie die folgenden Schritte aus, um die ereignisbasierte Skalierung zu verwenden:
Wählen Sie eine Ereignisquelle aus: Bestimmen Sie die Ereignisquelle, die die Skalierung Ihrer Skalierungseinheit auslöst. Eine Quelle kann eine Nachrichtenwarteschlange, eine Streamingplattform oder ein beliebiges anderes ereignisgesteuertes System sein.
Einrichten der Ereignisaufnahme: Konfigurieren Sie Ihre Anwendung so, dass Ereignisse aus der ausgewählten Ereignisquelle verwendet werden. Es umfasst in der Regel das Herstellen einer Verbindung, das Abonnieren der relevanten Themen oder Warteschlangen und die Verarbeitung der eingehenden Ereignisse.
Implementieren Sie Skalierungslogik: Schreiben Sie die Logik, die bestimmt, wann und wie die Skalierungseinheit basierend auf den eingehenden Ereignissen skaliert werden soll. Diese Logik sollte Faktoren wie die Anzahl der Ereignisse, die Rate der eingehenden Ereignisse oder andere relevante Metriken berücksichtigen.
Integration mit Skalierungsmechanismen: Abhängig von der Laufzeitumgebung Ihrer Anwendung können Sie verschiedene Skalierungsmechanismen verwenden, um die der Anwendung zugeordneten Ressourcen anzupassen.
Konfigurieren sie 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 Einkaufswagenverarbeitung unterstützen.
Testen und überwachen: Überprüfen Sie das Verhalten Ihrer ereignisbasierten Skalierungsimplementierung, indem Sie sie mit verschiedenen Ereignisszenarien testen. Überwachen Sie die Skalierungsaktionen, und stellen Sie sicher, dass die Aktionen ihren Erwartungen entsprechen.
Der Kompromiss beim Konfigurieren und Optimieren der ereignisbasierten Automatischen Skalierung kann komplex sein, und die fehlerhafte Konfiguration kann zu einer Überbereitstellung oder zu einer Unzureichendbereitstellung von Ressourcen führen.
Optimieren der Nachfrage und des Angebots
Steuern Sie die Nachfrage nach Ihrem Angebot. Bei Workloads, bei denen die Nutzung die Skalierung bestimmt, korreliert die Kosten mit der Skalierung. Um die Kosten der Skalierung zu optimieren, können Sie die Skalierungsausgaben minimieren. Sie können die Nachfrage auslagern, indem Sie die Nachfrage an andere Ressourcen verteilen, oder Sie können die Nachfrage verringern, indem Sie Prioritätswarteschlangen, Gateway-Offloading, Pufferung und Ratelimitierung implementieren. Beide Strategien können unerwünschte Kosten aufgrund der Skalierung und des Ressourcenverbrauchs verhindern. Sie können die Bereitstellung auch steuern, indem Sie die Skalierungsgrenzwerte übergrenzen. Um die Auslastungsnachfrage und das Angebot zu optimieren, sollten Sie die folgenden Empfehlungen berücksichtigen.
Offload-Nachfrage
Die Verlagerung der Nachfrage bezieht sich auf die Praxis der Verteilung oder Übertragung der Ressourcennachfrage auf andere Ressourcen oder Dienste. Sie können verschiedene Technologien oder Strategien verwenden:
Zwischenspeichern: Verwenden Sie zwischenspeichern, um häufig aufgerufene Daten oder Inhalte zu speichern, wodurch die Last ihrer Back-End-Infrastruktur reduziert wird. Verwenden Sie z. B. Content Delivery Networks (CDNs), um statische Inhalte zwischenzuspeichern und zu bedienen, wodurch die Skalierung des Back-End reduziert wird. Allerdings können nicht jede Workload Daten zwischenspeichern. Workloads, die aktuelle und Echtzeitdaten erfordern, z. B. Handels- oder Gaming-Workloads, sollten keinen Cache verwenden. Die zwischengespeicherten Daten wären für den Benutzer alt und irrelevant.
Kompromiss. Das Zwischenspeichern kann probleme mit der Ungültigkeit, Konsistenz und Verwaltung des Cacheablaufs stellen. 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 Arbeitsauslastung 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. Dieser Ansatz gibt Ressourcen auf Ihren Servern frei, 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 eingehender Anforderungen über mehrere Server mithilfe des Lastenausgleichs. Der Lastenausgleich verteilt die Workload gleichmäßig und verhindert, dass ein einzelner Server überfordert wird. Lastenausgleichsgeräte optimieren die Ressourcennutzung und verbessern die Effizienz Ihrer Infrastruktur.
Datenbankoffloading: Verringern Sie die Last auf Dem Hauptanwendungsserver, indem Sie Datenbankvorgänge auf einen separaten Datenbankserver oder einen spezialisierten Dienst entladen. Verwenden Sie z. B. ein CDN für die Zwischenspeicherung statischer Inhalte und einen Redis-Cache für dynamische Inhalte (Daten aus Datenbank). Techniken wie Das Sharding von Datenbanken, das Lesen von Replikaten oder die Verwendung von verwalteten Datenbankdiensten können auch die Last verringern.
Tradeoff: Das Entladen bestimmter Vorgänge in alternative Ressourcen trägt dazu bei, zusätzliche Skalierung und Kosten im Zusammenhang mit der Skalierung zu reduzieren oder zu vermeiden. Es ist jedoch wichtig, die Betrieblichen und Wartungsherausforderungen zu berücksichtigen, die sich aus dem Ausladen ergeben können. Die Durchführung einer umfassenden Kosten-Nutzen-Analyse ist entscheidend, wenn Sie die am besten geeigneten Offloading-Techniken für Ihre Arbeitsauslastung auswählen. Diese Analyse stellt sicher, dass die gewählte Methode sowohl effizient als auch praktikabel in Bezug auf die erwarteten Einsparungen und betriebstechnischen Komplexitäten ist.
Reduzieren der Nachfrage
Die Reduzierung des Ressourcenbedarfs bedeutet, Strategien zu implementieren, die die Ressourcenauslastung in einer Workload minimieren. Das Entladen der Nachfrage verschiebt die Nachfrage auf andere Ressourcen. Die Verringerung der Nachfrage verringert den Bedarf an der Arbeitsauslastung. Durch die Reduzierung der Nachfrage können Sie vermeiden, dass Sie zu viele Ressourcen bereitstellen und für ungenutzte oder nicht ausgelastete Kapazitäten bezahlen müssen. Sie sollten Entwurfsmuster auf Code-Ebene verwenden, um den Bedarf an Workload-Ressourcen zu reduzieren. Führen Sie die folgenden Schritte aus, um den Bedarf durch Entwurfsmuster zu verringern:
Verstehen von Entwurfsmustern: Machen Sie sich mit verschiedenen Entwurfsmustern vertraut, die die Ressourcenoptimierung fördern.
Analysieren Sie die Workloadanforderungen: Bewerten Sie die spezifischen Anforderungen Ihrer Workload, einschließlich der erwarteten Nachfragemuster, Spitzenlasten und Ressourcenanforderungen.
Wählen Sie geeignete Entwurfsmuster aus: Wählen Sie die Entwurfsmuster aus, die den Anforderungen und Zielen Ihrer Workload entsprechen. Wenn Ihre Workload z. B. schwankende Anforderungen aufweist, können ereignisgesteuerte Skalierungs- und Drosselungsmuster dazu beitragen, die Workload zu verwalten, indem Ressourcen dynamisch zugeordnet werden. Wenden Sie die ausgewählten Entwurfsmuster auf Ihre Workloadarchitektur an. Möglicherweise müssen Sie Arbeitsauslastungskomponenten trennen, Anwendungen containerisieren, die Speicherauslastung optimieren und vieles mehr.
Kontinuierlich überwachen und optimieren: Bewerten Sie regelmäßig die Effektivität der implementierten Entwurfsmuster und passen Sie nach Bedarf an. Überwachen Der Ressourceneinsatz, Leistungsmetriken und Kostenoptimierungsmöglichkeiten.
Indem Sie diese Schritte ausführen und geeignete Entwurfsmuster verwenden, können Sie den Ressourcenbedarf reduzieren, Kosten optimieren und den effizienten Betrieb ihrer Workloads sicherstellen.
Verwenden Sie diese 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 das Trennen von Daten aus dem Nachrichtenfluss reduziert dieses Muster die Größe von Nachrichten und unterstützt eine kostengünstigere Messaginglösung.
Konkurrierende Verbraucher: 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.
Berechnungsressourcenkonsolidierung: Dieses Muster erhöht die Dichte und konsolidiert Rechenressourcen, indem mehrere Anwendungen oder Komponenten in der gemeinsamen Infrastruktur kombiniert werden. Sie maximiert die Ressourcenauslastung, vermeidet nicht genutzte bereitgestellte Kapazität und verringert die Kosten.
Bereitstellungsstempel: Die Verwendung von Bereitstellungsstempeln bietet mehrere Vorteile, z. B. geoverteilte Gerätegruppen, Bereitstellen neuer Features für bestimmte Stempel und Beobachten von Kosten pro Gerät. Bereitstellungsstempel ermöglichen eine bessere Skalierbarkeit, Fehlertoleranz und eine effiziente Ressourcenauslastung.
Gateway offloading: Dieses Muster entlädt die Anforderungsverarbeitung auf einem Gatewaygerät und leitet Kosten von Ressourcen pro Knoten an die Gatewayimplementierung um. Die Verwendung dieses Entwurfsmusters kann zu einem niedrigeren Eigentumsaufwand in einem zentralisierten Verarbeitungsmodell führen.
Publisher/Subscriber: Dieses Muster entkoppelt Komponenten in einer Architektur und ersetzt die direkte Kommunikation durch einen Zwischennachrichtenbroker oder Ereignisbus. Sie ermöglicht einen ereignisgesteuerten Ansatz und eine verbrauchsbasierte Abrechnung, wodurch die Überteilung vermieden wird.
Warteschlangenbasiertes Lastenausgleich: Das Muster puffert eingehende Anforderungen oder Aufgaben in einer Warteschlange. Durch die Pufferung wird die Workload geglättet und die Überlastung von Ressourcen reduziert, 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 und ermöglicht Optimierungen mit Datenkolocation. Sharding kann zu Kosteneinsparungen führen, indem mehrere Instanzen von Rechen- oder Speicherressourcen mit niedrigerer Spezifikation verwendet werden.
Hosting statischer Inhalte: Dieses Muster liefert statische Inhalte effizient mithilfe einer Hostingplattform, die zu diesem Zweck entwickelt wurde. Dadurch wird die Verwendung von teureren dynamischen Anwendungshosts vermieden und die Ressourcenauslastung optimiert.
Einschränkung: Dieses Muster legt Grenzwerte für die Rate (Rate limiting) oder den Durchsatz eingehender Anforderungen an eine Ressource oder Komponente fest. Sie hilft bei der Kostenmodellierung und kann direkt an das Geschäftsmodell der Anwendung gebunden werden.
Valet Key: Dieses Muster gewährt sicheren und exklusiven Zugriff auf eine Ressource, ohne mehr Komponenten einzubeziehen, die Notwendigkeit von zwischengeschalteten Ressourcen zu verringern und die Effizienz zu verbessern.
Steuerungsversorgung
Das Definieren einer Obergrenze für den Betrag, den Sie für eine bestimmte Ressource oder einen bestimmten Dienst ausgeben möchten, ist eine Möglichkeit, die Versorgung zu steuern. Es ist eine wichtige Strategie für die Kostenkontrolle und die Sicherstellung, dass Die Ausgaben nicht ein bestimmtes Niveau überschreiten. Richten Sie ein Budget ein, und überwachen Sie die Ausgaben, um sicherzustellen, dass sie innerhalb des definierten Betrags bleibt. Sie können Kostenverwaltungsplattformen, Budgetwarnungen oder Nutzungs- und Ausgabenmuster nachverfolgen. Einige Dienste ermöglichen es Ihnen, die Versorgungs- und Höchstraten zu drosseln, und Sie sollten diese Features verwenden, wenn sie hilfreich sind.
Angebotskontrolle bedeutet, einen Grenzwert für den Betrag festzulegen, den Sie bereit sind, für eine bestimmte Ressource oder einen Dienst auszugeben. Das ist eine wichtige Strategie, denn sie hilft bei der Kostenkontrolle und stellt sicher, dass die Ausgaben ein bestimmtes Niveau nicht überschreiten. Legen Sie ein Budget fest und überwachen Sie die Ausgaben, um sicherzustellen, dass sie innerhalb des festgelegten Rahmens bleiben. Sie können Kostenverwaltungsplattformen, Budgetwarnungen oder Nutzungs- und Ausgabenmuster nachverfolgen. Einige Dienste ermöglichen es Ihnen, die Versorgungs- und Höchstraten zu drosseln, und Sie sollten diese Features verwenden, wenn sie hilfreich sind.
Kompromiss: Strengere Grenzwerte können zu verpassten Möglichkeiten 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 kostenoptimierung und sicherzustellen, dass Sie über ausreichende Ressourcen verfügen, um Ihre geschäftlichen Anforderungen zu erfüllen.
Azure-Erleichterung
Auswerten des Scaleouts im Vergleich zur Skalierung: Azure bietet eine Testumgebung, in der Sie unterschiedliche Skalierungskonfigurationen bereitstellen und testen können. Mithilfe der tatsächlichen Workloaddaten oder Proxydaten können Sie reale Szenarien simulieren und die Auswirkungen auf Kosten messen. Azure bietet Tools und Dienste für Leistungstests, Auslastungstests und Überwachung, die Ihnen helfen können, die Kosteneffizienz von Skalierungen im Vergleich zu Skalierungsoptionen zu bewerten.
Azure bietet Empfehlungen für die Kostenverwaltung über verschiedene Tools und Dienste, z. B. den Azure Advisor. Diese Empfehlungen analysieren Ihre Nutzungsmuster, ressourcenauslastung und Skalierungskonfigurationen, um Einblicke und Vorschläge zur Optimierung der Kosten zu liefern.
Azure Load Testing ist ein vollständig verwalteter Lastentestdienst, der eine hohe Auslastung generiert. Der Dienst simuliert Datenverkehr für Ihre Anwendungen, unabhängig davon, wo sie gehostet werden. Entwickler, Tester und QS-Techniker können Lasttests 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 für die automatische Skalierung, mit denen Sie die Anzahl der Instanzen oder Ressourcen basierend auf der Workloadnachfrage automatisch anpassen können. Sie können Skalierungsregeln und Schwellenwerte definieren, um Skalierungs- oder Skalierungsaktionen auszulösen. Mithilfe der automatischen Skalierung können Sie die Ressourcenzuordnung und Die Kosteneffizienz optimieren, indem Sie Ressourcen dynamisch basierend auf der tatsächlichen Nachfrage skalieren.
Azure verwaltet eine Liste der Abonnement- und Dienstgrenzwerte. Es gibt einen allgemeinen Grenzwert für die Anzahl der Instanzen einer Ressource, die Sie in jeder Ressourcengruppe mit einigen Ausnahmen bereitstellen können. Weitere Informationen finden Sie unter Ressourceninstanzbeschränkungen 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 Last Ihrer Ressourcen zu überwachen und Trends im Laufe der Zeit zu analysieren. Mithilfe von Metriken und Protokollen, die von Azure Monitor gesammelt werden, können Sie Bereiche identifizieren, in denen Skalierungsanpassungen möglicherweise erforderlich sind. Diese Informationen können die Verfeinerung Ihrer Richtlinie für die automatische Skalierung leiten, um sicherzustellen, dass sie den nicht funktionsfähigen Anforderungen und Kostenoptimierungszielen entspricht.
Offloading-Angebot: Azure verfügt über ein modernes Cloud Content Delivery Network (CDN) mit dem Namen Azure Front Door - und Caching-Dienste (Azure Cache für Redis und Azure HPC Cache). Das CDN speichert Inhalte näher an den Endbenutzern zwischen, reduziert die Netzwerklatenz und verbessert die Reaktionszeiten. Zwischenspeichern speichert eine Kopie der Daten vor dem Hauptdatenspeicher, wodurch die Notwendigkeit wiederholter Anforderungen an das Back-End reduziert wird. Durch die Verwendung von CDN- und Cachingdiensten können Sie die Leistung optimieren und die Auslastung auf Servern reduzieren, um potenzielle Kosteneinsparungen zu erzielen.
Steuern der Versorgung: Azure ermöglicht ihnen auch das Festlegen von Ressourcengrenzwerten für Ihre Cloud-Workload. Durch das Definieren von Ressourcengrenzwerten können Sie sicherstellen, dass Ihre Arbeitsauslastung innerhalb der zugeordneten Ressourcen verbleibt und unnötige Kosten vermeiden. Azure bietet verschiedene Mechanismen zum Festlegen von Ressourcengrenzwerten wie Kontingenten, Richtlinien und Budgetwarnungen. Diese Mechanismen helfen Ihnen, die Ressourcennutzung zu überwachen und zu steuern.
Api-Verwaltung kann Grenzwerte und Drosselungsanforderungen bewerten. 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.
Verwandte Links
- Skalieren der Arbeitsauslastung
- Azure Advisor-Empfehlungen zu Kosten
- Was ist Azure Load Testing?
- Einschränkungen für Azure-Abonnements und Dienste, Kontingente und Einschränkungen
- Ressourcen, die nicht auf 800 Instanzen pro Ressourcengruppe beschränkt sind
- Was ist Azure Front Door?
- Was ist Azure Cache for Redis?
- Was ist Azure HPC-Cache?
- Erweiterte Anforderungsbegrenzung mit Azure API Management
Checkliste zur Kostenoptimierung
Lesen Sie den vollständigen Satz von Empfehlungen.