Vorteile der Elastizität nutzen

Last reviewed 2024-12-06 UTC

Dieses Prinzip im Bereich „Leistungsoptimierung“ des Google Cloud Well-Architected Framework enthält Empfehlungen zur Einbeziehung von Elastizität, d. h. der Möglichkeit, Ressourcen dynamisch an Änderungen der Arbeitslastanforderungen anzupassen.

Durch die Elastizität können verschiedene Komponenten eines Systems unabhängig voneinander skaliert werden. Durch diese gezielte Skalierung lassen sich Leistung und Kosteneffizienz verbessern, da Ressourcen genau dort zugewiesen werden, wo sie benötigt werden. So wird eine Über- oder Unterversorgung mit Ressourcen vermieden.

Übersicht über die Grundsätze

Die Leistungsanforderungen eines Systems wirken sich direkt darauf aus, wann und wie das System vertikal oder horizontal skaliert wird. Sie müssen die Kapazität des Systems bewerten und die Last ermitteln, die das System in der Baseline bewältigen soll. Anschließend müssen Sie festlegen, wie das System auf eine Erhöhung oder Verringerung der Last reagieren soll.

Wenn die Last zunimmt, muss das System horizontal skaliert, vertikal hochskaliert oder beides werden. Fügen Sie für die horizontale Skalierung Replikatknoten hinzu, damit das System über genügend Gesamtkapazität verfügt, um die erhöhte Nachfrage zu erfüllen. Beim vertikalen Skalieren werden die vorhandenen Komponenten der Anwendung durch Komponenten mit mehr Kapazität, mehr Arbeitsspeicher und mehr Speicherplatz ersetzt.

Wenn die Last abnimmt, muss das System herunterskaliert werden (horizontal, vertikal oder beides).

Definieren Sie die Umstände, unter denen das System skaliert wird. Planen Sie, Systeme für bekannte Zeiträume mit hohem Traffic manuell zu skalieren. Verwenden Sie Tools wie Autoscaling, die auf eine Zunahme oder Abnahme der Last reagieren.

Empfehlungen

Wenn Sie die Elastizität nutzen möchten, sollten Sie die Empfehlungen in den folgenden Abschnitten berücksichtigen.

Spitzenlastzeiten planen

Sie müssen einen effizienten Skalierungspfad für bekannte Ereignisse planen, z. B. für erwartete Zeiträume mit erhöhter Kundennachfrage.

Sie sollten Ihr System vor bekannten Phasen mit hohem Traffic skalieren. Wenn Sie beispielsweise ein Einzelhandelsunternehmen sind, erwarten Sie, dass die Nachfrage während saisonaler Schlussverkäufe steigt. Wir empfehlen Ihnen, Ihre Systeme vor diesen Verkäufen manuell zu skalieren, damit Ihr System die erhöhte Last sofort bewältigen oder vorhandene Limits sofort anpassen kann. Andernfalls kann es mehrere Minuten dauern, bis das System Ressourcen als Reaktion auf Echtzeitänderungen hinzufügt. Die Kapazität Ihrer Anwendung steigt möglicherweise nicht schnell genug, sodass es bei einigen Nutzern zu Verzögerungen kommt.

Bei unbekannten oder unerwarteten Ereignissen wie einem plötzlichen Anstieg der Nachfrage oder des Traffics können Sie Autoscaling-Funktionen verwenden, um eine elastische Skalierung basierend auf Messwerten auszulösen. Diese Messwerte können die CPU-Auslastung, die Bereitstellungskapazität des Load Balancers, die Latenz und sogar benutzerdefinierte Messwerte umfassen, die Sie in Cloud Monitoring definieren.

Angenommen, Sie haben eine Anwendung, die in einer Compute Engine-MIG (verwaltete Instanzgruppe) ausgeführt wird. Für diese Anwendung gilt die Anforderung, dass jede Instanz optimal funktioniert, bis die durchschnittliche CPU-Auslastung 75 % erreicht. In diesem Beispiel können Sie eine Autoscaling-Richtlinie definieren, die weitere Instanzen erstellt, wenn die CPU-Auslastung den Schwellenwert erreicht. Diese neu erstellten Instanzen helfen, die Last zu bewältigen. So bleibt die durchschnittliche CPU-Auslastung auf einem optimalen Niveau, bis die maximale Anzahl von Instanzen erreicht ist, die Sie für die MIG konfiguriert haben. Wenn die Nachfrage sinkt, werden durch die Autoscaling-Richtlinie die nicht mehr benötigten Instanzen entfernt.

Reservieren Sie Ressourcen-Slots in BigQuery oder passen Sie die Grenzwerte für Autoscaling-Konfigurationen in Spanner mit dem verwalteten Autoscaler an.

Vorausschauende Skalierung verwenden

Wenn Ihre Systemkomponenten Compute Engine umfassen, müssen Sie prüfen, ob vorausschauendes Autoscaling für Ihre Arbeitslast geeignet ist. Beim vorausschauenden Autoscaling wird die zukünftige Last anhand der Verlaufstrends Ihrer Messwerte prognostiziert, z. B. der CPU-Auslastung. Prognosen werden alle paar Minuten neu berechnet, sodass das Autoscaling seine Prognose schnell auf die letzten Änderungen der Überlastung anpasst. Ohne vorausschauendes Autoscaling kann das Autoscaling eine Gruppe nur in direkter Reaktion auf beobachtete Laständerungen in Echtzeit skalieren. Das vorausschauende Autoscaling arbeitet mit Echtzeitdaten und Verlaufsdaten, um sowohl die aktuelle als auch die prognostizierte Last zu berücksichtigen.

Serverlose Architekturen implementieren

Erwägen Sie die Implementierung einer serverlosen Architektur mit serverlosen Diensten, die von Natur aus elastisch sind, z. B. die folgenden:

Im Gegensatz zum Autoscaling in anderen Diensten, für das Regeln abgestimmt werden müssen (z. B. Compute Engine), erfolgt das serverlose Autoscaling sofort und kann auf null Ressourcen herunterskaliert werden.

Autopilot-Modus für Kubernetes verwenden

Für komplexe Anwendungen, die mehr Kontrolle über Kubernetes erfordern, sollten Sie den Autopilot-Modus in Google Kubernetes Engine (GKE) in Betracht ziehen. Der Autopilot-Modus bietet standardmäßig Automatisierung und Skalierbarkeit. GKE skaliert Knoten und Ressourcen automatisch basierend auf dem Traffic. GKE verwaltet Knoten, erstellt neue Knoten für Ihre Anwendungen und konfiguriert automatische Upgrades und Reparaturen.