Compromis de fiabilité

Une charge de travail fiable répond constamment à ses objectifs de fiabilité définis. Il doit atteindre les objectifs de résilience établis, 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 tels événements et maintenir les opérations à un niveau prédéterminé lors d’un dysfonctionnement actif. Même lors d’un sinistre, une charge de travail fiable doit se rétablir à un état spécifique dans un laps de temps donné, tous deux 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 réfléchir à la façon dont les décisions basées sur les principes de conception de fiabilité et les recommandations de la liste de contrôle de révision de la conception pour la fiabilité peuvent influencer les objectifs et les optimisations d’autres piliers. Certaines décisions peuvent bénéficier à certains piliers, mais constituer un compromis pour d’autres. Cet article décrit des exemples de compromis qu’une équipe de charge de travail peut rencontrer lors de la conception de l’architecture et des opérations de charge de travail pour la fiabilité.

Compromis entre la fiabilité et la sécurité

Compromis : augmentation de la surface de la charge de travail. Le pilier Sécurité hiérarchise une surface 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 réduite et contenue est préférable 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, comme les sauvegardes, augmentent la surface d’une charge de travail. Toutefois, ils sont souvent isolés du runtime de la charge de travail. Cela nécessite l’implémentation de contrôles de sécurité supplémentaires, qui peuvent être spécifiques à la solution 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 requêtes résilientes. Cette complexité accrue augmente la surface de la charge de travail en ajoutant de nouveaux composants qui doivent être sécurisés, éventuellement d’une manière qui n’est pas déjà utilisée dans le système. En règle générale, ces composants sont accompagnés d’un code et de bibliothèques supplémentaires pour prendre en charge leur utilisation ou des modèles de fiabilité généraux, ce qui augmente également la surface d’exposition de l’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 faire pression pour que les équipes de charge de travail contournent les contrôles de sécurité optimisés pour l’accès de routine.

  • Les activités de résolution des problèmes peuvent amener l’équipe à désactiver temporairement les protocoles de sécurité, 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 ou les règles de pare-feu, introduisent la complexité et la sensibilité de la configuration, ce qui augmente le risque d’erreur de configuration. L’atténuation de cet impact potentiel sur la fiabilité à l’aide de règles générales érode les trois principes d’architecture Confiance nulle.

Compromis : anciennes versions de logiciels. Le pilier Sécurité encourage une approche « à jour, rester à jour » pour les correctifs de sécurité des fournisseurs.

  • L’application de correctifs de sécurité ou de mises à jour logicielles peut potentiellement perturber le composant cible, ce qui entraîne l’indisponibilité pendant la modification logicielle. Le fait de retarder ou d’éviter la mise à jour corrective peut éviter les risques de fiabilité potentiels, mais cela laisse le système sans protection contre les menaces évolutives.

  • La considération précédente s’applique également au code de la charge de travail. Par exemple, elle s’applique au code d’application qui utilise d’anciennes bibliothèques et conteneurs qui utilisent d’anciennes images de base. Si la mise à jour et le déploiement du code d’application sont vus comme un risque de fiabilité non atténué, l’application est exposée à des risques de sécurité supplémentaires au fil du temps.

Compromis entre fiabilité et optimisation des coûts

Compromis : redondance ou gaspillage accru de l’implémentation. Une charge de travail à coût optimisé réduit les ressources sous-utilisées et évite le surprovisionnement des ressources.

  • La réplication est une stratégie clé pour la fiabilité. Plus précisément, la stratégie consiste à disposer d’une réplication suffisante pour gérer un nombre donné d’échecs de nœud simultanés. La tolérance d’échecs de nœuds simultanés nécessite un nombre de réplica plus élevé, ce qui entraîne une augmentation des coûts.

  • Le surprovisionnement est une autre technique permettant d’absorber une charge inattendue sur un système qui pourrait sinon entraîner un problème de fiabilité. Toute capacité excédentaire qui n’est pas utilisée est considérée comme un gaspillage.

  • Si une charge de travail utilise une solution de récupération d’urgence qui répond de manière excessive aux objectifs de point et de temps de récupération de la charge de travail, l’excès entraîne des coûts plus élevés en raison du gaspillage.

  • Les déploiements de charges de travail sont eux-mêmes 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 comme le bleu/vert. 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 : Augmentation des investissements dans les opérations qui ne sont pas alignées sur les exigences fonctionnelles. Une approche de l’optimisation des coûts consiste à évaluer la valeur fournie par toute solution déployée.

  • Pour garantir la fiabilité, un système nécessite l’observabilité. Les systèmes de surveillance nécessitent le transfert et la collecte des données d’observabilité. À mesure que les capacité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 des tests prennent du temps et des outils potentiellement spécialisés, ce qui entraîne des coûts.

  • Les charges de travail avec des objectifs de fiabilité élevés ont souvent un processus de réponse rapide qui nécessite que les membres de l’équipe technique participent à une rotation formelle sur appel. Ce processus entraîne des coûts supplémentaires de personnel et des coûts de perte d’opportunité en raison de l’attention qui pourrait être dirigée ailleurs. Il entraîne également des coûts d’outils potentiels pour la gestion du processus.

  • Les contrats de support avec des fournisseurs de technologie 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înent un gaspillage.

Compromis entre fiabilité et excellence opérationnelle

Compromis : complexité opérationnelle accrue. L’excellence opérationnelle, comme la fiabilité elle-même, donne la priorité à 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 du déploiement et de surface de configuration.

  • Disposer d’une stratégie de surveillance complète pour une charge de travail est un élément clé 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 une sensibilisation de l’é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é, la mise à jour des procédures opérationnelles et de la documentation des artefacts prend plus de temps.

  • L’entraînement devient plus complexe à mesure que le nombre de composants dans la charge de travail augmente. Cette complexité affecte le temps nécessaire à l’intégration et augmente les connaissances nécessaires pour suivre les feuilles de route des produits et les conseils de niveau de service.

Compromis entre la fiabilité et l’efficacité des performances

Compromis : latence accrue. L’efficacité des performances nécessite un système pour atteindre les objectifs de performances pour les flux d’utilisateurs et de données.

  • Les modèles de fiabilité intègrent souvent la réplication des données pour survivre à réplica dysfonctionnement. La réplication introduit une latence supplémentaire pour des opérations d’écriture de données fiables, qui consomment une partie du budget de performances pour un utilisateur ou 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 demande 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 délimité introduit une latence réseau dans la communication entre les composants qui couvrent 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 surprovisionnement. Le pilier Efficacité des performances décourage le surprovisionnement, en recommandant plutôt l’utilisation d’un nombre suffisant de ressources pour répondre à 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 dramatique de la demande qui ne peut pas être mis en forme ou lissé. Par conséquent, le surprovisionnement via des instances plus grandes ou plusieurs instances est une tactique de fiabilité critique pour prendre en compte le décalage entre le signal de demande et la création de l’offre. La capacité inutilisée contrecarrer les objectifs d’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 d’instances volumineuses pour couvrir les pires cas entraîne un gaspillage de surapprovisionnement dans des situations qui ne sont pas dans ce cas d’usage.

Explorez les compromis pour les autres piliers :