Framework d'architecture Google Cloud : optimisation des performances

Ce document du framework d'architecture Google Cloud décrit les bonnes pratiques à adopter pour optimiser les performances de vos charges de travail dans Google Cloud.

Stratégies

Évaluer les exigences en termes de performances. Déterminez la priorité de vos différentes applications et les performances minimales requises.

Utiliser des modèles de conception évolutifs. Améliorez l'évolutivité et les performances grâce à l'autoscaling, aux options de calcul et aux configurations de l'espace de stockage.

Bonnes pratiques

  • Utiliser l'autoscaling et le traitement des données
  • Utiliser des GPU et des TPU pour améliorer les performances
  • Identifier les applications à régler

Utiliser l'autoscaling et le traitement des données

Utilisez l'autoscaling de sorte que les services ajoutent ou libèrent des ressources à mesure que la charge augmente ou diminue.

Autoscaling Compute Engine

Les groupes d'instances gérés (MIG) vous permettent d'effectuer le scaling de vos applications sans état sur plusieurs VM identiques afin de lancer un groupe de ressources Compute Engine en fonction d'un modèle d'instance. Vous pouvez configurer une règle d'autoscaling pour faire évoluer votre groupe en fonction de l'utilisation du processeur, de la capacité d'équilibrage de charge, des métriques Cloud Monitoring, des planifications et, pour les MIG zonaux, en fonction d'une charge de travail basée sur une file d'attente comme Pub/Sub.

Autoscaling Google Kubernetes Engine

L'autoscaler de cluster de Google Kubernetes Engine (GKE) vous permet de gérer le pool de nœuds de votre cluster en fonction des demandes variables de vos charges de travail. Cette fonctionnalité augmente ou diminue automatiquement la taille d'un pool de nœuds en fonction des demandes en ressources (plutôt que de leur utilisation réelle) des pods exécutés sur les nœuds de ce pool.

Autoscaling sans serveur

Cloud Run, App Engine et Cloud Functions sont des options de calcul sans serveur, offrant chacune des fonctionnalités d'autoscaling. Elles vous permettent de faire évoluer vos microservices ou vos fonctions.

Traitement des données

Dataproc et Dataflow offrent des options d'autoscaling pour faire évoluer vos pipelines et processeurs de données. Ces options permettent à vos pipelines d'accéder à davantage de ressources de calcul en fonction de la charge de traitement.

Questions concernant la conception

  • Parmi vos applications, lesquelles présentent des exigences variables en termes de charge utilisateur ou de traitement ?
  • Parmi vos pipelines de traitement de données, lesquels présentent des exigences variables en termes de données ?

Recommandations

  • Utiliser les équilibreurs de charge Google Cloud pour fournir un point de terminaison mondial.
  • Utiliser des groupes d'instances gérés avec Compute Engine pour effectuer un scaling automatique
  • Utiliser l'autoscaler de cluster dans GKE pour effectuer le scaling automatique d'un cluster
  • Utiliser App Engine pour effectuer l'autoscaling de votre application Platform-as-a-Service (PaaS)
  • Utiliser Cloud Run ou Cloud Functions pour effectuer l'autoscaling de votre fonction ou microservice

Principaux services

Ressources

Utiliser des GPU et des TPU pour améliorer les performances

Google Cloud propose des options permettant d'accélérer les performances de vos charges de travail. Ces plates-formes matérielles spécialisées améliorent les performances de vos applications et de vos données.

Processeurs graphiques (GPU)

Compute Engine fournit des GPU que vous pouvez ajouter à vos instances de machine virtuelle. Vous pouvez utiliser ces GPU pour accélérer des charges de travail spécifiques sur vos instances, telles que le machine learning et le traitement des données.

Tensor Processing Unit (TPU)

Un TPU est un processeur matriciel spécialement conçu par Google pour les charges de travail de machine learning. Les TPU conviennent particulièrement aux opérations matricielles massives avec un pipeline de grande taille et un accès à la mémoire considérablement réduit.

Ressources

Identifier les applications à régler

La gestion des performances des applications (Application Performance Management, APM) inclut des outils permettant de réduire la latence et les coûts, afin de pouvoir exécuter des applications plus efficaces. Grâce à Cloud Trace, Cloud Debugger et Cloud Profiler, vous obtenez des insights sur le fonctionnement de votre code et de vos services, qui vous permettent de résoudre les problèmes, le cas échéant.

Instrumentation

La latence joue un rôle important lorsqu'il s'agit de déterminer l'expérience utilisateur. Lorsque votre backend d'application gagne en complexité ou que vous commencez à adopter une architecture de microservices, il est difficile d'identifier les latences de communication inter-services ou les goulots d'étranglement. Les outils Cloud Trace et OpenTelemetry recueillent les données de latence de vos déploiements et les analysent rapidement.

Débogage

Cloud Debugger vous permet d'inspecter et d'analyser le comportement de votre code de production en temps réel sans affecter ses performances ni le ralentir.

Profilage

Un code peu performant augmente la latence et le coût des applications et des services Web. Cloud Profiler vous permet d'identifier et de gérer les performances. Il analyse en permanence les performances des fonctions à haute capacité de processeur ou de mémoire exécutées dans une application.

Recommandations

  • Utiliser Cloud Trace pour instrumenter vos applications
  • Utiliser Cloud Debugger pour fournir des fonctionnalités de débogage en temps réel en production.
  • Utiliser Cloud Profiler pour analyser les performances opérationnelles de vos applications.

Étape suivante

Explorez les autres catégories du framework d'architecture Google Cloud