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 la définition 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 du principe
La préparation opérationnelle peut être interprétée différemment selon les organisations. Elle correspond à la manière dont votre organisation se prépare à exploiter des 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 production et day-2. Ces opérations sont souvent appelées CloudOps.
Domaines d'intérêt de la préparation opérationnelle
La préparation opérationnelle comporte quatre domaines d'intérêt. Chacun d'eux comprend un ensemble d'activités et de composants nécessaires pour se préparer à exploiter une application ou un environnement complexe dans Google Cloud. Le tableau suivant répertorie 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 |
|
| Processus |
|
| Outils | Outils nécessaires pour prendre en charge les processus CloudOps. |
| Gouvernance |
|
Recommandations
Pour garantir la préparation opérationnelle et les performances à l'aide de CloudOps, tenez compte des recommandations des sections suivantes. Chaque recommandation de ce document concerne un ou plusieurs domaines d'intérêt de la 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 d'intérêt de la gouvernance de la préparation opérationnelle.
Les SLO doivent être spécifiques, mesurables, réalisables, pertinents et limités dans le temps (SMART), et doivent refléter le niveau de service et les performances souhaités.
- Spécifique : indique clairement le niveau de service et les performances requis.
- 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 : 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, et ils peuvent être mesurés et suivis au fil du temps.
Les SLA décrivent les engagements envers les clients concernant la disponibilité, les performances et l'assistance des services, y compris les pénalités ou les recours en cas de non-conformité. 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-conformité. Les SLA servent d'accord contractuel entre les deux parties, garantissant que les deux parties comprennent clairement les attentes et les 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 des métriques liées à la disponibilité, aux performances et à la latence des applications et des services 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 de garantir la fiabilité et les performances de vos applications et services déployés.
Mettre en œuvre 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 suivants de la préparation opérationnelle: processus et outils.
La mise en œuvre 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 des métriques, des journaux et des traces provenant de différents Google Cloud services, applications et sources externes. En utilisant Cloud Monitoring, vous pouvez obtenir des insights sur l'utilisation des ressources, les caractéristiques de performances et l'état général de vos ressources.
Pour garantir une surveillance complète, surveillez les métriques importantes qui correspondent aux indicateurs d'état du système, tels que l'utilisation du processeur, 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 liées aux ressources. Vous pouvez également configurer des alertes pour avertir de manière proactive les équipes concernées en cas d'anomalies ou de problèmes potentiels.
Pour améliorer davantage 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, une 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 garantir la fiabilité et la disponibilité globales de vos applications et services cloud.
Mettre en œuvre 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 à ses limites pour identifier les goulots d'étranglement potentiels et les limitations de performances. Cette recommandation concerne les domaines d'intérêt suivants de la préparation opérationnelle: processus et outils.
Des outils tels que Cloud Load Balancing et des 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 insights précieux sur le comportement de votre système dans différentes conditions de charge et 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 cloud et vos applications afin d'obtenir des performances et une évolutivité optimales. Cette optimisation peut impliquer d'ajuster l'allocation des ressources, de régler les configurations ou de mettre en œuvre des mécanismes de mise en cache.
Par exemple, si vous constatez que votre application ralentit pendant les périodes de trafic intense, vous devrez peut-être augmenter le nombre de machines virtuelles ou de conteneurs alloués à l'application. Vous devrez peut-être également 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 mettant en œuvre les optimisations nécessaires, vous pouvez vous assurer que vos applications et votre infrastructure cloud fonctionnent toujours à des performances optimales et offrent une expérience fluide et réactive à vos utilisateurs. Cela peut vous aider à conserver un avantage concurrentiel et à établir une relation de confiance avec vos clients.
Planifier et gérer la capacité
La planification proactive des besoins futurs en capacité, qu'ils soient organiques ou non, vous permet de garantir le bon fonctionnement et l'évolutivité de vos systèmes cloud. Cette recommandation concerne le domaine d'intérêt des processus de la 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 schémas d'utilisation historiques, les projections de croissance et les exigences de l'entreprise, vous pouvez anticiper avec précision les besoins futurs 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 schémas d'utilisation historiques fournissent des insights précieux 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 le trafic réseau, vous pouvez identifier les périodes de forte demande et les goulots d'étranglement potentiels. De plus, vous pouvez estimer les besoins futurs en capacité en effectuant des projections 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 de l'entreprise, 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, telles que les périodes d'achats de fin d'année ou les ventes de fin de trimestre, peuvent entraîner des pics de demande temporaires. Les événements planifiés, tels que 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é qui peut prendre en charge le basculement en douceur en cas de perturbations telles que des catastrophes naturelles et des cyberattaques.
L'autoscaling est une stratégie importante pour ajuster dynamiquement vos ressources cloud en fonction des fluctuations de la charge de travail. En utilisant des stratégies d'autoscaling, vous pouvez automatiquement mettre à l'échelle les instances de calcul, le stockage et d'autres ressources en réponse à 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 mettre à l'échelle 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 suivants de la préparation opérationnelle: 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 domaines à améliorer, optimiser l'utilisation des ressources et vous assurer que votre infrastructure cloud répond toujours à 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 insights précieux 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, déterminer les causes profondes des problèmes et mieux comprendre le comportement de vos applications dans différentes conditions. Les métriques telles que le délai 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 de réglage 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.