Ce principe du pilier "Excellence opérationnelle" du framework d'architecture Google Cloud vous aide à assurer la préparation opérationnelle et les performances de vos charges de travail cloud. Elle met l'accent sur l'établissement d'attentes et d'engagements clairs en termes de performances de service, l'implémentation d'une surveillance et d'une alerte robustes, la réalisation de tests de performances et la planification proactive des besoins en capacité.
Présentation des principes
Chaque organisation peut interpréter la préparation opérationnelle différemment. La préparation opérationnelle est la façon dont votre organisation se prépare à exploiter des charges de travail sur Google Cloud. La préparation de l'exploitation d'une charge de travail cloud complexe et multicouche nécessite une planification minutieuse pour le lancement et les opérations de day-2. Ces opérations sont souvent appelées CloudOps.
Axes de préparation opérationnelle
La préparation opérationnelle se compose de quatre domaines d'activité. Chaque domaine d'intérêt se compose d'un ensemble d'activités et de composants nécessaires à la préparation de l'exploitation d'une application ou d'un environnement complexe dans Google Cloud. Le tableau suivant liste les composants et les activités de chaque domaine d'intérêt:
Domaine d'application de la préparation opérationnelle | Activités et composants |
---|---|
Main d'œuvre |
|
Processus |
|
Outils | Outils requis 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 des axes d'attention de la préparation opérationnelle.
Définir des SLO et des SLA
L'équipe chargée des opérations cloud a pour principale responsabilité de 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 s'applique au domaine d'intérêt de la gouvernance : la préparation opérationnelle.
Les SLO doivent être spécifiques, mesurables, réalisables, pertinents et limités dans le temps (SMART), et ils doivent refléter le niveau de service et de performances souhaité.
- Précise: elle indique clairement le niveau de service et de performances requis.
- Mesurables: quantifiables et traçables.
- Atteignable: atteignable dans les limites des capacités et des ressources de votre organisation.
- Pertinent: en adéquation avec les objectifs et les priorités de l'entreprise.
- Limité dans le temps: la mesure et l'évaluation sont effectuées dans un délai défini.
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 de performances requis pour l'application Web. 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 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 toute pénalité ou réparation en cas de non-respect. Les SLA servent de contrat entre les deux parties, en veillant à ce qu'elles 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 offre des fonctionnalités de surveillance et d'observabilité complètes 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 cloud. Les SLI sont des métriques spécifiques que vous pouvez utiliser pour mesurer et suivre les SLO au fil du temps. Grâce à 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.
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 s'applique aux axes de préparation opérationnelle suivants : processus et outils.
Implémenter une combinaison de solutions d'observabilité vous fournit une stratégie d'observabilité complète qui couvre différents aspects de votre infrastructure cloud et de vos applications. 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 divers services, applications et sources externes Google Cloud. 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 de l'état du système, tels que l'utilisation du processeur, l'utilisation de la mémoire, le trafic réseau, les E/S disques et les temps de réponse des applications. Vous devez également tenir compte des métriques spécifiques à votre entreprise. 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 informer de manière proactive les équipes concernées des problèmes ou anomalies potentiels.
Pour améliorer davantage vos fonctionnalité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 d'anomalies basée sur le machine learning et des fonctionnalités de gestion des incidents. Cette combinaison d'outils d'observabilité Google Cloud 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 de manière proactive les problèmes, optimiser l'utilisation des ressources et garantir la fiabilité et la disponibilité globales de vos applications et services cloud.
Implémenter des tests de performances et de charge
Effectuer des tests de performances réguliers 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 modèles de trafic réalistes. Les tests de stress poussent le système à ses limites pour identifier les goulots d'étranglement et les limites de performances potentiels. Cette recommandation s'applique aux axes de préparation opérationnelle suivants : processus et outils.
Des outils tels que l'équilibrage de charge dans le cloud et les services de test de charge peuvent vous aider à simuler des modèles de trafic réels et à tester vos applications en conditions extrêmes. 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 à optimiser.
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, d'ajuster 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 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 implémentant les optimisations nécessaires, vous pouvez vous assurer que vos applications et votre infrastructure cloud fonctionnent toujours à des performances optimales, et offrir une expérience fluide et réactive à vos utilisateurs. Cela peut vous aider à maintenir un avantage concurrentiel et à gagner la confiance de vos clients.
Planifier et gérer la capacité
Planifier de manière proactive les besoins futurs en capacité (à la fois organiques et inorganiques) vous aide à assurer le bon fonctionnement et l'évolutivité de vos systèmes cloud. Cette recommandation est pertinente pour les processus axés sur la préparation opérationnelle.
La planification de la capacité future implique de comprendre et de gérer les quotas pour diverses ressources, telles que les instances de calcul, le stockage et les requêtes API. En analysant les tendances d'utilisation historiques, les projections de croissance et les exigences métier, 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.
L'historique des modèles d'utilisation fournit des informations précieuses sur l'utilisation des ressources au fil du temps. En examinant des métriques telles que l'utilisation du processeur, l'utilisation de la mémoire et le trafic réseau, vous pouvez identifier les périodes de forte demande et les goulots d'étranglement potentiels. Vous pouvez également estimer les besoins futurs en capacité en effectuant des projections de croissance en fonction de 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 métier telles que les contrats de niveau de service et les cibles de performances.
Lorsque vous déterminez la taille des ressources pour une charge de travail, tenez compte des facteurs pouvant affecter l'utilisation des ressources. Les variations saisonnières, comme les périodes de shopping pendant les fêtes ou les ventes de fin de trimestre, peuvent entraîner des pics temporaires de la demande. 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 de reprise après sinistre (DR) peut gérer les pics de demande inattendus, planifiez une capacité qui peut prendre en charge le basculement en cas de perturbation, comme les catastrophes naturelles et les 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. Grâce aux règles d'autoscaling, vous pouvez ajuster automatiquement 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, l'utilisation 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 continue des métriques de performances. Cette recommandation s'applique aux axes de préparation opérationnelle suivants : processus et outils.
Pour établir un processus de surveillance et d'analyse continue, vous devez suivre, collecter et évaluer les données liées à différents aspects de votre environnement cloud. Grâce à ces données, vous pouvez identifier de manière proactive les axes d'amélioration, optimiser l'utilisation des ressources et vous assurer que votre infrastructure cloud répond de manière cohérente ou dépasse vos attentes en termes de performances.
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 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, en déterminer l'origine et mieux comprendre le comportement de vos applications dans différentes conditions. Des métriques telles que le temps aller-retour entre les services peuvent vous aider à identifier et à comprendre les goulots d'étranglement de 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. Vous trouverez ci-dessous des 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 d'effectuer des requêtes de base de données ou des 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 parties de votre code qui consomment des ressources excessives ou qui posent 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.