Migration vers Google Cloud : optimiser votre environnement

Ce document vous aide à planifier et à concevoir la phase d'optimisation de votre migration vers Google Cloud. Après avoir déployé vos charges de travail dans Google Cloud, vous pouvez commencer à optimiser votre environnement.

Ce document fait partie d'une série :

Le diagramme suivant illustre le parcours de votre migration.

Chemin de migration en quatre phases.

Dans la phase d'optimisation, vous affinez votre environnement afin de le rendre plus efficace que votre déploiement initial.

Ce document est utile si vous envisagez d'optimiser un environnement existant après la migration vers Google Cloud, ou si vous souhaitez évaluer une optimisation potentielle afin de découvrir en quoi elle pourrait consister.

La structure de la phase d'optimisation suit le cadre de migration décrit dans cette série : évaluer, planifier, déployer et optimiser. Ce cadre polyvalent vous permet de planifier l'intégralité de votre migration et de distinguer les différentes actions au sein de chaque phase. Lorsque vous avez terminé la dernière étape de la phase d'optimisation, vous pouvez recommencer cette phase afin d'identifier de nouvelles cibles à optimiser. La phase d'optimisation est dénommée boucle d'optimisation. Une exécution de la boucle est dénommée itération d'optimisation.

L'optimisation est une tâche permanente et continue. Vous optimisez constamment votre environnement à mesure qu'il évolue. Pour éviter des actions incontrôlées et redondantes, vous pouvez définir des objectifs d'optimisation mesurables et vous arrêter une fois ces objectifs atteints. Rien ne vous empêche ensuite de définir de nouveaux objectifs plus ambitieux, en gardant en tête que l'optimisation a un coût en termes de ressources, de temps, d'efforts et de compétences.

Le schéma suivant illustre la boucle d'optimisation.

Arbre de décision pour l'optimisation. Pour obtenir une image agrandie de ce diagramme, consultez la section Arbre de décision pour l'optimisation.

Dans ce document, vous effectuez les étapes reproductibles suivantes de la boucle d'optimisation :

  1. Évaluer votre environnement, vos équipes et la boucle d'optimisation que vous suivez
  2. Définir les exigences et les objectifs d'optimisation
  3. Optimiser votre environnement et former vos équipes
  4. Ajuster la boucle d'optimisation

Ce document traite de certains principes et concepts de l'ingénierie en fiabilité des sites (SRE, Site Reliability Engineering). Google a développé la discipline SRE pour gérer efficacement et de manière fiable une infrastructure mondiale desservant des milliards d'utilisateurs. Appliquer la SRE dans votre organisation peut s'avérer difficile si vous devez modifier de nombreux processus d'entreprise et de collaboration. Il peut être plus simple d'appliquer un sous-ensemble de la SRE qui soit le plus adapté à votre organisation.

Évaluer votre environnement, vos équipes et votre boucle d'optimisation

Avant de commencer une tâche d'optimisation, vous devez évaluer votre environnement. Vous devez également évaluer les compétences de vos équipes, car l'optimisation de votre environnement peut nécessiter des compétences dont elles pourraient manquer. Enfin, vous devez évaluer la boucle d'optimisation. La boucle est une ressource qu'il est possible d'optimiser comme n'importe quelle autre ressource.

Évaluer votre environnement

Vous avez besoin d'une connaissance approfondie de votre environnement. Pour une optimisation réussie, vous devez comprendre le fonctionnement de votre environnement et identifier les points à améliorer. Cette évaluation établit une référence, qui va vous permettre d'effectuer des comparaisons avec la phase d'optimisation et les prochaines itérations d'optimisation.

La section Migration vers Google Cloud : évaluer et découvrir vos charges de travail contient des conseils détaillés sur l'évaluation de vos charges de travail et de vos environnements. Si vous avez récemment effectué une migration vers Google Cloud, vous disposez déjà d'informations substantielles sur la configuration, la gestion et la maintenance de votre environnement. Sinon, référez-vous à ces conseils pour évaluer votre environnement.

