Dieses Prinzip in der Säule „Nachhaltigkeit“ des Google Cloud Well-Architected Framework enthält Empfehlungen zur Optimierung der Ressourcennutzung durch Ihre Arbeitslasten in Google Cloud.
Prinzipübersicht
Die Optimierung der Ressourcennutzung ist entscheidend für die Verbesserung der Nachhaltigkeit Ihrer Cloud-Umgebung. Jede bereitgestellte Ressource – von Rechenzyklen bis hin zur Datenspeicherung – wirkt sich direkt auf den Energieverbrauch, die Wasserintensität und die CO2-Emissionen aus. Um den ökologischen Fußabdruck Ihrer Arbeitslasten zu reduzieren, müssen Sie beim Bereitstellen, Verwalten und Verwenden von Cloud-Ressourcen fundierte Entscheidungen treffen.
Empfehlungen
Berücksichtigen Sie die Empfehlungen in den folgenden Abschnitten, um die Ressourcennutzung zu optimieren.
Automatisierte und dynamische Skalierung implementieren
Durch die automatisierte und dynamische Skalierung wird die Ressourcennutzung optimiert. So lässt sich Energieverschwendung durch inaktive oder überdimensionierte Infrastruktur vermeiden. Die Reduzierung der Energieverschwendung führt zu niedrigeren Kosten und geringeren CO2-Emissionen.
Verwenden Sie die folgenden Techniken, um die automatisierte und dynamische Skalierbarkeit zu implementieren.
Horizontale Skalierung verwenden
Die horizontale Skalierung ist die bevorzugte Skalierungstechnik für die meisten Cloud-First-Anwendungen. Anstatt die Größe jeder Instanz zu erhöhen ( vertikale Skalierung), fügen Sie Instanzen hinzu, um die Last zu verteilen. Sie können beispielsweise verwaltete Instanzgruppen (Managed Instance Groups, MIGs) verwenden, um eine Gruppe von Compute Engine-VMs automatisch zu skalieren. Horizontal skalierte Infrastruktur ist widerstandsfähiger, da der Ausfall einer Instanz die Verfügbarkeit der Anwendung nicht beeinträchtigt. Die horizontale Skalierung ist auch eine ressourceneffiziente Technik für Anwendungen mit variabler Last.
Geeignete Skalierungsrichtlinien konfigurieren
Konfigurieren Sie die Autoscaling-Einstellungen basierend auf den Anforderungen Ihrer Arbeitslasten. Definieren Sie benutzerdefinierte Messwerte und Grenzwerte, die für das Anwendungsverhalten spezifisch sind. Verlassen Sie sich nicht nur auf die CPU-Auslastung, sondern berücksichtigen Sie auch Messwerte wie die Warteschlangentiefe für asynchrone Aufgaben, die Anfragelatenz und benutzerdefinierte Anwendungsmesswerte. Um häufige, unnötige Skalierungen oder Flapping zu vermeiden, definieren Sie klare Skalierungs richtlinien. Konfigurieren Sie beispielsweise für Arbeitslasten, die Sie in Google Kubernetes Engine (GKE) bereitstellen, eine geeignete Autoscaling-Richtlinie für Cluster.
Reaktive und proaktive Skalierung kombinieren
Bei der reaktiven Skalierung wird das System als Reaktion auf Laständerungen in Echtzeit skaliert. Diese Technik eignet sich für Anwendungen mit unvorhersehbaren Lastspitzen.
Die proaktive Skalierung eignet sich für Arbeitslasten mit vorhersagbaren Mustern, z. B. feste Geschäftszeiten und wöchentliche Berichte. Verwenden Sie für solche Arbeitslasten das zeitbasierte Autoscaling, um Ressourcen vorab bereitzustellen, damit sie eine erwartete Last bewältigen können. Diese Technik verhindert, dass Ressourcen knapp werden, und sorgt für eine reibungslosere Nutzererfahrung mit höherer Effizienz. Außerdem können Sie mit dieser Technik proaktiv für bekannte Lastspitzen planen, z. B. bei großen Verkaufsveranstaltungen und gezielten Marketingmaßnahmen.
Google Cloud Verwaltete Dienste und Funktionen wie GKE Autopilot, Cloud Run und MIGs verwalten die proaktive Skalierung automatisch, indem sie aus Ihren Arbeitslastmustern lernen. Wenn ein Cloud Run-Dienst keinen Traffic empfängt, wird er standardmäßig auf null Instanzen skaliert.
Zustandslose Anwendungen entwickeln
Damit eine Anwendung horizontal skaliert werden kann, müssen ihre Komponenten zustandslos sein. Das bedeutet, dass die Sitzung oder die Daten eines bestimmten Nutzers nicht an eine einzelne Compute-Instanz gebunden sind. Wenn Sie den Sitzungsstatus außerhalb der Compute-Instanz speichern, z. B. in Memorystore for Redis, kann jede Compute-Instanz Anfragen von jedem Nutzer verarbeiten. Dieser Designansatz ermöglicht eine nahtlose und effiziente horizontale Skalierung.
Planung und Batchverarbeitung verwenden
Die Batchverarbeitung ist ideal für umfangreiche, nicht dringende Arbeitslasten. Mit Batchjobs können Sie Ihre Arbeitslasten im Hinblick auf Energieeffizienz und Kosten optimieren.
Verwenden Sie die folgenden Techniken, um die Planung und Batchjobs zu implementieren.
Zeitplan für geringe CO₂-Intensität
Planen Sie Ihre Batchjobs so, dass sie in Regionen mit geringer Kohlenstoffintensität und in Zeiträumen ausgeführt werden, in denen das lokale Stromnetz einen hohen Anteil an sauberer Energie hat. Im Bericht zur Carbon Footprint finden Sie die Tageszeiten mit der geringsten Kohlenstoffintensität für eine Region.
Spot-VMs für nicht kritische Arbeitslasten verwenden
Spot-VMs ermöglichen es Ihnen, ungenutzte Compute Engine-Kapazität zu einem stark reduzierten Preis zu nutzen. Spot-VMs können vorzeitig beendet werden, bieten aber eine kostengünstige Möglichkeit, große Datasets zu verarbeiten, ohne dass dedizierte, immer aktive Ressourcen erforderlich sind. Spot-VMs sind ideal für nicht kritische, fehlertolerante Batchjobs.
Jobs konsolidieren und parallelisieren
Um den Aufwand für das Starten und Beenden einzelner Jobs zu reduzieren, gruppieren Sie ähnliche Jobs in einem großen Batch. Führen Sie diese umfangreichen Arbeitslasten mit Diensten wie Batch aus. Der Dienst stellt die erforderliche Infrastruktur automatisch bereit und verwaltet sie. So wird eine optimale Ressourcennutzung gewährleistet.
Verwaltete Dienste verwenden
Verwaltete Dienste wie Batch und Dataflow übernehmen automatisch die Bereitstellung, Planung und Überwachung von Ressourcen. Die Cloud-Plattform kümmert sich um die Ressourcenoptimierung. Sie können sich auf die Anwendungslogik konzentrieren. Dataflow skaliert beispielsweise die Anzahl der Worker automatisch basierend auf dem Datenvolumen in der Pipeline. So zahlen Sie nicht für inaktive Ressourcen.
VM-Maschinenfamilien an Arbeitslastanforderungen anpassen
Die Maschinentypen, die Sie für Ihre Compute Engine-VMs verwenden können, sind in Maschinenfamiliengruppiert, die für verschiedene Arbeitslasten optimiert sind. Wählen Sie geeignete Maschinenfamilien basierend auf den Anforderungen Ihrer Arbeitslasten aus.
| Maschinenfamilie | Empfohlen für Arbeitslasttypen | Nachhaltigkeitsleitfaden |
|---|---|---|
| Instanzen für allgemeine Zwecke (E2, N2, N4, Tau T2A/T2D): Diese Instanzen bieten ein ausgewogenes Verhältnis zwischen CPU und Arbeitsspeicher. | Webserver, Mikrodienste, kleine bis mittelgroße Datenbanken und Entwicklungsumgebungen. | Die E2-Serie ist aufgrund der dynamischen Zuweisung von Ressourcen sehr kosteneffizient und energieeffizient. Die Tau T2A-Serie verwendet ARM-basierte Prozessoren, die bei umfangreichen Arbeitslasten oft energieeffizienter pro Leistungseinheit sind. |
| Computing-optimierte Instanzen (C2, C3): Diese Instanzen bieten ein hohes Verhältnis von vCPU zu Arbeitsspeicher und eine hohe Leistung pro Kern. | Hochleistungs-Computing (HPC), Batchverarbeitung, Gaming-Server, und CPU-basierte Datenanalyse. | Mit einer Instanz der C-Serie können Sie CPU-intensive Aufgaben schneller erledigen, So werden die gesamte Rechenzeit und der Energieverbrauch des Jobs reduziert. |
| Speicheroptimierte Instanzen (M3, M2): Diese Instanzen sind für Arbeitslasten konzipiert, die viel Arbeitsspeicher benötigen. | Große In-Memory-Datenbanken und Data Warehouses wie SAP HANA oder In-Memory-Analysen. | Mit speicheroptimierten Instanzen können speicherintensive Arbeitslasten auf weniger physischen Knoten konsolidiert werden. Diese Konsolidierung reduziert den Gesamtenergieverbrauch im Vergleich zur Verwendung mehrerer kleinerer Instanzen. Hochleistungsspeicher reduziert die Latenz beim Datenzugriff, wodurch die Gesamtzeit, die die CPU im aktiven Zustand verbringt, reduziert werden kann. |
| Speicheroptimierte Instanzen (Z3) : Diese Instanzen bieten lokalen SSD-Speicher mit hohem Durchsatz und geringer Latenz. | Data Warehousing, Protokollanalyse sowie SQL-, NoSQL- und Vektordatenbanken. | Speicheroptimierte Instanzen verarbeiten große Datasets lokal. So wird die Energie, die für den netzwerkübergreifenden Datenaustritt verwendet wird, vermieden. Wenn Sie lokalen Speicher für Aufgaben mit vielen E/A-Vorgängen verwenden, vermeiden Sie die Überbereitstellung mehrerer Standardinstanzen. |
| Beschleunigeroptimierte Instanzen (A3, A2, G2): Diese Instanzen sind für GPU- und TPU-beschleunigte Arbeitslasten wie KI, ML und HPC konzipiert. | ML-Modelltraining und -Inferenz sowie wissenschaftliche Simulationen. | TPUs sind für optimale Energie effizienz konzipiert. Sie bieten mehr Berechnungen pro Watt. Eine GPU-beschleunigte Instanz wie die A3-Serie mit NVIDIA H100 GPUs kann für das Training großer Modelle deutlich energieeffizienter sein als eine reine CPU-Alternative. Obwohl eine GPU-beschleunigte Instanz einen höheren nominalen Stromverbrauch hat, wird die Aufgabe viel schneller abgeschlossen. |
Auf die neuesten Maschinentypen upgraden
Die Verwendung der neuesten Maschinentypen kann zur Verbesserung der Nachhaltigkeit beitragen. Wenn Maschinentypen aktualisiert werden, sind sie oft energieeffizienter und bieten eine höhere Leistung pro Watt. VMs, die die neuesten Maschinentypen verwenden, können dieselbe Arbeitsmenge mit geringerem Stromverbrauch erledigen.
CPUs, GPUs und TPUs profitieren oft von technischen Weiterentwicklungen in der Chiparchitektur, z. B.:
- Spezialisierte Kerne: Weiterentwicklungen bei Prozessoren umfassen oft spezialisierte Kerne oder Anweisungen für häufige Arbeitslasten. CPUs können beispielsweise dedizierte Kerne für Vektoroperationen oder integrierte KI-Beschleuniger haben. Wenn diese Aufgaben von der Haupt-CPU ausgelagert werden, werden sie effizienter erledigt und verbrauchen weniger Energie.
- Verbessertes Energiemanagement: Weiterentwicklungen in der Chiparchitektur umfassen oft ausgefeiltere Energiemanagementfunktionen, z. B. die dynamische Anpassung von Spannung und Frequenz basierend auf der Arbeitslast. Mit diesen Energiemanagementfunktionen können die Chips mit maximaler Effizienz ausgeführt werden und in den Energiesparmodus wechseln, wenn sie inaktiv sind. So wird der Energieverbrauch minimiert.
Die technischen Verbesserungen in der Chiparchitektur bieten die folgenden direkten Vorteile für Nachhaltigkeit und Kosten:
- Höhere Leistung pro Watt: Dies ist ein wichtiger Messwert für die Nachhaltigkeit. Die C4-VMs bieten beispielsweise ein um 40% besseres Preis-Leistungs-Verhältnis als C3-VMs bei gleichem Energieverbrauch. Der C4A-Prozessor bietet eine um 60% höhere Energieeffizienz als vergleichbare x86-Prozessoren. Mit diesen Leistungsmerkmalen können Sie Aufgaben schneller erledigen oder weniger Instanzen für dieselbe Last verwenden.
- Geringerer Gesamtenergieverbrauch: Mit verbesserten Prozessoren werden Rechen ressourcen für eine bestimmte Aufgabe kürzer verwendet. So werden der Gesamtenergieverbrauch und die CO2-Bilanz reduziert. Die Auswirkungen auf die CO2-Bilanz sind besonders hoch bei kurzlebigen, rechenintensiven Arbeitslasten wie Batchjobs und ML-Modelltraining.
- Optimale Ressourcennutzung: Die neuesten Maschinentypen eignen sich oft besser für moderne Software und sind besser mit erweiterten Funktionen von Cloud-Plattformen kompatibel. Diese Maschinentypen ermöglichen in der Regel eine bessere Ressourcennutzung. So wird die Notwendigkeit einer Überbereitstellung reduziert und sichergestellt, dass jedes Watt Strom produktiv genutzt wird.
Containeranwendungen bereitstellen
Sie können containerbasierte, vollständig verwaltete Dienste wie GKE und Cloud Run als Teil Ihrer Strategie für nachhaltiges Cloud Computing verwenden. Diese Dienste helfen, die Ressourcennutzung zu optimieren und die Ressourcenverwaltung zu automatisieren.
Funktion „Skalierung auf null“ von Cloud Run nutzen
Cloud Run bietet eine verwaltete serverlose Umgebung, die Instanzen automatisch auf null skaliert, wenn kein eingehender Traffic für einen Dienst vorhanden ist oder wenn ein Job abgeschlossen ist. Autoscaling trägt dazu bei, den Energieverbrauch durch inaktive Infrastruktur zu vermeiden. Ressourcen werden nur dann mit Strom versorgt, wenn sie aktiv Anfragen verarbeiten. Diese Strategie ist sehr effektiv für intermittierende oder ereignisgesteuerte Arbeitslasten. Für KI-Arbeitslasten können Sie GPUs mit Cloud Run verwenden, so dass Sie nur für die tatsächlich genutzten GPUs zahlen.
Ressourcenoptimierung mit GKE automatisieren
GKE ist eine Plattform zur Containerorchestrierung, die dafür sorgt, dass Anwendungen nur die Ressourcen verwenden, die sie benötigen. Um die Ressourcenoptimierung zu automatisieren, bietet GKE die folgenden Techniken:
- Bin Packing: GKE Autopilot packt mehrere Container intelligent auf die verfügbaren Knoten. Bin Packing maximiert die Auslastung jedes Knotens und reduziert die Anzahl der inaktiven oder unterausgelasteten Knoten. So wird der Energieverbrauch reduziert.
- Horizontales Pod-Autoscaling (Horizontal Pod Autoscaling, HPA): Mit HPA wird die Anzahl der Containerreplikate (Pods) automatisch anhand vordefinierter Messwerte wie der CPU-Auslastung oder benutzerdefinierter anwendungsspezifischer Messwerte angepasst. Wenn beispielsweise der Traffic für Ihre Anwendung ansteigt, fügt GKE Pods hinzu, um die Nachfrage zu decken. Wenn der Traffic nachlässt, reduziert GKE die Anzahl der Pods. Diese dynamische Skalierung verhindert die Überbereitstellung von Ressourcen. So zahlen Sie nicht für unnötige Rechenkapazität und müssen diese nicht mit Strom versorgen.
- Vertikales Pod-Autoscaling (Vertical Pod Autoscaling, VPA): Sie können GKE so konfigurieren, dass die CPU- und Arbeitsspeicherzuweisungen und -Limits für einzelne Container automatisch angepasst werden. Diese Konfiguration sorgt dafür, dass einem Container nicht mehr Ressourcen zugewiesen werden als erforderlich. So wird die Überbereitstellung von Ressourcen vermieden.
- Multidimensionales Pod-Autoscaling in GKE: Für komplexe Arbeitslasten können Sie HPA und VPA gleichzeitig konfigurieren, um sowohl die Anzahl der Pods als auch die Größe der einzelnen Pods zu optimieren. Mit dieser Technik lässt sich der Energieverbrauch für die erforderliche Leistung so gering wie möglich halten.
- Topologieabhängige Planung (Topology-Aware Scheduling, TAS): TAS verbessert die Netzwerkeffizienz für KI- und ML-Arbeitslasten in GKE, indem Pods basierend auf der physischen Struktur der Rechenzentrumsinfrastruktur platziert werden. TAS platziert Arbeitslasten strategisch zusammen, um die Anzahl der Netzwerksprünge zu minimieren. Diese Platzierung trägt dazu bei, die Kommunikationslatenz und den Energieverbrauch zu reduzieren. Durch die Optimierung der physischen Ausrichtung von Knoten und spezialisierter Hardware beschleunigt TAS die Aufgabenerledigung und maximiert die Energieeffizienz von umfangreichen KI- und ML-Arbeitslasten.
CO2-bewusste Planung konfigurieren
Bei Google verlagern wir unsere Arbeitslasten kontinuierlich an Standorte und Zeiten die den saubersten Strom bieten. Außerdem verwenden wir ältere Geräte für alternative Anwendungsfälle wieder. Mit dieser CO2-bewussten Planungsstrategie können Sie dafür sorgen, dass Ihre containerisierten Arbeitslasten saubere Energie nutzen.
Um die CO2-bewusste Planung zu implementieren, benötigen Sie Informationen zum Energiemix, der Rechenzentren in einer Region in Echtzeit versorgt. Sie können diese Informationen in einem maschinenlesbaren Format aus dem Repository Carbon free energy for Google Cloud regions auf GitHub oder aus einem öffentlichen BigQuery-Dataset abrufen. Die stündlichen Daten zum Energiemix und zur CO₂-Intensität, die zur Berechnung des jährlichen CO₂-Datensatzes von Google verwendet werden, stammen von Electricity Maps.
Für die Implementierung der CO2-bewussten Planung empfehlen wir die folgenden Techniken:
- Geografische Verlagerung: Planen Sie Ihre Arbeitslasten so, dass sie in Regionen ausgeführt werden, in denen ein höherer Anteil an erneuerbaren Energiequellen verwendet wird. So können Sie sauberere Stromnetze nutzen.
- Zeitliche Verlagerung: Konfigurieren Sie für nicht kritische, flexible Arbeitslasten wie die Batch verarbeitung, dass sie außerhalb der Spitzenzeiten oder dann ausgeführt werden, wenn erneuerbare Energien am häufigsten verfügbar sind. Dieser Ansatz wird als zeitliche Verlagerung bezeichnet und trägt dazu bei, die Gesamt-CO2-Bilanz zu verbessern, indem sauberere Energiequellen genutzt werden, wenn sie verfügbar sind.
Energieeffiziente Notfallwiederherstellung entwickeln
Die Vorbereitung auf die Notfallwiederherstellung (Disaster Recovery, DR) umfasst oft die Vorabbereitstellung redundanter Ressourcen in einer sekundären Region. Inaktive oder unterausgelastete Ressourcen können jedoch zu erheblicher Energieverschwendung führen. Wählen Sie DR-Strategien, die die Ressourcennutzung maximieren und die CO2-Auswirkungen minimieren, ohne Ihre Ziele für die Wiederherstellungszeit (Recovery Time Objectives, RTOs) zu beeinträchtigen.
Für effiziente Kaltstarts optimieren
Verwenden Sie die folgenden Ansätze, um aktive Ressourcen in Ihrer sekundären Region (DR) zu minimieren oder zu vermeiden:
- Priorisieren Sie Cold DR: Halten Sie Ressourcen in der DR-Region ausgeschaltet oder im Zustand „Skalierung auf null“. So lässt sich die CO2-Bilanz inaktiver Rechenressourcen vermeiden.
- Serverloses Failover nutzen: Verwenden Sie verwaltete serverlose Dienste wie Cloud Run für DR-Endpunkte. Cloud Run wird auf null skaliert, wenn es nicht verwendet wird. So können Sie eine DR-Topologie beibehalten, die keinen Strom verbraucht, bis der Traffic zur DR-Region umgeleitet wird.
- Wiederherstellung mit Infrastruktur als Code (Infrastructure as Code, IaC) automatisieren: Anstatt Ressourcen am DR-Standort aktiv zu halten (warm), verwenden Sie ein IaC-Tool wie Terraform, um Umgebungen nur bei Bedarf schnell bereitzustellen.
Gleichgewicht zwischen Redundanz und Auslastung
Ressourcenredundanz ist ein Hauptgrund für Energieverschwendung. Verwenden Sie die folgenden Ansätze, um die Redundanz zu reduzieren:
- Aktiv/Aktiv-Konfiguration gegenüber Aktiv/Passiv-Konfiguration bevorzugen: Bei einer Aktiv/Passiv -Konfiguration sind die Ressourcen am passiven Standort inaktiv, was zu Energieverschwendung führt. Eine optimal dimensionierte Aktiv/Aktiv-Architektur sorgt dafür, dass alle bereitgestellten Ressourcen in beiden Regionen aktiv Traffic verarbeiten. So können Sie die Energieeffizienz Ihrer Infrastruktur maximieren.
- Redundanz richtig dimensionieren: Replizieren Sie Daten und Dienste nur dann über Regionen hinweg, wenn die Replikation erforderlich ist, um die Anforderungen an hohe Verfügbarkeit oder DR zu erfüllen. Jedes zusätzliche Replikat erhöht die Energiekosten für nichtflüchtigen Speicher und Netzwerkaustritt.