Compromis Efficacité des performances
Une charge de travail qui répond à ses objectifs de performances sans surprovisionnement est efficace. L’objectif de l’efficacité des performances est d’avoir suffisamment d’offre pour gérer la demande à tout moment. Les principales stratégies d’efficacité des performances incluent l’utilisation appropriée des optimisations de code, des modèles de conception, de la planification de la capacité et de la mise à l’échelle. Des objectifs de performances clairs et des tests sous-tendent ce pilier.
Pendant le processus de négociation des objectifs de performances d’une charge de travail et de la conception d’une charge de travail pour l’efficacité des performances, il est important de savoir comment les principes de conception de l’efficacité des performances et les recommandations de la liste de vérification de la révision de conception pour l’efficacité des performances peuvent affecter les objectifs d’optimisation d’autres piliers. Certaines décisions d’efficacité des performances peuvent bénéficier de certains piliers, mais constituent des compromis pour d’autres. Cet article répertorie les 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 améliorer l’efficacité des performances.
Compromis d’efficacité des performances avec fiabilité
Compromis : réduction de la réplication et augmentation de la densité. Une pierre angulaire de la fiabilité garantit la résilience en utilisant la réplication et en limitant le rayon d’explosion des dysfonctionnements.
Charge de travail qui atteint l’efficacité en retardant la mise à l’échelle jusqu’au dernier moment responsable répond étroitement à la demande, mais est vulnérable aux défaillances de nœud imprévues et aux retards de mise à l’échelle.
La consolidation des ressources de charge de travail peut utiliser une capacité excédentaire et améliorer l’efficacité. Toutefois, il augmente le rayon d’explosion d’un dysfonctionnement dans le composant ou la plateforme d’application colocalisé.
La mise à l’échelle ou la mise à l’échelle pour réduire la capacité excédentaire peut laisser une charge de travail sous-approvisionnée pendant les pics d’utilisation, ce qui entraîne des interruptions de service en raison d’un manque d’approvisionnement.
Compromis : complexité accrue. La fiabilité hiérarchise la simplicité.
L’utilisation de la mise à l’échelle automatique pour équilibrer l’offre de charge de travail par rapport à la demande introduit une variabilité dans la topologie de la charge de travail et ajoute un composant qui doit fonctionner correctement pour que le système soit fiable. La mise à l’échelle automatique entraîne le déclenchement d’événements de cycle de vie d’application supplémentaires, tels que le démarrage et l’arrêt.
Le partitionnement et le partitionnement des données permettent d’éviter les problèmes de performances dans les jeux de données volumineux ou fréquemment consultés. Toutefois, l’implémentation de ces modèles augmente la complexité, car la cohérence (éventuelle) doit être maintenue entre des ressources supplémentaires.
La dénormalisation des données pour les modèles d’accès optimisés peut améliorer les performances, mais elle introduit une complexité, car plusieurs représentations de données doivent être synchronisées.
Les modèles de conception cloud centrés sur les performances nécessitent parfois l’introduction de composants supplémentaires. L’utilisation de ces composants augmente la surface d’exposition de la charge de travail. Les composants doivent ensuite être fiables pour assurer la fiabilité de l’ensemble de la charge de travail. Voici quelques exemples :
- Bus de messages pour le nivellement de charge, qui introduit un composant critique et avec état.
- Équilibreur de charge pour les réplicas automatiquement mis à l’échelle, qui nécessite une opération fiable et l’inscription de réplicas.
- Décharger des données dans des caches, ce qui nécessite des approches d’invalidation de cache fiables.
Compromis : Test et observation sur les environnements actifs. Éviter l’utilisation inutile des systèmes de production est une approche d’auto-préservation et d’évitement des risques pour la fiabilité.
Les tests de performances dans des environnements actifs, comme l’utilisation de transactions synthétiques, entraînent le risque de provoquer des dysfonctionnements en raison des actions de test ou des configurations.
Les charges de travail doivent être instrumentées avec un système de surveillance des performances des applications (APM) qui permet aux équipes d’apprendre à partir d’environnements actifs. Les outils APM sont installés et configurés dans le code de l’application ou dans l’environnement d’hébergement. Une utilisation incorrecte, un dépassement des limitations ou une mauvaise configuration de l’outil peut compromettre ses fonctionnalités et sa maintenance, ce qui peut compromettre la fiabilité.
Compromis sur l’efficacité des performances avec la sécurité
Compromis : Réduction des contrôles de sécurité. Les contrôles de sécurité sont établis sur plusieurs couches, parfois redondantes, pour fournir une défense en profondeur.
Une stratégie d’optimisation des performances consiste à supprimer ou à contourner les composants ou processus qui contribuent aux retards dans un flux, en particulier lorsque leur temps de traitement n’est pas justifié. Toutefois, cette stratégie peut compromettre la sécurité et doit être accompagnée d’une analyse approfondie des risques. Penchez-vous sur les exemples suivants :
La suppression du chiffrement en transit ou au repos pour améliorer les vitesses de transfert expose les données à des violations potentielles d’intégrité ou de confidentialité.
La suppression ou la réduction de l’analyse de la sécurité ou de l’inspection des outils pour réduire les temps de traitement peuvent compromettre la confidentialité, l’intégrité ou la disponibilité que ces outils protègent.
La diminution de la fréquence des correctifs de sécurité pour limiter l’impact sur les performances peut laisser une charge de travail plus vulnérable aux menaces émergentes.
La suppression des règles de pare-feu des flux réseau pour améliorer la latence du réseau peut permettre une communication indésirable.
La réduction de la validation des données ou des contrôles de sécurité du contenu pour un traitement plus rapide des données peut compromettre l’intégrité des données, en particulier si les entrées sont malveillantes.
L’utilisation de moins d’entropie dans le chiffrement ou les algorithmes de hachage, par exemple sur le vecteur d’initialisation (IV), est plus efficace, mais facilite le chiffrement.
Compromis : augmentation de la surface de la charge de travail. La 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é.
Les modèles de conception cloud centrés sur les performances nécessitent parfois l’introduction de composants supplémentaires. Ces composants augmentent la surface d’exposition de la charge de travail. Les nouveaux composants doivent être sécurisés, éventuellement de manière à ce qu’ils ne soient pas déjà utilisés dans le système, et ils augmentent souvent l’étendue de conformité. Tenez compte de ces composants couramment ajoutés :
Bus de messages pour le nivellement de charge
Équilibreur de charge pour les réplicas automatiquement mis à l’échelle
Déchargement des données vers des caches, des réseaux de distribution d’applications ou des réseaux de distribution de contenu
Déchargement du traitement vers des travaux en arrière-plan ou même un calcul client
Compromis : suppression de la segmentation. Le pilier sécurité hiérarchise la segmentation forte pour permettre des contrôles de sécurité affinés et réduire le rayon d’explosion.
Le partage de ressources grâce à une densité accrue est une approche permettant d’améliorer l’efficacité. Les exemples incluent des scénarios multilocataires ou la combinaison d’applications disparates dans une architecture sur une plateforme d’application commune. La densité accrue peut entraîner les problèmes de sécurité suivants :
Risque accru de déplacement latéral non autorisé d’un locataire à un autre.
Une identité de charge de travail partagée qui enfreint le principe du privilège minimum et masque les pistes d’audit individuelles dans les journaux d’accès.
Les contrôles de sécurité de périmètre, par exemple les règles de réseau, qui sont réduites pour couvrir tous les composants colocalisés, donnant aux composants individuels plus d’accès que nécessaire.
Compromission de l’hôte de la plateforme d’application ou d’un composant individuel en raison d’un rayon d’explosion plus grand. Cette augmentation est due à un accès plus facile aux composants colocalisés.
Colocalisation de composants disparates conduisant à davantage de composants dans la portée de la conformité en raison de leur hôte partagé.
Compromis d’efficacité des performances avec l’optimisation des coûts
Compromis : Trop d’offre pour la demande. L’optimisation des coûts et l’efficacité des performances hiérarchisent l’offre suffisante pour répondre à la demande.
Le surprovisionnement est un risque lorsque les équipes tentent d’atténuer les problèmes de performances dans une charge de travail. Voici quelques causes courantes de surprovisionnement :
- La planification initiale de la capacité a été mal jugée, car l’équipe s’est concentrée uniquement sur les estimations de charge maximale, en négligeant les stratégies de lissage de pointe dans la conception de la charge de travail.
- Montée ou sortie d’une ressource lors d’une étape de résolution des problèmes d’une réponse aux incidents.
La mise à l’échelle automatique peut être mal configurée. Voici quelques exemples de mise à l’échelle automatique mal configurée :
- Le scale-up avec des modifications minimales de la demande ou une période de refroidissement prolongée peut entraîner plus de coûts que la demande nécessite.
- L’utilisation de la mise à l’échelle automatique sans limite supérieure définie peut entraîner une croissance incontrôlée en raison de dysfonctionnements ou d’abus du système et de dépasser les exigences de charge de travail attendues.
Le développement dans plusieurs régions peut améliorer les performances en rapprochant les charges de travail de l’utilisateur et en évitant les contraintes de capacité de ressources temporaires. Toutefois, cette topologie ajoute également de la complexité et de la duplication des ressources.
Compromis : Plus de composants. Une technique d’optimisation des coûts consiste à consolider avec un plus petit nombre de ressources en augmentant la densité, en supprimant la duplication et en colocalisant les fonctionnalités.
Les modèles de conception cloud centrés sur les performances nécessitent parfois l’introduction de composants supplémentaires. Ces composants supplémentaires entraînent généralement une augmentation globale des coûts pour la charge de travail. Par exemple, vous pouvez inclure un bus de messages pour le nivellement de charge ou le déchargement des tâches vers une application ou un réseau de distribution de contenu pour améliorer les temps de réponse.
La segmentation des ressources permet à différentes parties d’une charge de travail d’avoir des caractéristiques de performances distinctes, ce qui permet un réglage indépendant pour chaque segment. Toutefois, il peut augmenter le coût total de possession, car il nécessite plusieurs segments optimisés plutôt qu’un composant généralisé unique.
Compromis : augmentation de l’investissement sur les articles qui ne sont pas alignés sur les exigences fonctionnelles. Une approche de l’optimisation des coûts consiste à évaluer la valeur fournie par toute solution déployée.
Les services et références SKU Premium peuvent aider une charge de travail à atteindre les objectifs de performances. Ces services coûtent généralement plus cher et peuvent fournir des fonctionnalités supplémentaires. Ils peuvent être sous-utilisés si la plupart des fonctionnalités Premium ne sont pas utilisées spécifiquement pour répondre aux objectifs de performances.
Une charge de travail performante nécessite des données de télémétrie pour l’observabilité qui doivent être transférées et stockées. Une augmentation des données de télémétrie des performances collectées peut augmenter le coût du transfert et du stockage des données de télémétrie.
Les activités de test de performances ajoutent des coûts qui ne sont pas associés à la valeur du système de production. Voici quelques exemples de coûts de test des performances :
- Instanciation d’environnements dédiés aux tests centrés sur les performances.
- Utilisation d’outils de performances spécialisés.
- Passez du temps à exécuter les tests.
La formation des membres de l’équipe pour les tâches d’optimisation des performances spécialisées ou le paiement des services d’optimisation des performances ajoute au coût d’une charge de travail.
Compromis sur l’efficacité des performances avec l’excellence opérationnelle
Compromis : réduction de l’observabilité. L’observabilité est nécessaire pour fournir une charge de travail avec des alertes significatives et vous aider à garantir la réussite de la réponse aux incidents.
La réduction du volume des journaux et des métriques pour réduire le temps de traitement consacré à la collecte des données de télémétrie au lieu d’autres tâches réduit l’observabilité globale du système. Voici quelques exemples d’observabilité réduite résultante :
- Elle limite les points de données utilisés pour générer des alertes significatives.
- Elle entraîne des lacunes dans la couverture des activités de réponse aux incidents.
- Elle limite l’observabilité dans les interactions et limites sensibles à la sécurité ou à la conformité.
Lorsque des modèles de conception des performances sont implémentés, la complexité de la charge de travail augmente souvent. Les composants sont ajoutés aux flux critiques. La stratégie de surveillance de la charge de travail et la surveillance des performances doivent inclure ces composants. Lorsqu’un flux s’étend sur plusieurs composants ou limites d’application, la complexité de la surveillance des performances de ce flux augmente. Les performances de flux doivent être corrélées entre tous les composants interconnectés.
Compromis : complexité accrue des opérations. Un environnement complexe a des interactions plus complexes et une probabilité plus élevée d’avoir un impact négatif sur les opérations de routine, ad hoc et d’urgence.
Améliorer l’efficacité des performances en augmentant la densité élève le risque dans les tâches opérationnelles. Une erreur dans un seul processus peut avoir un grand rayon d’explosion.
À mesure que les modèles de conception des performances sont implémentés, ils influencent les procédures opérationnelles telles que les sauvegardes, les rotations de clés et les stratégies de récupération. Par exemple, le partitionnement et le partitionnement des données peuvent compliquer les tâches de routine lorsque les équipes essaient de s’assurer que ces tâches n’affectent pas la cohérence des données.
Compromis : stress culturel. L’excellence opérationnelle est enracinée dans une culture de l’impétence, du respect et de l’amélioration continue.
L’analyse de la cause racine des problèmes de performances identifie les lacunes dans les processus ou les implémentations qui nécessitent une correction. L’équipe doit considérer l’exercice comme une opportunité d’apprentissage. Si les membres de l’équipe sont accusés de problèmes, le moral peut être affecté.
Les processus de routine et ad hoc peuvent affecter les performances de la charge de travail. Il est souvent considéré comme préférable d’effectuer ces activités pendant les heures creuses. Toutefois, les heures creuses peuvent être gênantes ou en dehors des heures normales pour les membres de l’équipe responsables ou qualifiés de ces tâches.
Liens connexes
Explorez les compromis pour les autres piliers :