Évaluer vos équipes

Une fois que vous avez bien cerné votre environnement, évaluez les compétences de vos équipes. Ceci suppose de d'abord répertorier toutes les compétences, le niveau d'expertise dans chacune des compétences et les membres de l'équipe les mieux avertis dans ces domaines. Appuyez-vous sur cette évaluation dans la phase suivante pour découvrir les compétences manquantes dont vous avez besoin pour atteindre vos objectifs d'optimisation. Par exemple, si vous commencez à utiliser un service géré, vous devez disposer des compétences nécessaires pour provisionner, configurer et interagir avec ce service. Si vous souhaitez ajouter une couche de mise en cache à une application dans votre environnement à l'aide de Memorystore, vous devez disposer d'une expertise en la matière pour utiliser ce service.

Tenez compte du fait que l'optimisation de votre environnement peut avoir un impact sur vos processus d'entreprise et de collaboration. Par exemple, si vous commencez à utiliser un service entièrement géré plutôt qu'un service autogéré, vous pouvez laisser davantage de temps à vos opérateurs pour se libérer des tâches laborieuses.

Évaluer votre boucle d'optimisation

La boucle d'optimisation est une ressource que vous pouvez également optimiser. Utilisez les données recueillies lors de cette évaluation pour obtenir des informations claires sur les performances de vos équipes lors de la dernière itération d'optimisation. Par exemple, si vous souhaitez raccourcir la durée de l'itération, vous avez besoin de données sur la dernière itération effectuée, y compris sa complexité et les objectifs visés. Vous avez également besoin d'informations sur tous les obstacles rencontrés lors de la dernière itération afin de vous assurer qu'une stratégie d'atténuation est en place s'ils se reproduisent.

Si cette boucle d'optimisation est la première itération, il est possible que les données dont vous disposez ne soient pas suffisantes pour établir une référence permettant de comparer les performances. Rédigez un ensemble d'hypothèses sur les performances attendues de vos équipes lors de la première itération. Après la première itération d'optimisation, évaluez la boucle et les performances de vos équipes, puis comparez-les aux hypothèses.

Définir vos exigences et objectifs d'optimisation

Avant de commencer une tâche d'optimisation, rédigez un ensemble d'objectifs clairement mesurables pour l'itération.

Vous allez effectuer les opérations suivantes au cours de cette étape :

  1. Définir vos exigences d'optimisation
  2. Définir des objectifs d'optimisation mesurables en fonction de vos exigences d'optimisation

Définir vos exigences d'optimisation

Vous allez répertorier les conditions requises pour la phase d'optimisation. Une exigence exprime un besoin d'amélioration et ne doit pas nécessairement être mesurable.

En partant d'un ensemble de caractéristiques de qualité associées à vos charges de travail, votre environnement et votre propre boucle d'optimisation, vous pouvez rédiger un questionnaire pour vous aider à définir vos exigences. Le questionnaire couvre les caractéristiques que vous jugez utiles pour votre environnement, vos processus et vos charges de travail.

Il existe de nombreuses sources pour vous aider à définir les caractéristiques de qualité. Par exemple, la norme ISO/IEC 25010 définit les caractéristiques de qualité d'un produit logiciel. Vous pouvez également consulter la checklist d'intégration des entreprises.

Le questionnaire peut ainsi comporter les questions suivantes :

  • Votre infrastructure et ses composants peuvent-ils évoluer verticalement ou horizontalement ?
  • Votre infrastructure permet-elle d'effectuer un rollback sans intervention manuelle ?
  • Disposez-vous déjà d'un système de surveillance qui couvre votre infrastructure et vos charges de travail ?
  • Disposez-vous d'un système de gestion des incidents pour votre infrastructure ?
  • Quels sont les délais et les efforts nécessaires à la mise en œuvre des optimisations planifiées ?
  • Avez-vous pu atteindre tous les objectifs de vos itérations précédentes ?

