La première étape pour créer une infrastructure fiable pour vos charges de travail cloud consiste à identifier les exigences de fiabilité de celles-ci. Cette partie du guide de fiabilité de l'infrastructure Google Cloud fournit des conseils pour vous aider à définir les exigences de fiabilité des charges de travail que vous déployez dans Google Cloud.
Déterminer les exigences spécifiques à la charge de travail
Les exigences de fiabilité d'une application dépendent de la nature du service fourni par l'application ou du processus qu'elle exécute. Par exemple, une application qui fournit des services de distributeur de billets à une banque peut nécessiter une disponibilité de 5 chiffres neuf (99,999 %). Un site Web compatible avec une plate-forme d'échange en ligne peut nécessiter une disponibilité de 5 chiffres neuf et un temps de réponse rapide. Un processus par lots qui écrit les transactions bancaires dans un registre comptable à la fin de chaque journée peut avoir un objectif de fraîcheur des données de huit heures.
Dans une application, les composants ou les opérations individuels peuvent avoir des exigences de fiabilité variables. Par exemple, une application de traitement de commandes peut nécessiter une fiabilité plus élevée pour les opérations qui écrivent des données dans la base de données des commandes par rapport aux requêtes de lecture.
L'évaluation précise des exigences de fiabilité de vos charges de travail vous permet de concentrer vos dépenses et vos efforts sur les charges de travail critiques pour votre entreprise.
Identifier les périodes critiques
Il peut arriver qu'une application soit plus stratégique que d'autres. Ces périodes représentent souvent les pics de charge maximale de l'application. Identifiez ces périodes, planifiez une capacité suffisante et testez l'application par rapport aux conditions de charge maximale. Pour éviter les risques d'interruption d'application pendant les pics de charge, vous pouvez appliquer des pratiques opérationnelles appropriées, telles que le gel du code de production.
Vous trouverez ci-dessous des exemples d'applications qui connaissent des pics de charge saisonniers :
- Le module d'inventaire d'une application de comptabilité financière est généralement plus utilisé les jours où les audits d'inventaire mensuels, trimestriels ou annuels sont planifiés.
- Un site Web d'e-commerce connaîtrait des pics de charge importants pendant les périodes de pointe ou lors d'événements promotionnels.
- Une base de données qui accepte le module d'admission des étudiants d'une université présente un volume élevé d'opérations d'écriture pendant certains mois de chaque année.
- Un service de déclaration fiscale en ligne aurait une charge élevée pendant la période de déclaration.
- Une plate-forme d'échange en ligne peut nécessiter une disponibilité de 99,999 % et un temps de réponse rapide, mais uniquement pendant les heures d'ouverture (par exemple, de 8h à 17h du lundi au vendredi).
Considérer d'autres exigences non fonctionnelles
Outre les exigences de fiabilité, les applications d'entreprise peuvent avoir d'autres exigences non fonctionnelles importantes en termes de sécurité, de performances, de coûts et d'efficacité opérationnelle. Lorsque vous évaluez les exigences de fiabilité d'une application, tenez compte des dépendances et des compromis avec ces autres exigences.
Voici des exemples d'exigences qui ne sont pas à des fins de fiabilité, mais qui peuvent inclure des compromis avec des exigences de fiabilité.
- Optimisation des coûts : pour optimiser les coûts informatiques, votre organisation peut imposer des quotas pour certaines ressources cloud. Par exemple, pour réduire le coût des licences logicielles tierces, votre organisation peut définir des quotas pour le nombre de cœurs de calcul pouvant être provisionnés. Des quotas similaires peuvent exister pour la quantité de données pouvant être stockées et pour le volume de trafic réseau interrégional. Tenez compte des effets de ces contraintes sur les options disponibles pour concevoir une infrastructure fiable.
- Résidence des données : pour répondre aux exigences réglementaires, votre application peut avoir besoin de stocker et de traiter des données dans des pays spécifiques, même si l'entreprise sert des utilisateurs dans le monde entier. Prenez en compte ces contraintes de résidence des données lorsque vous choisissez les régions et les zones dans lesquelles vos applications peuvent être déployées.
Certaines décisions de conception que vous prenez pour répondre à d'autres exigences peuvent vous aider à améliorer la fiabilité de vos applications. Voici quelques exemples :
- Automatisation des déploiements : pour gérer efficacement vos déploiements cloud, vous pouvez décider d'automatiser le flux de provisionnement à l'aide d'une infrastructure as code (IaC). De même, vous pouvez automatiser le processus de création et de déploiement d'applications à l'aide d'un pipeline d'intégration et de déploiement continu (CI/CD). L'utilisation de pipelines IaC et CI/CD peut vous aider à améliorer non seulement l'efficacité opérationnelle, mais également la fiabilité de vos charges de travail.
- Contrôles de sécurité ; les contrôles de sécurité que vous mettez en œuvre peuvent également aider à améliorer la disponibilité de l'application. Par exemple, les règles de sécurité Google Cloud Armor peuvent vous aider à maintenir la disponibilité de l'application lors d'attaques par déni de service (DoS).
- Mise en cache du contenu : pour améliorer les performances d'une application de diffusion de contenu, vous pouvez activer la mise en cache dans le cadre de la configuration de votre équilibreur de charge. Avec cette conception, les utilisateurs bénéficient d'un accès non seulement plus rapide au contenu, mais également à une disponibilité plus élevée. Ils peuvent accéder au contenu mis en cache même lorsque les serveurs d'origine sont indisponibles.
Réévaluer régulièrement les exigences
Les exigences de vos applications peuvent changer à mesure que votre entreprise évolue. Réévaluez régulièrement vos exigences de fiabilité, et assurez-vous qu'elles correspondent aux objectifs et aux priorités actuels de votre organisation.
Prenons l'exemple d'une application qui fournit un niveau de disponibilité standard pour tous les utilisateurs. Vous avez peut-être déployé l'application dans deux zones d'une région, avec un équilibreur de charge régional en tant qu'interface. Si votre organisation prévoit de lancer une option de service premium offrant une plus grande disponibilité, les exigences de fiabilité de l'application ont changé. Pour répondre aux nouvelles exigences de disponibilité, vous devrez peut-être déployer l'application dans plusieurs régions et utiliser un équilibreur de charge global avec Cloud CDN activé.
Une autre possibilité consiste à réévaluer les exigences de disponibilité de vos applications après une panne. Des pannes peuvent révéler des attentes non concordantes entre les différentes équipes de votre entreprise. Par exemple, une équipe peut considérer qu'une panne de 45 minutes une fois par an (soit une disponibilité de 99,99 % par an) est acceptable. Toutefois, une autre équipe peut s'attendre à un temps d'arrêt maximal de 4,3 minutes par mois (soit une disponibilité de 99,99 % par mois). Selon la façon dont vous décidez de modifier ou de clarifier les exigences de disponibilité, vous devez ajuster votre architecture afin de répondre aux nouvelles exigences.