Compromis liés à l’efficacité des performances

Une charge de travail qui répond à ses objectifs de performances sans surapprovisionnement est efficace. L’objectif de l’efficacité des performances est d’avoir juste assez d’offre pour gérer la demande à tout moment. Les stratégies clés pour l’efficacité des performances incluent l’utilisation correcte des optimisations du code, des modèles de conception, de la planification de la capacité et de la mise à l’échelle. Des objectifs de performances et des tests clairs sous-tendent ce pilier.

Pendant le processus de négociation des objectifs de performances d’une charge de travail et de conception d’une charge de travail pour l’efficacité des performances, il est important de savoir comment les principes de conception d’efficacité des performances et les recommandations de la liste de contrôle de la révision de la conception pour l’efficacité des performances peuvent affecter les objectifs d’optimisation d’autres piliers. Certaines décisions en matière d’efficacité des performances peuvent profiter à certains piliers, mais constituer des compromis pour d’autres. Cet article répertorie 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 une efficacité des performances.

Compromis entre efficacité des performances et fiabilité

Compromis : réplication réduite et densité accrue. L’une des pierres angulaires de la fiabilité consiste à garantir la résilience en utilisant la réplication et en limitant le rayon d’explosion des dysfonctionnements.

  • Une charge de travail qui obtient de 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 et aux retards de mise à l’échelle imprévus.

  • La consolidation des ressources de charge de travail peut utiliser une capacité excédentaire et améliorer l’efficacité. Toutefois, elle augmente le rayon d’explosion d’un dysfonctionnement dans le composant colocalisé ou la plateforme d’application.

  • La mise à l’échelle ou la mise à l’échelle vers le bas 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 approvisionnement insuffisant.

Compromis : complexité accrue. La fiabilité privilégie la simplicité.

  • L’utilisation de la mise à l’échelle automatique pour équilibrer l’offre de charge de travail et 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’un plus grand nombre d’événements de cycle de vie d’application, comme 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 sur des ressources supplémentaires.

  • La dénormalisation des données pour des modèles d’accès optimisés peut améliorer les performances, mais elle introduit de la 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 alors être eux-mêmes rendus fiables pour que l’ensemble de la charge de travail reste fiable. Voici quelques exemples :

    • Bus de messages pour le nivellement de charge, qui introduit un composant critique avec état.
    • Un équilibreur de charge pour les réplicas mis à l’échelle automatiquement, qui nécessite un fonctionnement fiable et l’inscription de réplicas.
    • Déchargement des données dans les caches, ce qui nécessite des approches fiables d’invalidation du cache.

Compromis : test et observation sur les environnements actifs. Éviter l’utilisation inutile des systèmes de production est une approche d’auto-conservation pour la fiabilité.

  • Les tests de performances dans des environnements actifs, comme l’utilisation de transactions synthétiques, comportent le risque de provoquer des dysfonctionnements en raison des actions ou des configurations de test.

  • 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 des 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 peuvent compromettre ses fonctionnalités et sa maintenance, ce qui peut compromettre la fiabilité.

Compromis entre l’efficacité des performances et 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 s’accompagner 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 de l’intégrité ou de la 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 peut compromettre la confidentialité, l’intégrité ou la disponibilité que ces outils protègent.

  • La diminution de la fréquence des mises à jour correctives de sécurité pour limiter l’impact sur les performances peut rendre 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 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 les algorithmes de chiffrement ou de hachage, par exemple, sur le vecteur d’initialisation (IV), est plus efficace, mais facilite le chiffrement.

Compromis : augmentation de la surface d’exposition de la charge de travail. La sécurité donne la priorité à une surface d’exposition réduite et contenue pour réduire les vecteurs d’attaque et 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 d’une manière qui n’est pas déjà utilisée dans le système, et ils augmentent souvent l’étendue de conformité. Considérez ces composants couramment ajoutés :

  • Un bus de messages pour le nivellement de charge

  • Un équilibreur de charge pour les réplicas mis à l’échelle automatiquement

  • Déchargement de 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 vers le calcul du client

Compromis : suppression de la segmentation. Le pilier Sécurité donne la priorité à une segmentation forte pour permettre des contrôles de sécurité affinés et réduire le rayon d’explosion.

Le partage de ressources est une approche permettant d’améliorer l’efficacité. Il augmente la densité pour optimiser l’utilisation de la capacité. Les exemples incluent des scénarios multilocataires ou la combinaison d’applications disparates dans une architecture sur une plateforme d’application commune. L’augmentation de la densité 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 viole le principe des privilèges 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 réseau, qui sont réduits 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 important. Cette augmentation est due à la facilité d’accès aux composants colocalisés.

  • Colocalisation de composants disparates, ce qui entraîne un plus grand nombre de composants dans l’étendue de la conformité en raison de leur hôte partagé.

Compromis sur l’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 donnent la priorité d’avoir juste assez d’offre pour répondre à la demande.

  • Le surapprovisionnement 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 surapprovisionnement :

    • 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, négligeant les stratégies de lissage des pics dans la conception de la charge de travail.
    • Mise à l’échelle d’une ressource au cours d’une étape de résolution des problèmes d’une réponse à un incident.
  • La mise à l’échelle automatique peut être mal configurée. Voici quelques exemples de mise à l’échelle automatique mal configurée :

    • Un 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’en exige.
    • 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 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 éviter les contraintes temporaires de capacité des ressources. Toutefois, cela 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 du coût global de la charge de travail. Par exemple, vous pouvez inclure un bus de messages pour les tâches de nivellement de charge ou de déchargement 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 les coûts de propriété totaux, car il nécessite plusieurs segments optimisés plutôt qu’un seul composant généralisé.

Compromis : augmentation de l’investissement sur les éléments 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 premium et les références SKU 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. Elles peuvent être sous-utilisées si la plupart des fonctionnalités Premium ne sont pas utilisées spécifiquement pour atteindre les 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 de 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 de performances :

    • Instanciation d’environnements dédiés aux tests centrés sur les performances.
    • Utilisation d’outils de performances spécialisés.
    • Passer du temps à exécuter les tests.
  • La formation des membres de l’équipe pour des tâches d’optimisation des performances spécialisées ou le paiement de services de réglage des performances augmente le coût d’une charge de travail.

Compromis entre l’efficacité des performances et l’excellence opérationnelle

Compromis : observabilité réduite. L’observabilité est nécessaire pour fournir à une charge de travail des alertes significatives et 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 de l’observabilité réduite résultante :

    • Elle limite les points de données utilisés pour générer des alertes significatives.
    • Cela entraîne des lacunes dans la couverture des activités de réponse aux incidents.
    • Il 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 supervision de la charge de travail et l’analyse des performances doivent inclure ces composants. Lorsqu’un flux couvre 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 plus grande probabilité d’impact négatif des opérations de routine, ad hoc et d’urgence.

  • L’amélioration de l’efficacité des performances en augmentant la densité augmente 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’incrimination, 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 blâmés pour des 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 qui sont responsables de ces tâches ou qui sont qualifiés dans ces tâches.

Explorez les compromis pour les autres piliers :