À partir des réponses au questionnaire, vous rédigez la liste des exigences pour cette itération d'optimisation. Voici à quoi elles pourraient ressembler :

  • Augmenter les performances d'une application
  • Augmenter la disponibilité d'un composant de votre environnement
  • Augmenter la fiabilité d'un composant de votre environnement
  • Réduire les coûts d'exploitation de votre environnement
  • Raccourcir la durée de l'itération d'optimisation pour réduire les risques inhérents
  • Accélérer le développement et réduire les temps de production

Une fois que vous disposez de la liste des points à améliorer, évaluez les exigences. Dans cette évaluation, vous analysez vos exigences d'optimisation, recherchez les conflits et définissez les priorités des exigences répertoriées. Par exemple, augmenter les performances d'une application peut entrer en conflit avec la réduction des coûts d'exploitation.

Définir des objectifs mesurables

Après avoir finalisé la liste des exigences, définissez des objectifs mesurables pour chacune d'entre elles. Un objectif peut contribuer à plusieurs exigences. En cas d'incertitude ou si vous ne pouvez pas définir tous les objectifs nécessaires pour répondre à vos exigences, revenez à la phase d'évaluation de cette itération pour recueillir les informations manquantes, puis affinez vos exigences.

Pour obtenir de l'aide sur la définition de ces objectifs, vous pouvez suivre l'une des disciplines SRE, la définition des indicateurs de niveau de service (SLI, service level indicator) et des objectifs de niveau de service (SLO, service level objective) :

  • Les SLI sont des mesures chiffrées du niveau de service que vous fournissez. Par exemple, la latence moyenne des requêtes, le taux d'erreur ou le débit du système peuvent constituer des SLI stratégiques.
  • Les SLO représentent des valeurs cibles ou des plages de valeurs pour un niveau de service mesuré par un SLI. Par exemple, un SLO peut indiquer que la latence moyenne des requêtes est inférieure à 100 millisecondes.

Après avoir défini des SLI et des SLO, vous constaterez peut-être que vous ne collectez pas toutes les métriques dont vous avez besoin pour mesurer vos SLI. Cette collecte de métriques est le premier objectif d'optimisation que vous pouvez atteindre. Vous allez définir les objectifs liés à l'extension de votre système de surveillance afin de collecter toutes les métriques dont vous avez besoin pour vos SLI.

Optimiser votre environnement et vos équipes

Après avoir évalué votre environnement, vos équipes et votre boucle d'optimisation, puis défini les exigences et les objectifs de cette itération, vous êtes prêt à effectuer l'optimisation.

Vous allez effectuer les opérations suivantes au cours de cette étape :

  1. Mesurer votre environnement, vos équipes et votre boucle d'optimisation
  2. Analyser les données provenant de ces mesures
  3. Effectuer les activités d'optimisation
  4. Mesurer et analyser à nouveau

Mesurer votre environnement, vos équipes et votre boucle d'optimisation

Vous étendez votre système de surveillance pour recueillir des données sur le comportement de votre environnement, de vos équipes et de la boucle d'optimisation afin d'établir une référence, qui servira de base de comparaison après l'optimisation.

Cette activité s'appuie sur ce que vous avez réalisé lors de la phase d'évaluation. Après avoir défini vos exigences et vos objectifs, vous savez quelles métriques collecter pour que vos mesures soient pertinentes par rapport à vos objectifs d'optimisation. Par exemple, si vous avez défini des SLO et les SLI correspondants pour réduire la latence de réponse pour l'une des charges de travail de votre environnement, vous devez collecter des données pour mesurer cette métrique.

