Optimisation des performances et des coûts

Cette section du framework d'architecture explique comment équilibrer l'optimisation des coûts et des performances dans vos déploiements.

Le framework comprend les articles suivants :

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.

Identifier et mettre en œuvre des approches permettant de réaliser des économies. Évaluez le coût de chaque service en cours d'exécution en fonction de sa priorité afin d'optimiser la disponibilité et le coût des services.

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
  • Analyser les coûts et les optimiser

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 de faire évoluer vos applications sans état sur plusieurs VM identiques afin de lancer un groupe de ressources Compute Engine en fonction d'un seul modèle basé sur des règles. Les règles d'autoscaling incluent le scaling en fonction de l'utilisation du processeur, de la capacité d'équilibrage de charge, des métriques de Cloud Monitoring ou, 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.

Analyser les coûts et les optimiser

La première étape de l'optimisation des coûts consiste à comprendre l'utilisation et les coûts actuels. Google Cloud propose une fonctionnalité d'exportation de la facturation vers BigQuery qui permet d'analyser en détail vos données de facturation. Pour effectuer une analyse visuelle, vous pouvez connecter BigQuery à Google Data Studio ou utiliser d'autres outils de veille stratégique tiers tels que Tableau, Qlik ou Looker. La fonctionnalité de notifications automatiques vous permet de recevoir des notifications lorsque votre budget dépasse un certain seuil. Elle s'utilise également avec des fournisseurs de solutions tiers et des applications personnalisées.

Des remises automatiques proportionnelles à une utilisation soutenue sont appliquées lorsque vous exécutez des ressources Compute Engine spécifiques pendant une grande partie du mois de facturation. Ces remises sont accordées lors d'une utilisation prolongée de certains types de machines virtuelles (VM) Compute Engine.

Les remises sur engagement d'utilisation sont idéales pour les charges de travail ayant des besoins en ressources prévisibles. Lorsque vous souscrivez un contrat d'engagement d'utilisation, vous achetez une certaine quantité de processeurs virtuels, de mémoire, de GPU et de disques SSD locaux à prix réduits en vous engageant pour une durée d'utilisation d'un an ou de trois ans.

Une VM préemptive est une instance que vous pouvez créer et exécuter à un prix nettement inférieur à celui des instances normales. Cependant, Compute Engine peut arrêter (préempter) ces instances s'il a besoin d'accéder à ces ressources pour d'autres tâches. Les instances préemptives représentent la capacité excédentaire de Compute Engine. Leur disponibilité varie donc en fonction des usages.

Une fois que vous avez déterminé les composants qui constituent votre coût, vous pouvez décider comment l'optimiser. Trouver les ressources peu utilisées ou qui ne sont pas nécessaires est un excellent point de départ. Compute Engine fournit des recommandations de dimensionnement pour les VM, qui peuvent vous aider à dimensionner vos ressources. Une fois les modifications mises en œuvre, vous pouvez exporter les données de facturation ultérieures et les comparer afin de voir les différences de coût.

Vous souhaitez prévoir vos coûts d'utilisation ? Utilisez le simulateur de coût Google Cloud.

Recommandations

  • Utiliser des libellés uniques sur l'ensemble de votre organisation pour effectuer le suivi de l'utilisation.
  • Utiliser la fonctionnalité Exporter les données de facturation vers BigQuery.
  • Utiliser Data Studio ou d'autres outils de visualisation pour consulter des rapports sur les données de facturation.
  • Mettre en œuvre les recommandations de dimensionnement suggérées par Compute Engine.
  • Déterminer la consommation 24h/24 et 7j/7 sur Compute Engine, ainsi que votre utilisation prévue pour pouvoir souscrire un contrat de remise sur engagement d'utilisation.
  • Utiliser la gestion du cycle de vie des objets Cloud Storage pour gérer les coûts de stockage.

Ressources