Assurer la préparation opérationnelle et les performances à l'aide de CloudOps

Last reviewed 2024-10-31 UTC

Ce principe du pilier "Excellence opérationnelle" du Google Cloud Well-Architected Framework vous aide à garantir la préparation opérationnelle et les performances de vos charges de travail cloud. Il met l'accent sur l'établissement d'attentes et d'engagements clairs concernant les performances des services, la mise en œuvre d'une surveillance et d'alertes robustes, la réalisation de tests de performances et la planification proactive des besoins en capacité.

Présentation des principes

Différentes organisations peuvent interpréter la préparation opérationnelle différemment. La préparation opérationnelle consiste à préparer votre organisation à exploiter correctement les charges de travail sur Google Cloud. La préparation à l'exploitation d'une charge de travail cloud complexe et multicouche nécessite une planification minutieuse pour la mise en service et les opérations day-2. Ces opérations sont souvent appelées CloudOps.

Domaines de préparation opérationnelle

La préparation opérationnelle comprend quatre domaines d'intérêt. Chaque domaine d'intérêt se compose d'un ensemble d'activités et de composants nécessaires pour se préparer à exploiter une application ou un environnement complexes dans Google Cloud. Le tableau suivant liste les composants et les activités de chaque domaine d'intérêt :

Domaine d'intérêt de la préparation opérationnelle Activités et composants
Main d'œuvre
  • Définir clairement les rôles et les responsabilités des équipes qui gèrent et exploitent les ressources cloud.
  • S'assurer que les membres de l'équipe possèdent les compétences appropriées.
  • Développer un programme de formation.
  • Établissez une structure d'équipe claire.
  • Recruter les talents nécessaires.
Processus
  • Observabilité.
  • Gérer les interruptions de service
  • Distribution dans le cloud.
  • Opérations cloud de base.
Outils Outils nécessaires pour prendre en charge les processus CloudOps.
Gouvernance
  • Niveaux de service et rapports.
  • Finances du cloud.
  • Modèle opérationnel du cloud.
  • Comités d'examen et de gouvernance de l'architecture.
  • Architecture et conformité du cloud.

Recommandations

Pour garantir l'état opérationnel et les performances à l'aide de CloudOps, tenez compte des recommandations des sections suivantes. Chaque recommandation de ce document concerne un ou plusieurs domaines de préparation opérationnelle.

Définir des SLO et des SLA

L'une des principales responsabilités de l'équipe des opérations cloud consiste à définir des objectifs de niveau de service (SLO) et des contrats de niveau de service (SLA) pour toutes les charges de travail critiques. Cette recommandation concerne le domaine de gouvernance de la préparation opérationnelle.

Les SLO doivent être spécifiques, mesurables, réalisables, pertinents et limités dans le temps (SMART). Ils doivent également refléter le niveau de service et les performances que vous souhaitez atteindre.

  • Spécifique : le niveau de service et les performances requis sont clairement définis.
  • Mesurable : quantifiable et traçable.
  • Réalisable : atteignable dans les limites des capacités et des ressources de votre organisation.
  • Pertinent : aligné sur les objectifs et les priorités de l'entreprise.
  • Limité dans le temps : il dispose d'un délai défini pour la mesure et l'évaluation.

Par exemple, un SLO pour une application Web peut être "disponibilité de 99,9 %" ou "temps de réponse moyen inférieur à 200 ms". Ces SLO définissent clairement le niveau de service et les performances requis pour l'application Web. Ils peuvent être mesurés et suivis au fil du temps.

Les SLA définissent les engagements envers les clients concernant la disponibilité, les performances et l'assistance des services, y compris les pénalités ou les mesures correctives en cas de non-respect. Les SLA doivent inclure des informations spécifiques sur les services fournis, le niveau de service attendu, les responsabilités du fournisseur de services et du client, ainsi que les pénalités ou les recours en cas de non-respect. Les SLA servent d'accord contractuel entre les deux parties, garantissant que les deux ont une compréhension claire des attentes et des obligations associées au service cloud.

Google Cloud fournit des outils tels que Cloud Monitoring et des indicateurs de niveau de service (SLI) pour vous aider à définir et à suivre les SLO. Cloud Monitoring fournit des fonctionnalités complètes de surveillance et d'observabilité qui permettent à votre organisation de collecter et d'analyser les métriques liées à la disponibilité, aux performances et à la latence des applications et services basés sur le cloud. Les SLI sont des métriques spécifiques que vous pouvez utiliser pour mesurer et suivre les SLO au fil du temps. En utilisant ces outils, vous pouvez surveiller et gérer efficacement les services cloud, et vous assurer qu'ils respectent les SLO et les SLA.