La compréhension de ces métriques couvre également leurs incidences sur vos équipes et la boucle d'optimisation. Vous pouvez étendre votre système de surveillance pour collecter des données afin de mesurer les métriques pertinentes pour vos équipes et la boucle d'optimisation. Par exemple, si vous disposez de SLO et SLI pour réduire la durée de l'itération d'optimisation, vous devez collecter des données pour mesurer cette métrique.

Lorsque vous concevez les métriques dont vous avez besoin pour étendre le système de surveillance, tenez compte des incidences de la collecte de données sur les performances de votre environnement et de vos processus. Évaluez les métriques que vous devez mettre en œuvre pour vos mesures, ainsi que leurs intervalles d'échantillonnage, afin de déterminer si elles peuvent affecter les performances. Par exemple, une métrique avec une fréquence d'échantillonnage élevée peut dégrader les performances. Vous devez donc compenser en poussant l'optimisation plus loin.

Dans Google Cloud, vous pouvez utiliser Cloud Monitoring pour mettre en œuvre les métriques dont vous avez besoin pour collecter des données. Vous pouvez également mettre en œuvre des métriques personnalisées et collecter des données à partir de vos environnements cloud hybrides ou sur site. Pour mettre en œuvre directement des métriques personnalisées dans vos charges de travail, vous pouvez utiliser les bibliothèques clientes Google Cloud pour Cloud Monitoring, OpenCensus ou OpenTelemetry. Si vous utilisez Google Kubernetes Engine (GKE), vous pouvez utiliser la mesure de l'utilisation de GKE pour collecter des informations sur l'utilisation des ressources, telles que l'utilisation du processeur, des GPU et des TPU, puis répartir l'utilisation des ressources par espace de noms ou libellé.

Enfin, vous pouvez utiliser la galerie de solutions Google Cloud et les livres blancs Google Cloud comme point de départ pour trouver de nouvelles compétences dont vos équipes pourraient avoir besoin pour optimiser votre environnement.

Analyser des données

Après avoir recueilli vos données, vous allez les analyser et les évaluer afin de comprendre les performances de votre environnement, de vos équipes et de votre boucle d'optimisation par rapport à vos exigences et objectifs d'optimisation.

Vous allez notamment comparer votre environnement aux éléments suivants :

  • SLO
  • Bonnes pratiques du secteur
  • Environnement sans contraintes techniques

Les SLO que vous avez définis en fonction de vos objectifs d'optimisation peuvent vous aider à déterminer si vous répondez à vos attentes. Si vous ne respectez pas vos SLO, vous devez améliorer vos équipes ou la boucle d'optimisation. Par exemple, si vous avez établi un SLO pour que la latence de réponse d'une charge de travail se situe dans un centile donné et que cette charge de travail n'atteint pas cette marque, vous devez optimiser cette partie de la charge de travail.

En outre, vous pouvez comparer votre situation à un ensemble de bonnes pratiques reconnues dans le secteur. Par exemple, la checklist d'intégration des entreprises vous aide à configurer un environnement prêt pour la production pour les charges de travail d'entreprise. Si vous utilisez GKE, vous pouvez également vérifier si votre environnement est prêt pour la production et si vous suivez les bonnes pratiques relatives à l'utilisation des conteneurs.

Après avoir collecté des données, vous pouvez envisager d'optimiser votre environnement pour le rendre plus rentable. Vous pouvez exporter des données Cloud Billing vers BigQuery et créer un tableau de bord Cloud Billing à l'aide de Data Studio pour analyser les données, comprendre le nombre de ressources utilisées et extraire un schéma de dépenses.

Enfin, vous comparez votre environnement à un environnement sans contraintes techniques. Vous pouvez ainsi évaluer l'atteinte de vos objectifs à long terme et l'augmentation éventuelle des contraintes techniques. Par exemple, vous pouvez établir un SLO pour le nombre de ressources surveillées dans votre environnement, par rapport au nombre de ressources provisionnées depuis la dernière itération. Si vous n'avez pas étendu le système de surveillance à ces nouvelles ressources, vos contraintes techniques ont augmenté. Lorsque vous analysez l'évolution de vos contraintes techniques, tenez également compte des facteurs ayant entraîné ces changements. Par exemple, les contraintes techniques peuvent augmenter en raison d'un besoin commercial particulier ou de manière inattendue. En connaissant les facteurs à l'origine d'une variation des contraintes techniques, vous obtenez des informations sur vos futures cibles d'optimisation.

