Google Cloud-Architektur-Framework: Leistungsoptimierung

In diesem Dokument des Google Cloud-Architektur-Frameworks werden Best Practices zur Optimierung der Leistung Ihrer Arbeitslasten in Google Cloud beschrieben.

Strategien

Leistungsanforderungen bewerten Priorisieren Sie Ihre verschiedenen Anwendungen und bestimmen Sie die Mindestleistung, die Sie von ihnen erwarten.

Skalierbare Designmuster verwenden Verbessern Sie die Skalierbarkeit und Leistung mit Autoscaling, Computing-Auswahlmöglichkeiten und Speicherkonfigurationen.

Best Practices

  • Autoscaling und Datenverarbeitung verwenden
  • GPUs und TPUs verwenden, um die Leistung zu steigern
  • Apps identifizieren, die Sie optimieren möchten

Autoscaling und Datenverarbeitung verwenden

Verwenden Sie Autoscaling, damit die Dienste mit zunehmender oder abnehmender Last Ressourcen hinzufügen oder freigeben.

Compute Engine-Autoscaling

Mit verwalteten Instanzgruppen (Managed Instance Groups, MIGs) können Sie zustandslose Anwendungen auf mehreren identischen VMs skalieren. Auf diese Weise wird eine Gruppe von Compute Engine-Ressourcen auf Basis einer Instanzvorlage gestartet. Sie können eine Autoscaling-Richtlinie konfigurieren, um Ihre Gruppe basierend auf der CPU-Auslastung, der Load-Balancing-Kapazität, den Cloud Monitoring-Messwerten und für zonale MIGs anhand einer auf Warteschlangen basierenden Arbeitslast wie Pub/Sub zu skalieren.

Google Kubernetes Engine-Autoscaling

Sie können die Cluster-Autoscaling-Funktion in Google Kubernetes Engine (GKE) verwenden, um den Knotenpool Ihres Clusters basierend auf den unterschiedlichen Anforderungen Ihrer Arbeitslasten zu verwalten. Cluster Autoscaler vergrößert bzw. verkleinert den Knotenpool automatisch entsprechend den Ressourcenanforderungen (statt der tatsächlichen Ressourcennutzung) der Pods, die auf den Knoten des Knotenpools ausgeführt werden.

Serverloses Autoscaling

Serverlose Computing-Optionen umfassen Cloud Run, App Engine und Cloud Functions, die jeweils Autoscaling-Funktionen bieten. Verwenden Sie diese serverlosen Optionen, um Ihre Mikrodienste oder -funktionen zu skalieren.

datenverarbeitung

Dataproc und Dataflow bieten Autoscaling-Optionen zum Skalieren Ihrer Datenpipelines und Datenverarbeitung. Verwenden Sie diese Optionen, damit Ihre Pipelines je nach Verarbeitungslast auf weitere Computing-Ressourcen zugreifen können.

Fragen zum Design

  • Welche Ihrer Anwendungen haben schwankende Anforderungen hinsichtlich Nutzeraktivität oder Verarbeitung?
  • Welche Datenverarbeitungspipelines haben schwankende Datenanforderungen?

Empfehlungen

  • Verwenden Sie Google Cloud-Load-Balancer, um einen globalen Endpunkt bereitzustellen.
  • Verwenden Sie verwaltete Instanzgruppen mit Compute Engine zur automatischen Skalierung.
  • Verwenden Sie Cluster-Autoscaling in GKE, um den Cluster automatisch zu skalieren.
  • Verwenden Sie App Engine, um Ihre PaaS-Anwendung (Platform as a Service) automatisch zu skalieren.
  • Verwenden Sie Cloud Run oder Cloud Functions, um die Funktion oder den Mikrodienst automatisch zu skalieren.

Vorteile

Ressourcen

GPUs und TPUs verwenden, um die Leistung zu steigern

Google Cloud bietet Optionen zur Beschleunigung der Leistung Ihrer Arbeitslasten. Mit diesen speziellen Hardwareplattformen können Sie die Leistung Ihrer Anwendung und Datenverarbeitung steigern.

Grafikprozessor (GPU)

Compute Engine bietet GPUs, die Sie Ihren VM-Instanzen hinzufügen können. Sie können diese GPUs nutzen, um bestimmte Arbeitslasten wie maschinelles Lernen und Datenverarbeitung auf Ihren Instanzen zu beschleunigen.

Tensor Processing Unit (TPU)

Eine TPU wurde von Google speziell als Matrixprozessor für ML-Arbeitslasten entwickelt. TPUs eignen sich am besten für umfangreiche Matrixvorgänge mit einer großen Pipeline und deutlich weniger Speicherzugriff.

Ressourcen

Apps identifizieren, die Sie optimieren möchten

Das Application Performance Management (APM) enthält Tools, mit denen Sie Latenz und Kosten reduzieren und so effizientere Anwendungen ausführen können. Mit Cloud Trace, Cloud Debugger und Cloud Profiler erhalten Sie Einblicke in die Funktionsweise Ihres Codes und Ihrer Dienste und können bei Bedarf Fehler beheben.

Instrumentierung

Die Latenz spielt bei der Bestimmung der Nutzererfahrung eine große Rolle. Wenn Ihr Anwendungs-Back-End komplexer wird oder Sie eine Mikrodienstarchitektur verwenden, ist es schwierig, Latenzen bei der Kommunikation zwischen Diensten oder Engpässe zu erkennen. Mit den Tools Cloud Trace und OpenTelemetrics können Sie die Sammlung von Latenzdaten aus Bereitstellungen skalieren und schnell analysieren.

Debugging

Mit Cloud Debugger können Sie das Verhalten Ihres Produktionscodes in Echtzeit prüfen und analysieren, ohne die Leistung zu beeinträchtigen oder zu verlangsamen.

Profilerstellung

Eine schlechte Codierung erhöht die Latenz und die Kosten von Anwendungen und Webdiensten. Mit Cloud Profiler können Sie die Leistung bestimmen und verbessern, indem Sie kontinuierlich die Leistung von CPU- oder speicherintensiven Funktionen analysieren, die in einer Anwendung ausgeführt werden.

Empfehlungen

  • Verwenden Sie Cloud Trace zur Instrumentierung Ihrer Anwendungen.
  • Verwenden Sie Cloud Debugger, um Debugging-Funktionen für die Produktion in Echtzeit bereitzustellen.
  • Mit Cloud Profiler können Sie die Betriebsleistung Ihrer Anwendungen analysieren.

Nächste Schritte

Weitere Kategorien des Google Cloud-Architektur-Frameworks entdecken.