Définir et communiquer clairement les SLO et les SLA pour tous vos services cloud critiques permet d'assurer la fiabilité et les performances de vos applications et services déployés.

Implémenter une observabilité complète

Pour obtenir une visibilité en temps réel sur l'état et les performances de votre environnement cloud, nous vous recommandons d'utiliser une combinaison d'outils Google Cloud Observability et de solutions tierces. Cette recommandation concerne les domaines d'intérêt de la préparation opérationnelle suivants : processus et outils.

L'implémentation d'une combinaison de solutions d'observabilité vous offre une stratégie d'observabilité complète qui couvre différents aspects de votre infrastructure et de vos applications cloud. Google Cloud Observability est une plate-forme unifiée permettant de collecter, d'analyser et de visualiser les métriques, les journaux et les traces de divers servicesGoogle Cloud , applications et sources externes. Cloud Monitoring vous permet d'obtenir des insights sur l'utilisation des ressources, les caractéristiques de performances et l'état général de vos ressources.

Pour assurer une surveillance complète, surveillez les métriques importantes qui correspondent aux indicateurs d'état du système, tels que l'utilisation du processeur, l'utilisation de la mémoire, le trafic réseau, les E/S disque et les temps de réponse des applications. Vous devez également tenir compte des métriques spécifiques à votre activité. En suivant ces métriques, vous pouvez identifier les goulots d'étranglement potentiels, les problèmes de performances et les contraintes de ressources. Vous pouvez également configurer des alertes pour avertir de manière proactive les équipes concernées en cas de problèmes ou d'anomalies potentiels.

Pour améliorer encore vos capacités de surveillance, vous pouvez intégrer des solutions tierces à Google Cloud Observability. Ces solutions peuvent fournir des fonctionnalités supplémentaires, telles que des analyses avancées, la détection des anomalies basée sur le machine learning et des fonctionnalités de gestion des incidents. Cette combinaison d'outils Google Cloud Observability et de solutions tierces vous permet de créer un écosystème de surveillance robuste et personnalisable, adapté à vos besoins spécifiques. En utilisant cette approche combinée, vous pouvez identifier et résoudre les problèmes de manière proactive, optimiser l'utilisation des ressources, et assurer la fiabilité et la disponibilité globales de vos applications et services cloud.

Implémenter des tests de performances et de charge

Effectuer régulièrement des tests de performances vous permet de vous assurer que vos applications et votre infrastructure cloud peuvent gérer les pics de charge et maintenir des performances optimales. Les tests de charge simulent des schémas de trafic réalistes. Les tests de résistance poussent le système dans ses retranchements pour identifier les goulots d'étranglement et les limites de performances potentielles. Cette recommandation concerne les domaines d'intérêt de la préparation opérationnelle suivants : processus et outils.

Des outils tels que Cloud Load Balancing et les services de test de charge peuvent vous aider à simuler des schémas de trafic réels et à tester la résistance de vos applications. Ces outils fournissent des informations précieuses sur le comportement de votre système dans différentes conditions de charge. Ils peuvent vous aider à identifier les domaines qui nécessitent une optimisation.

En fonction des résultats des tests de performances, vous pouvez prendre des décisions pour optimiser votre infrastructure et vos applications cloud afin d'obtenir des performances et une évolutivité optimales. Cette optimisation peut impliquer d'ajuster l'allocation des ressources, de modifier les configurations ou d'implémenter des mécanismes de mise en cache.

Par exemple, si vous constatez que votre application ralentit pendant les périodes de trafic élevé, vous devrez peut-être augmenter le nombre de machines virtuelles ou de conteneurs qui lui sont alloués. Vous devrez peut-être aussi ajuster la configuration de votre serveur Web ou de votre base de données pour améliorer les performances.

En effectuant régulièrement des tests de performances et en implémentant les optimisations nécessaires, vous pouvez vous assurer que vos applications et votre infrastructure basées dans le cloud fonctionnent toujours à leur plein potentiel, et offrent une expérience fluide et réactive à vos utilisateurs. Cela peut vous aider à conserver un avantage concurrentiel et à gagner la confiance de vos clients.

Planifier et gérer la capacité

La planification proactive des futurs besoins en capacité, qu'ils soient organiques ou non, vous aide à assurer le bon fonctionnement et l'évolutivité de vos systèmes basés sur le cloud. Cette recommandation concerne le domaine d'intérêt des processus de préparation opérationnelle.