Pour surveiller votre environnement sur Google Cloud, vous pouvez utiliser Cloud Monitoring pour concevoir des graphiques, des tableaux de bord et des alertes. Vous pouvez ensuite exporter les données Cloud Logging pour une analyse plus approfondie et une période de conservation prolongée. Par exemple, vous pouvez créer des récepteurs agrégés et utiliser Cloud Storage, Cloud Pub/Sub ou BigQuery comme destinations. Si vous exportez des données vers BigQuery, vous pouvez utiliser Data Studio pour visualiser les données afin d'identifier les tendances et effectuer des prédictions. Vous pouvez également faire appel à des services d'évaluation tels que l'outil de recommandation, Security Command Center et Forseti pour analyser automatiquement votre environnement et vos processus, et identifier des cibles d'optimisation.

Après avoir analysé toutes les données de mesure, vous devez répondre à deux questions :

  1. Atteignez-vous vos objectifs d'optimisation ?

    Si la réponse est oui, cette itération d'optimisation est terminée et vous pouvez en démarrer une nouvelle. Si la réponse est non, vous pouvez passer à la deuxième question.

  2. Compte tenu des ressources que vous avez budgétées, pouvez-vous atteindre les objectifs d'optimisation que vous avez définis pour cette itération ?

Pour répondre à cette question, pensez à toutes les ressources dont vous avez besoin : temps, argent et expertise. Si vous avez répondu oui, vous pouvez passer à la section suivante. Sinon, affinez vos objectifs d'optimisation en tenant compte des ressources que vous pouvez utiliser pour cette itération. Par exemple, si vous êtes limité par un calendrier fixe, vous devrez peut-être planifier des objectifs d'optimisation pour la prochaine itération.

Optimiser vos équipes

L'optimisation de l'environnement est un défi permanent qui peut nécessiter des compétences manquantes au sein de vos équipes, que vous avez découvertes lors de l'évaluation et de l'analyse. C'est pourquoi il est essentiel d'optimiser vos équipes en acquérant de nouvelles compétences et en améliorant l'efficacité de vos processus.

Vous devez procéder comme suit pour optimiser vos équipes :

  • Élaborer et mettez en œuvre un programme de formation
  • Optimiser la structure et la culture de votre équipe

Pour que vos équipes acquièrent les compétences manquantes, vous devez concevoir et mettre en œuvre un programme de formation ou en choisir un parmi ceux dispensés par les formateurs professionnels Google Cloud. Pour en savoir plus, consultez la page Migration vers Google Cloud : évaluer et découvrir vos charges de travail.

Tout en optimisant vos équipes, vous constaterez peut-être qu'il est possible d'améliorer la structure et la culture de celles-ci. Il est difficile de définir ici une situation idéale, car chaque entreprise possède sa propre histoire et ses spécificités qui ont contribué à l'évolution de la structure et de la culture de vos équipes.

La page Culture DevOps : réussir sa transformation fournit un bon point de départ pour assimiler les cadres généraux de mise en œuvre et de mesure des changements organisationnels visant à adopter des pratiques DevOps. Les sections Principes et Erreurs courantes peuvent vous aider à éviter les obstacles à venir lors de l'optimisation de vos équipes. Pour obtenir des conseils pratiques sur la mise en œuvre d'une culture DevOps efficace dans votre organisation, consultez la page Ingénierie de fiabilité des sites qui fournit une description complète de la méthodologie SRE. Le manuel sur la fiabilité des sites, qui accompagne le livre, utilise des exemples concrets pour vous montrer comment appliquer les principes et les pratiques SRE.

