Dieses Prinzip in der Nachhaltigkeitssäule des Google Cloud Well-Architected Framework enthält Empfehlungen zur Optimierung der Ressourcennutzung durch Ihre Arbeitslasten in Google Cloud.
Übersicht über die Prinzipien
Die Optimierung der Ressourcennutzung ist entscheidend, um die Nachhaltigkeit Ihrer Cloud-Umgebung zu verbessern. Jede bereitgestellte Ressource – von Rechenzyklen bis hin zur Datenspeicherung – wirkt sich direkt auf den Energieverbrauch, die Wasserintensität und die CO₂-Emissionen aus. Wenn Sie den ökologischen Fußabdruck Ihrer Arbeitslasten reduzieren möchten, müssen Sie fundierte Entscheidungen treffen, wenn Sie Cloud-Ressourcen bereitstellen, verwalten und verwenden.
Empfehlungen
Beachten 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 wird verhindert, dass Energie durch inaktive oder überdimensionierte Infrastruktur verschwendet wird. Die Reduzierung der Energieverschwendung führt zu niedrigeren Kosten und geringerem CO₂-Ausstoß.
Verwenden Sie die folgenden Techniken, um eine 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, was als vertikale Skalierung bezeichnet wird, 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 horizontal zu skalieren. Eine 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 variablen Laststufen.
Geeignete Skalierungsrichtlinien konfigurieren
Konfigurieren Sie die Autoscaling-Einstellungen entsprechend den Anforderungen Ihrer Arbeitslasten. Benutzerdefinierte Messwerte und Schwellenwerte definieren, die für das Anwendungsverhalten spezifisch sind. Anstatt sich nur auf die CPU-Auslastung zu verlassen, sollten Sie Messwerte wie die Warteschlangentiefe für asynchrone Aufgaben, die Anfragelatenz und benutzerdefinierte Anwendungsmesswerte berücksichtigen. Definieren Sie klare Skalierungsrichtlinien, um häufiges, unnötiges Skalieren oder Flapping zu vermeiden. Konfigurieren Sie beispielsweise für Arbeitslasten, die Sie in Google Kubernetes Engine (GKE) bereitstellen, eine geeignete Cluster-Autoscaling-Richtlinie.
Reaktive und proaktive Skalierung kombinieren
Bei der reaktiven Skalierung wird das System als Reaktion auf Echtzeit-Laständerungen skaliert. Diese Technik eignet sich für Anwendungen mit unvorhersehbaren Lastspitzen.
Proaktives Skalieren eignet sich für Arbeitslasten mit vorhersehbaren Mustern, z. B. feste tägliche Geschäftszeiten und wöchentliche Berichterstellung. Verwenden Sie für solche Arbeitslasten das geplante Autoscaling, um Ressourcen vorab bereitzustellen, damit sie eine erwartete Laststufe bewältigen können. Diese Technik verhindert einen Kampf um Ressourcen und sorgt für eine reibungslosere Nutzung mit höherer Effizienz. Diese Technik hilft Ihnen auch, proaktiv für bekannte Lastspitzen wie große Verkaufsaktionen und gezielte Marketingmaßnahmen zu planen.
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 herunterskaliert.
Zustandslose Anwendungen entwerfen
Damit eine Anwendung horizontal skaliert werden kann, sollten 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 Batches 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 Zeitpläne und Batchjobs zu implementieren.
Für niedrige CO₂-Intensität planen
Planen Sie die Ausführung Ihrer Batchjobs in Regionen mit geringen CO₂-Emissionen und zu Zeiten, in denen das lokale Stromnetz einen hohen Anteil an sauberer Energie hat. Mit dem Carbon Footprint-Bericht können Sie die Tageszeiten mit der geringsten CO₂-Intensität für eine Region ermitteln.
Spot-VMs für unkritische Arbeitslasten verwenden
Mit Spot-VMs können Sie ungenutzte Compute Engine-Kapazität zu einem stark reduzierten Preis nutzen. Spot-VMs können vorzeitig beendet werden, bieten aber eine kostengünstige Möglichkeit, große Datasets zu verarbeiten, ohne dass dedizierte, always-on Ressourcen erforderlich sind. Spot-VMs sind ideal für nicht kritische, fehlertolerante Batchjobs.
Jobs konsolidieren und parallelisieren
Wenn Sie den Aufwand für das Starten und Beenden einzelner Jobs reduzieren möchten, fassen Sie ähnliche Jobs in einem einzigen großen Batch zusammen. Führen Sie diese umfangreichen Arbeitslasten in Diensten wie Batch aus. Der Dienst stellt die erforderliche Infrastruktur automatisch bereit und verwaltet sie, was zu einer optimalen Ressourcenauslastung beiträgt.
Verwaltete Dienste verwenden
Verwaltete Dienste wie Batch und Dataflow übernehmen automatisch die Ressourcenbereitstellung, Planung und das Monitoring. Die Cloud-Plattform übernimmt die Ressourcenoptimierung. Sie können sich auf die Anwendungslogik konzentrieren. Beispiel: Dataflow skaliert die Anzahl der Worker automatisch basierend auf dem Datenvolumen in der Pipeline, sodass Sie nicht für inaktive Ressourcen bezahlen.
VM-Maschinenfamilien an Arbeitslastanforderungen anpassen
Die Maschinentypen, die Sie für Ihre Compute Engine-VMs verwenden können, sind in Maschinenfamilien gruppiert, die für verschiedene Arbeitslasten optimiert sind. Wählen Sie die passenden Maschinenfamilien entsprechend den Anforderungen Ihrer Arbeitslasten aus.
| Maschinenfamilie | Empfohlen für Arbeitslasttypen | Anleitung zur Nachhaltigkeit |
|---|---|---|
| Instanzen für allgemeine Zwecke: Diese Instanzen bieten ein ausgewogenes Verhältnis von CPU zu Arbeitsspeicher. | Webserver, Mikrodienste, kleine bis mittelgroße Datenbanken und Entwicklungsumgebungen. | Die E2-Serie ist aufgrund der dynamischen Ressourcenzuweisung sehr kosteneffizient und energieeffizient. Die Serien C4A, N4A und Tau T2A verwenden ARM-basierte Prozessoren, die pro Leistungseinheit für umfangreiche Arbeitslasten oft energieeffizienter sind. |
| Computing-optimierte Instanzen: Diese Instanzen bieten ein hohes Verhältnis von vCPU zu Arbeitsspeicher und eine hohe Leistung pro Kern. | Hochleistungs-Computing (HPC), Batchverarbeitung, Gameserver und CPU-basierte Datenanalyse. | Mit einer computing-optimierten Instanz können Sie CPU-intensive Aufgaben schneller erledigen, was die Gesamtrechenzeit und den Energieverbrauch des Jobs reduziert. |
| Speicheroptimierte Instanzen: Diese Instanzen sind für Arbeitslasten konzipiert, die viel Arbeitsspeicher erfordern. | Große In-Memory-Datenbanken und Data Warehouses wie SAP HANA oder In-Memory-Analysen. | Speicheroptimierte Instanzen ermöglichen die Konsolidierung speicherintensiver Arbeitslasten auf weniger physischen Knoten. Diese Konsolidierung reduziert den Gesamtenergiebedarf im Vergleich zur Verwendung mehrerer kleinerer Instanzen. Hochleistungsspeicher reduziert die Latenz beim Datenzugriff, was die Gesamtzeit, die die CPU in einem aktiven Zustand verbringt, verringern kann. |
| Speicheroptimierte Instanzen: Diese Instanzen bieten lokalen SSD-Speicher mit hohem Durchsatz und geringer Latenz. | Data Warehousing, Loganalyse sowie SQL-, NoSQL- und Vektordatenbanken. | Speicheroptimierte Instanzen verarbeiten große Datasets lokal. Dadurch wird die Energie eingespart, die für den ausgehenden standortübergreifenden Netzwerk-Traffic verwendet wird. Wenn Sie lokalen Speicher für Aufgaben mit hohen IOPS verwenden, vermeiden Sie die Überdimensionierung mehrerer Standardinstanzen. |
| Beschleunigungsoptimierte Instanzen: Diese Instanzen sind für GPU- und TPU-beschleunigte Arbeitslasten wie KI, ML und HPC konzipiert. | Training und Inferenz von ML-Modellen sowie wissenschaftliche Simulationen. | TPUs sind für eine optimale Energieeffizienz ausgelegt. Sie liefern 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. Eine GPU-beschleunigte Instanz hat zwar einen höheren nominalen Stromverbrauch, die Aufgabe wird jedoch viel schneller abgeschlossen. |
Upgrade auf die neuesten Maschinentypen
Die Verwendung der neuesten Maschinentypen kann die Nachhaltigkeit verbessern. Wenn Maschinentypen aktualisiert werden, sind sie oft energieeffizienter und bieten eine höhere Leistung pro Watt. VMs, die die neuesten Maschinentypen verwenden, können die gleiche Menge an Arbeit mit geringerem Stromverbrauch erledigen.
CPUs, GPUs und TPUs profitieren häufig von technischen Fortschritten in der Chiparchitektur, wie z. B.:
- Spezialisierte Kerne: Fortschritte bei Prozessoren umfassen häufig spezialisierte Kerne oder Anweisungen für gängige Arbeitslasten. CPUs können beispielsweise dedizierte Kerne für Vektorvorgänge oder integrierte KI-Beschleuniger haben. Wenn diese Aufgaben von der Haupt-CPU ausgelagert werden, werden sie effizienter ausgeführt und verbrauchen weniger Energie.
- Verbesserte Energieverwaltung: Fortschritte bei Chiparchitekturen umfassen häufig komplexere Funktionen zur Energieverwaltung, z. B. die dynamische Anpassung von Spannung und Frequenz basierend auf der Arbeitslast. Dank dieser Funktionen zur Energieverwaltung können die Chips mit maximaler Effizienz arbeiten und in den Ruhemodus wechseln, wenn sie inaktiv sind. Dadurch wird der Energieverbrauch minimiert.
Die technischen Verbesserungen der Chiparchitektur bieten die folgenden direkten Vorteile für Nachhaltigkeit und Kosten:
- Höhere Leistung pro Watt: Dies ist ein wichtiger Messwert für Nachhaltigkeit. Beispielsweise bieten die C4-VMs 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 Leistungsfunktionen können Sie Aufgaben schneller erledigen oder weniger Instanzen für dieselbe Last verwenden.
- Geringerer Gesamtenergieverbrauch: Mit verbesserten Prozessoren werden Rechenressourcen für eine bestimmte Aufgabe kürzer genutzt, was den Gesamtenergieverbrauch und die CO₂-Bilanz reduziert. Die CO₂-Belastung ist besonders hoch bei kurzlebigen, rechenintensiven Arbeitslasten wie Batchjobs und ML-Modelltraining.
- Optimale Ressourcennutzung: Die neuesten Maschinentypen sind oft besser für moderne Software geeignet und mit erweiterten Funktionen von Cloud-Plattformen kompatibler. Diese Maschinentypen ermöglichen in der Regel eine bessere Ressourcennutzung, was die Notwendigkeit einer Überdimensionierung verringert und dazu beiträgt, dass jedes Watt Strom produktiv genutzt wird.
Containerisierte Anwendungen 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.
Die Funktion „Skalierung auf null“ von Cloud Run nutzen
Cloud Run bietet eine verwaltete serverlose Umgebung, in der Instanzen automatisch auf null skaliert werden, wenn kein eingehender Traffic für einen Dienst vorhanden ist oder wenn ein Job abgeschlossen ist. Autoscaling hilft, 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 unregelmäßige oder ereignisgesteuerte Arbeitslasten. Für KI-Arbeitslasten können Sie GPUs mit Cloud Run verwenden. So können Sie GPUs nur dann nutzen und bezahlen, wenn sie verwendet werden.
Ressourcenoptimierung mit GKE automatisieren
Die GKE ist eine Plattform zur Containerorchestrierung, die dafür sorgt, dass Anwendungen nur die Ressourcen verwenden, die sie benötigen. GKE bietet die folgenden Techniken, mit denen Sie die Ressourcenoptimierung automatisieren können:
- Bin-Packing: GKE Autopilot packt mehrere Container intelligent auf die verfügbaren Knoten. Durch Bin-Packing wird die Auslastung der einzelnen Knoten maximiert und die Anzahl der inaktiven oder nicht optimal genutzten Knoten reduziert, was zur Senkung des Energieverbrauchs beiträgt.
- Horizontales Pod-Autoscaling (HPA): Beim HPA wird die Anzahl der Containerreplikate (Pods) automatisch anhand vordefinierter Messwerte wie CPU-Auslastung oder benutzerdefinierter anwendungsspezifischer Messwerte angepasst. Wenn Ihre Anwendung beispielsweise einen Traffic-Anstieg verzeichnet, fügt GKE Pods hinzu, um die Nachfrage zu decken. Wenn der Traffic nachlässt, reduziert GKE die Anzahl der Pods. Durch diese dynamische Skalierung wird eine Überdimensionierung von Ressourcen verhindert, sodass Sie nicht für unnötige Rechenkapazität bezahlen oder diese hochfahren müssen.
- Vertikales 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 er benötigt. So wird eine Überdimensionierung von Ressourcen verhindert.
- Mehrdimensionales 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. Diese Technik trägt dazu bei, dass der Energiebedarf für die erforderliche Leistung so gering wie möglich ist.
- Topology-Aware Scheduling (TAS): TAS verbessert die Netzwerkeffizienz für KI- und ML-Arbeitslasten in der GKE, indem Pods basierend auf der physischen Struktur der Rechenzentrumsinfrastruktur platziert werden. TAS platziert Arbeitslasten strategisch, um Netzwerk-Hops zu minimieren. Diese Colocation 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 großer KI- und ML-Arbeitslasten.
CO₂-bewusste Planung konfigurieren
Bei Google verlagern wir unsere Arbeitslasten kontinuierlich an Standorte und zu Zeiten, an denen der sauberste Strom verfügbar ist. Außerdem verwenden wir ältere Geräte für alternative Anwendungsfälle wieder (Harvesting). Mit dieser CO₂-bewussten Planungsstrategie können Sie dafür sorgen, dass Ihre containerisierten Arbeitslasten saubere Energie nutzen.
Um eine CO₂-bewusste Planung zu implementieren, benötigen Sie Informationen zum Energiemix, der die Rechenzentren in einer Region in Echtzeit versorgt. Sie können diese Informationen in einem maschinenlesbaren Format aus dem GitHub-Repository CO₂-freie Energie für Google Cloud -Regionen oder aus einem öffentlichen BigQuery-Dataset abrufen. Die stündlichen Daten zum Strommix 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 einer CO₂-bewussten Planung empfehlen wir die folgenden Techniken:
- Geografische Verlagerung: Planen Sie Ihre Arbeitslasten so, dass sie in Regionen ausgeführt werden, die einen höheren Anteil an erneuerbaren Energiequellen nutzen. So können Sie sauberere Stromnetze nutzen.
- Zeitliche Verschiebung: Konfigurieren Sie nicht kritische, flexible Arbeitslasten wie die Batchverarbeitung so, dass sie außerhalb der Spitzenzeiten oder dann ausgeführt werden, wenn erneuerbare Energien am meisten verfügbar sind. Dieser Ansatz wird als zeitliche Verschiebung bezeichnet und trägt dazu bei, die CO₂-Bilanz insgesamt zu verbessern, da Energie aus regenerativen Quellen genutzt wird, wenn sie verfügbar ist.
Energieeffiziente Notfallwiederherstellung planen
Die Vorbereitung auf die Notfallwiederherstellung (Disaster Recovery, DR) umfasst häufig die Vorabbereitstellung redundanter Ressourcen in einer sekundären Region. Inaktive oder nicht ausgelastete Ressourcen können jedoch zu einer erheblichen Energieverschwendung führen. Wählen Sie DR-Strategien aus, die die Ressourcennutzung maximieren und die CO₂-Belastung minimieren, ohne Ihre Recovery Time Objectives (RTO) zu beeinträchtigen.
Für Kaltstarteffizienz optimieren
Verwenden Sie die folgenden Ansätze, um aktive Ressourcen in Ihrer sekundären (DR-)Region zu minimieren oder zu eliminieren:
- Cold DR priorisieren: Ressourcen in der DR-Region deaktiviert oder auf Skalierung auf null lassen. So lässt sich die CO₂-Bilanz inaktiver Rechenressourcen eliminieren.
- 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 keine Energie verbraucht, bis der Traffic an die DR-Region weitergeleitet wird.
- Wiederherstellung mit Infrastructure as Code (IaC) automatisieren: Anstatt Ressourcen am DR-Standort am Laufen zu halten (warm), können Sie ein IaC-Tool wie Terraform verwenden, um Umgebungen nur bei Bedarf schnell bereitzustellen.
Redundanz und Auslastung ausgleichen
Ressourcenredundanz ist ein Hauptgrund für Energieverschwendung. So reduzieren Sie die Redundanz:
- Aktiv/Aktiv-Konfigurationen gegenüber Aktiv/Passiv-Konfigurationen bevorzugen: In 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 Hochverfügbarkeit oder Notfallwiederherstellung zu erfüllen. Jedes zusätzliche Replikat erhöht die Energiekosten für nichtflüchtigen Speicher und ausgehenden Netzwerktraffic.