La planification de la capacité future inclut la compréhension et la gestion des quotas pour diverses ressources telles que les instances de calcul, le stockage et les requêtes API. En analysant les modèles d'utilisation historiques, les prévisions de croissance et les exigences commerciales, vous pouvez anticiper avec précision les futurs besoins en capacité. Vous pouvez utiliser des outils tels que Cloud Monitoring et BigQuery pour collecter et analyser les données d'utilisation, identifier les tendances et prévoir la demande future.

Les modèles d'utilisation historiques fournissent des informations précieuses sur l'utilisation des ressources au fil du temps. En examinant des métriques telles que l'utilisation du processeur, de la mémoire et du trafic réseau, vous pouvez identifier les périodes de forte demande et les goulots d'étranglement potentiels. Vous pouvez également estimer les futurs besoins en capacité en effectuant des prévisions de croissance basées sur des facteurs tels que la croissance de la base d'utilisateurs, les nouveaux produits et fonctionnalités, et les campagnes marketing. Lorsque vous évaluez les besoins en capacité, vous devez également tenir compte des exigences commerciales telles que les SLA et les objectifs de performances.

Lorsque vous déterminez la taille des ressources pour une charge de travail, tenez compte des facteurs qui peuvent affecter l'utilisation des ressources. Les variations saisonnières, comme les périodes de shopping pour les fêtes ou les soldes de fin de trimestre, peuvent entraîner des pics de demande temporaires. Les événements planifiés, comme les lancements de produits ou les campagnes marketing, peuvent également augmenter considérablement le trafic. Pour vous assurer que votre système principal et votre système de reprise après sinistre peuvent gérer les pics de demande inattendus, planifiez une capacité permettant un basculement progressif en cas de perturbations telles que des catastrophes naturelles et des cyberattaques.

L'autoscaling est une stratégie importante pour ajuster de manière dynamique vos ressources cloud en fonction des fluctuations de la charge de travail. En utilisant des règles d'autoscaling, vous pouvez automatiquement mettre à l'échelle les instances de calcul, le stockage et d'autres ressources en fonction de l'évolution de la demande. Cela garantit des performances optimales pendant les périodes de pointe tout en minimisant les coûts lorsque l'utilisation des ressources est faible. Les algorithmes d'autoscaling utilisent des métriques telles que l'utilisation du processeur, de la mémoire et la profondeur de la file d'attente pour déterminer quand faire évoluer les ressources.

Surveiller et optimiser en continu

Pour gérer et optimiser les charges de travail cloud, vous devez établir un processus de surveillance et d'analyse continues des métriques de performances. Cette recommandation concerne les domaines d'intérêt de la préparation opérationnelle suivants : processus et outils.

Pour établir un processus de surveillance et d'analyse continues, vous devez suivre, collecter et évaluer les données liées à différents aspects de votre environnement cloud. En utilisant ces données, vous pouvez identifier de manière proactive les points à améliorer, optimiser l'utilisation des ressources et vous assurer que votre infrastructure cloud répond constamment à vos attentes en termes de performances, voire les dépasse.

Un aspect important de la surveillance des performances consiste à examiner régulièrement les journaux et les traces. Les journaux fournissent des informations précieuses sur les événements, les erreurs et les avertissements du système. Les traces fournissent des informations détaillées sur le flux de requêtes dans votre application. En analysant les journaux et les traces, vous pouvez identifier les problèmes potentiels et leurs causes racines, et mieux comprendre le comportement de vos applications dans différentes conditions. Les métriques telles que le temps aller-retour entre les services peuvent vous aider à identifier et à comprendre les goulots d'étranglement dans vos charges de travail.

De plus, vous pouvez utiliser des techniques d'optimisation des performances pour améliorer considérablement les temps de réponse des applications et l'efficacité globale. Voici quelques exemples de techniques que vous pouvez utiliser :

  • Mise en cache : stockez les données fréquemment consultées en mémoire pour réduire le besoin de requêtes de base de données ou d'appels d'API répétés.
  • Optimisation de la base de données : utilisez des techniques telles que l'indexation et l'optimisation des requêtes pour améliorer les performances des opérations de base de données.
  • Profilage du code : identifiez les zones de votre code qui consomment trop de ressources ou qui entraînent des problèmes de performances.

En appliquant ces techniques, vous pouvez optimiser vos applications et vous assurer qu'elles s'exécutent efficacement dans le cloud.