La SRE suggère de mettre en œuvre une culture post-mortem irréprochable pour permettre à vos équipes d'apprendre de leurs échecs. Si vous souhaitez commencer votre parcours SRE pour optimiser vos équipes, vous trouverez des ressources dans les Manuels SRE et le blog Ingénierie en fiabilité client (CRE, Customer Reliability Engineering). Vous pouvez également consulter les ressources du site re:Work, dont une présentation, des guides et des études de cas pour rechercher et présenter des pratiques permettant d'améliorer les processus basés sur les données.

Optimiser votre environnement

Après avoir mesuré et analysé les données statistiques, vous savez quels domaines vous devez optimiser.

Cette section décrit les techniques d'optimisation générales pour votre environnement Google Cloud. Vous pouvez également effectuer toute activité d'optimisation spécifique à votre infrastructure et aux services que vous utilisez.

Codifier l'environnement

L'un des principaux avantages d'adopter un environnement de cloud public tel que Google Cloud est de pouvoir utiliser des interfaces bien définies telles que les API Cloud pour provisionner, configurer et gérer les ressources. Vous pouvez définir votre infrastructure en tant que code (IaC) et la gérer à l'aide du système de contrôle des versions de votre choix.

Vous disposez d'outils tels que Deployment Manager et Terraform pour le provisionnement, et Ansible, Chef ou Puppet pour déployer vos ressources Google Cloud. Un processus IaC vous aide à mettre en œuvre une stratégie de rollback efficace pour vos tâches d'optimisation. Vous pouvez annuler toute modification apportée au code qui décrit votre infrastructure. En outre, vous pouvez tester vos modifications pour éviter les défaillances inattendues lors de la mise à jour de votre infrastructure.

Vous pouvez également appliquer des processus analogues pour codifier d'autres aspects de votre environnement, tels que les règles en tant que code, à l'aide d'outils comme Open Policy Agent, et les opérations en tant que code, comme GitOps.

Par conséquent, si vous adoptez un processus IaC dans les premières itérations d'optimisation, vous pouvez définir d'autres activités d'optimisation sous forme de code. Vous pouvez également adopter le processus progressivement afin d'évaluer s'il est adapté à votre environnement.

Automatiser l'environnement

Pour optimiser l'ensemble de votre environnement, vous devez employer les ressources de manière efficace. Vous devez ainsi éliminer les tâches laborieuses afin d'économiser des ressources et de les remobiliser pour des tâches plus importantes et rentables, telles que les activités d'optimisation.

Conformément à la recommandation SRE, le moyen d'éliminer les tâches laborieuses consiste à accroître l'automatisation. Toutes les tâches d'automatisation ne nécessitent pas forcément une haute spécialisation en ingénierie logicielle, ni de démarches excessivement lourdes. Parfois, un court script exécutable lancé régulièrement peut faire gagner plusieurs heures par jour. Google Cloud fournit des outils comme le SDK Cloud et des services gérés tels que les API Cloud, Cloud Scheduler, Cloud Composer et Cloud Functions, que vos équipes peuvent utiliser pour automatiser les tâches répétitives.

Par exemple, vous pouvez déployer des pipelines de livraison continue avec Spinnaker et Google Kubernetes Engine pour automatiser les tâches de compilation, de test et de déploiement à l'aide de Cloud Build. Vous pouvez également automatiser un workflow de traitement de données complexe en intégrant plusieurs services Google Cloud afin de produire des ensembles de données pour vos services.

Surveiller l'environnement

Si vous n'êtes pas en mesure de collecter des mesures détaillées sur votre environnement, vous ne pouvez pas l'améliorer, car vous n'avez pas de données pour soutenir vos hypothèses. Par conséquent, vous ne savez pas comment atteindre vos objectifs d'optimisation.

