Compromis avec la fiabilité
Une charge de travail fiable répond constamment à ses objectifs de fiabilité définis. Il doit atteindre des cibles de résilience établies, idéalement en contournant les événements qui affectent la fiabilité. Toutefois, de manière réaliste, une charge de travail doit tolérer et contrôler l’impact de ces événements et maintenir les opérations à un niveau prédéterminé pendant un dysfonctionnement actif. Même lors d’un sinistre, une charge de travail fiable doit se rétablir dans un état spécifique dans un délai donné, dont les deux sont convenus entre les parties prenantes. Un plan de réponse aux incidents qui vous permet d’obtenir une détection et une récupération rapides est essentiel.
Pendant la phase de conception d’une charge de travail, vous devez prendre en compte la façon dont les décisions basées sur les principes de conception de fiabilité et les recommandations de la liste de vérification de la révision de conception peuvent influencer les objectifs et les optimisations d’autres piliers. Certaines décisions pourraient bénéficier de certains piliers, mais constituer un compromis pour d’autres. Cet article décrit des exemples de compromis que peut rencontrer une équipe de charge de travail lors de la conception de l’architecture et des opérations de charge de travail pour la fiabilité.
Compromis de fiabilité avec la sécurité
Compromis : augmentation de la surface de la charge de travail. Le pilier Sécurité hiérarchise une surface d’exposition réduite et autonome pour réduire les vecteurs d’attaque et réduire la gestion des contrôles de sécurité.
La fiabilité est souvent obtenue par le biais de la réplication. La réplication peut se produire au niveau du composant, au niveau des données ou même au niveau géographique. Les réplicas, par conception, augmentent la surface d’une charge de travail. Du point de vue de la sécurité, une surface d’exposition réduite et autonome est préférée pour réduire les vecteurs d’attaque potentiels et simplifier la gestion des contrôles de sécurité.
De même, les solutions de récupération d’urgence, telles que les sauvegardes, augmentent la surface d’une charge de travail. Toutefois, ils sont souvent isolés du runtime de la charge de travail. Ces solutions nécessitent l’implémentation de contrôles de sécurité supplémentaires, qui peuvent être spécifiques à l’approche de récupération d’urgence.
Pour des objectifs de fiabilité, des composants supplémentaires peuvent être nécessaires pour l’architecture, ce qui augmente la surface d’exposition. Par exemple, un bus de messages peut être ajouté pour rendre les demandes résilientes via le découplage. Cette complexité accrue augmente la surface de la charge de travail en ajoutant de nouveaux composants qui doivent être sécurisés, éventuellement de manière qui ne sont pas déjà utilisées dans le système. En règle générale, ces composants sont accompagnés de code et de bibliothèques supplémentaires pour prendre en charge leur utilisation ou leurs modèles de fiabilité généraux, ce qui augmente également la surface d’application.
Compromis : contournement du contrôle de sécurité. Le pilier sécurité recommande que tous les contrôles restent actifs dans les systèmes normaux et stressés.
Lorsqu’une charge de travail rencontre un événement de fiabilité qui est traité dans le cadre d’une réponse active aux incidents, l’urgence peut créer une pression pour les équipes de charge de travail afin de contourner les contrôles de sécurité optimisés pour l’accès de routine.
Les activités de résolution des problèmes peuvent entraîner la désactivation temporaire des protocoles de sécurité par l’équipe, laissant un système déjà stressé potentiellement exposé à des risques de sécurité supplémentaires. Il existe également un risque que les protocoles de sécurité ne soient pas rétablis rapidement.
Les implémentations granulaires des contrôles de sécurité, telles que les attributions de contrôle d’accès en fonction du rôle personnalisées ou les règles de pare-feu étroites, introduisent la complexité et la sensibilité de la configuration, ce qui augmente la probabilité d’une configuration incorrecte. L’atténuation de cet impact potentiel sur la fiabilité en utilisant des règles générales érode les trois principes d’architecture Confiance Zéro.
Compromis : Anciennes versions logicielles. Le pilier sécurité encourage une approche « obtenir le courant, rester à jour » pour les correctifs de sécurité des fournisseurs.
L’application de correctifs de sécurité ou de mises à jour logicielles peut perturber le composant cible, ce qui entraîne une indisponibilité pendant la modification logicielle. Retarder ou éviter la mise à jour corrective peut éviter les risques de fiabilité potentiels, mais il laisse le système non protégé contre les menaces en constante évolution.
La considération précédente s’applique également au code de la charge de travail. Par exemple, il s’applique au code d’application qui utilise des anciennes bibliothèques et des conteneurs qui utilisent d’anciennes images de base. Si la mise à jour et le déploiement du code d’application sont affichés comme un risque de fiabilité non évalué, l’application est exposée à des risques de sécurité supplémentaires au fil du temps.
Compromis de fiabilité avec l’optimisation des coûts
Compromis : augmentation de la redondance ou des déchets de mise en œuvre. Une charge de travail optimisée pour les coûts réduit les ressources sous-utilisées et évite les ressources de surapprovisionnement.
La réplication est une stratégie clé pour la fiabilité. Plus précisément, la stratégie consiste à avoir suffisamment de réplication pour gérer un nombre donné d’échecs de nœud simultanés. La tolérance pour les défaillances de nœud simultanées nécessite un nombre de réplicas plus élevé, ce qui entraîne une augmentation des coûts.
Le surapprovisionnement est une autre technique permettant d’absorber une charge inattendue sur un système, par exemple lors d’un événement de basculement, ce qui peut entraîner un problème de fiabilité. Toute capacité excédentaire qui n’est pas utilisée est considérée comme gaspilleuse.
Si une charge de travail utilise une solution de récupération d’urgence qui satisfait excessivement les objectifs de récupération et de temps de la charge de travail, l’excès entraîne des coûts plus élevés en raison des déchets.
Les déploiements de charge de travail eux-mêmes constituent une source potentielle d’impact sur la fiabilité et cet impact est souvent atténué par la redondance au moment du déploiement via une stratégie de déploiement telle que bleue/verte. Cette duplication temporaire des ressources pendant un déploiement sécurisé augmente généralement le coût global de la charge de travail pendant ces périodes. Les coûts augmentent avec la fréquence des déploiements.
Compromis : investissement accru dans les opérations qui ne sont pas alignés sur les exigences fonctionnelles. Une approche de l’optimisation des coûts consiste à évaluer la valeur fournie par n’importe quelle solution déployée.
Pour obtenir une fiabilité, un système nécessite une observabilité. Les systèmes de surveillance nécessitent le transfert et la collecte des données d’observabilité. À mesure que les fonctionnalités de surveillance augmentent, la fréquence et le volume des données augmentent, ce qui entraîne des coûts supplémentaires.
Les affordances de fiabilité dans les charges de travail nécessitent des tests et des exercices. La conception et l’exécution de tests prennent du temps et des outils potentiellement spécialisés, ce qui entraîne des coûts.
Les charges de travail avec des cibles de fiabilité élevées ont souvent un processus de réponse rapide qui oblige les membres de l’équipe technique à faire partie d’une rotation formelle des appels. Ce processus entraîne des coûts supplémentaires de personnel et des coûts de perte d’opportunités en raison de l’attention qui pourrait être dirigée ailleurs. Il entraîne également des coûts potentiels d’outils pour la gestion du processus.
Les contrats de support avec des fournisseurs de technologies sont un composant clé d’une charge de travail fiable. Les contrats de support qui ne sont pas utilisés parce que le niveau de support est surprovisionné entraîne des déchets.
Compromis de fiabilité avec l’excellence opérationnelle
Compromis : complexité opérationnelle accrue. L’excellence opérationnelle, comme la fiabilité elle-même, hiérarchise la simplicité.
La fiabilité augmente généralement la complexité d’une charge de travail. À mesure que la complexité d’une charge de travail augmente, les éléments opérationnels de la charge de travail peuvent également augmenter pour prendre en charge les composants et processus ajoutés en termes de coordination et de surface de configuration du déploiement.
La mise en place d’une stratégie de surveillance complète pour une charge de travail est une partie essentielle de l’excellence opérationnelle. L’introduction de composants supplémentaires dans une architecture pour implémenter des modèles de conception de fiabilité entraîne davantage de sources de données à gérer, ce qui augmente la complexité de l’implémentation du suivi distribué et de l’observabilité.
L’utilisation de plusieurs régions pour surmonter les contraintes de capacité des ressources d’une seule région et/ou implémenter une architecture active/active augmente la complexité de la gestion opérationnelle de la charge de travail. Cette complexité est introduite par la nécessité de gérer plusieurs régions et la nécessité de gérer la réplication des données entre elles.
Compromis : efforts accrus pour générer des connaissances et des connaissances d’équipe. Le pilier Excellence opérationnelle recommande de conserver et de maintenir un référentiel de documentation pour les procédures et les topologies.
À mesure qu’une charge de travail devient plus robuste grâce à l’ajout de composants et de modèles de fiabilité, il faut plus de temps pour gérer les procédures opérationnelles et la documentation des artefacts.
La formation devient plus complexe à mesure que le nombre de composants de la charge de travail augmente. Cette complexité affecte le temps nécessaire à l’intégration. La complexité augmente également les connaissances nécessaires pour suivre les feuilles de route des produits et les dernières recommandations au niveau du service.
Compromis de fiabilité avec efficacité des performances
Compromis : augmentation de la latence. L’efficacité des performances nécessite qu’un système atteigne des cibles de performances pour les flux d’utilisateurs et de données.
Les modèles de fiabilité incorporent souvent la réplication des données pour survivre à un dysfonctionnement du réplica. La réplication introduit une latence supplémentaire pour les opérations d’écriture de données fiables, qui consomment une partie du budget de performances d’un utilisateur ou d’un flux de données spécifique.
La fiabilité utilise parfois différentes formes d’équilibrage des ressources pour distribuer ou redistribuer la charge aux réplicas sains. Un composant dédié utilisé pour l’équilibrage affecte généralement les performances de la requête ou du processus en cours d’équilibrage.
La distribution de composants entre les limites géographiques ou les zones de disponibilité pour survivre à un impact étendu introduit une latence réseau dans la communication entre les composants qui s’étendent sur ces limites de disponibilité.
Des processus étendus sont utilisés pour observer l’intégrité d’une charge de travail. Bien que la surveillance soit essentielle pour la fiabilité, l’instrumentation peut affecter les performances du système. À mesure que l’observabilité augmente, les performances peuvent diminuer.
Compromis : augmentation du surapprovisionnement. Le pilier Efficacité des performances décourage le surapprovisionnement, au lieu de recommander l’utilisation de ressources suffisantes pour satisfaire la demande.
Les opérations de mise à l’échelle automatique ne sont pas instantanées et ne peuvent donc pas gérer de manière fiable un pic soudain et spectaculaire de la demande qui ne peut pas être mise en forme ou lisse. Par conséquent, le surapprovisionnement via des instances plus volumineuses ou plusieurs instances est une tactique de fiabilité critique pour tenir compte du décalage entre le signal de demande et la création d’approvisionnement afin d’absorber les rafales. La capacité inutilisée compteur les objectifs de l’efficacité des performances.
Parfois, un composant ne peut pas être mis à l’échelle en réaction à la demande, et cette demande n’est pas entièrement prévisible. L’utilisation de grandes instances pour couvrir le pire des cas entraîne le surapprovisionnement des déchets dans des situations qui se trouvent en dehors de ce cas d’usage.
Liens connexes
Explorez les compromis pour les autres piliers :