Un système de surveillance complet est un composant nécessaire pour votre environnement. Le système surveille toutes les métriques essentielles que vous devez évaluer pour atteindre vos objectifs d'optimisation. Lorsque vous concevez votre système de surveillance, prévoyez de surveiller au moins les quatre signaux clés.

Vous pouvez utiliser des services gérés tels que Cloud Monitoring et Cloud Logging pour surveiller votre environnement sans avoir à configurer une solution de surveillance complexe. Vous pouvez également étendre votre système de surveillance à l'aide de Cloud Monitoring en l'intégrant aux applications Open Source. Par exemple, vous pouvez effectuer une surveillance par boîte blanche pour GKE avec Prometheus ou capturer le traçage et les métriques Cloud Bigtable à l'aide d'OpenCensus.

Vous devrez peut-être mettre en œuvre un système de surveillance capable de surveiller les environnements hybrides et multicloud pour répondre aux règles de restriction des données qui vous obligent à stocker des données dans des emplacements physiques bien précis, ou bien des services qui utilisent plusieurs environnements cloud simultanément.

Adopter une approche cloud native

Le développement cloud natif est un paradigme décrivant un moyen efficace de concevoir et d'exécuter une application sur le cloud. La base de calcul cloud native définit une application cloud native comme une application évolutive, résiliente, gérable et observable à l'aide de technologies telles que des conteneurs, des maillages de services, des microservices, une infrastructure immuable et des API déclaratives. Google Cloud fournit des services gérés tels que GKE, Cloud Run, Traffic Director, Cloud Logging et Cloud Monitoring pour permettre aux utilisateurs de concevoir et d'exécuter des applications cloud natives.

Si vous avez une ancienne application monolithique qu'il est difficile de moderniser en appliquant le modèle cloud natif, vous pouvez la migrer vers des microservices sur GKE.

Pour en savoir plus sur les technologies cloud natives, consultez la section Trail Map et la page Cloud Native Interactive Landscape, associées à la CNCF (Cloud Native Computing Foundation).

Gestion des coûts

En raison de leurs différents modèles de facturation et de coût, l'optimisation des coûts d'un environnement cloud public tel que Google Cloud diffère de l'optimisation d'un environnement sur site. Cette section décrit les techniques d'optimisation que vous pouvez appliquer pour gérer vos coûts sur Google Cloud.

Tout d'abord, créez un budget dans Cloud Billing pour effectuer le suivi des coûts, en les ventilant par projet Cloud ou par libellé. Vous pouvez également configurer des alertes ou déclencher les actions suivantes via des messages Cloud Pub/Sub et Cloud Functions pour gérer vos coûts.

Si vous utilisez Compute Engine, vous pouvez utiliser l'outil de recommandation de dimensionnement d'instance de machine virtuelle (VM) pour optimiser l'utilisation des ressources de vos VM, en fonction des métriques de Cloud Monitoring. Vous pouvez également utiliser les recommandations pour l'IaC pour créer des workflows automatisés afin de réduire les coûts.

Si vos charges de travail le tolèrent, vous pouvez utiliser des instances de VM préemptives, qui sont des instances de VM de courte durée et très abordables.

Les services Google Cloud sont facturés selon un modèle de tarification avantageux. Pour réduire encore davantage vos frais, Google Cloud propose des fonctionnalités telles que les remises sur engagement d'utilisation, qui vous permettent d'acheter un contrat à l'avance et de bénéficier de remises. Vous pouvez également appliquer des remises automatiques proportionnelles à une utilisation soutenue pour bénéficier de remises automatiques sur votre facturation Compute Engine.

Pour certains services Google Cloud, il existe des forfaits à prix réduit qui limitent vos coûts et vous permettent de planifier votre budget selon un modèle de tarification plus prévisible, tel que les tarifs forfaitaires pour BigQuery et le forfait Augmentation du stockage pour Cloud Storage.

Enfin, tenez compte de l'automatisation lorsque vous appliquez ces techniques de gestion des coûts. Comme vous pouvez appliquer l'IaC, vous pouvez définir les tâches de gestion des coûts sous forme de code et les automatiser pour réduire les coûts sans aucune interaction manuelle.

Mesurer et analyser à nouveau

Une fois les activités d'optimisation achevées pour cette itération, vous allez répéter les mesures et l'analyse afin de vérifier si vous avez atteint vos objectifs. Posez-vous ensuite la question suivante :

  • Avez-vous atteint vos objectifs d'optimisation ?

    Si la réponse est oui, vous pouvez passer à la section suivante.

    Si la réponse est non, revenez au début de cette phase.

Ajuster la boucle d'optimisation.

Dans cette section, vous allez mettre à jour et modifier la boucle d'optimisation que vous avez suivie dans cette itération afin de mieux l'adapter à la structure de votre équipe et à l'environnement.

Codifier la boucle d'optimisation

Pour optimiser au mieux la boucle d'optimisation, vous devez la documenter et la définir sous une forme standardisée, simple et facile à gérer, qui permette en outre d'y apporter des modifications. Vous pouvez utiliser un service entièrement géré tel que Cloud Composer pour créer, planifier, surveiller et gérer vos flux de travail. Vous pouvez également commencer par représenter vos processus avec un langage tel que le BPMN (Business Process Model and Notation, notation et modélisation des processus métier). Ensuite, vous pouvez codifier ces processus avec un langage standardisé tel que le BPEL (Business Process Execution Language, langage d'exécution des processus métier). Après avoir adopté l'IaC, décrire vos processus avec du code vous permet de les gérer comme vous le faites pour le reste de votre environnement.

Automatiser la boucle d'optimisation

Après avoir codifié la boucle d'optimisation, vous pouvez automatiser les tâches répétitives pour éliminer le travail laborieux, gagner du temps et rendre la boucle plus efficace. Vous pouvez commencer à automatiser toutes les tâches ne nécessitant pas de décision humaine, telles que la mesure des données et la création de rapports globaux à analyser par vos équipes. Par exemple, vous pouvez automatiser l'analyse des données avec le service de surveillance Cloud Monitoring pour vérifier si votre environnement répond aux SLO que vous avez définis. Compte tenu du fait que l'optimisation est un processus permanent et que vous effectuez des itérations sur la boucle d'optimisation, même les petites automatisations peuvent augmenter considérablement l'efficacité.

Surveiller la boucle d'optimisation

Comme pour toutes les ressources de votre environnement, vous devez surveiller la boucle d'optimisation pour vérifier qu'elle fonctionne comme prévu et rechercher les goulots d'étranglement et les futurs objectifs d'optimisation. Cette surveillance peut commencer par un suivi du temps et du nombre de ressources que vos équipes ont consacrés à chaque étape d'optimisation. Par exemple, vous pouvez utiliser un système de suivi des problèmes et un outil de gestion de projet pour surveiller vos processus et extraire des statistiques pertinentes à partir de métriques telles que le temps de résolution des problèmes et le délai de réalisation.

Obtenir de l'aide

Google Cloud fournit les ressources d'assistance suivantes :

D'autres ressources pouvant vous aider dans la migration des charges de travail vers Google Cloud sont proposées dans le centre de migration Google Cloud. Pour en savoir plus sur ces ressources, consultez la section Obtenir de l'aide du document Migration vers Google Cloud : premiers pas.

Étapes suivantes

  • Lisez les manuels SRE pour en savoir plus sur les autres concepts et techniques de préparation à l'optimisation.
  • Consultez le blog Google Cloud pour découvrir les nouveaux articles et cas d'utilisation qui peuvent vous aider à optimiser votre environnement.
  • Testez d'autres fonctionnalités de Google Cloud. Découvrez nos tutoriels.