Compromis d'efficacité de la performance

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.

Lorsque vous négociez des objectifs de performances et concevez une charge de travail pour l’efficacité des performances, réfléchissez à la façon dont les décisions basées sur les principes de conception de l’efficacité des performances et les recommandations de la liste de contrôle de révision de la conception peuvent influencer les objectifs et optimisations d’autres piliers. Certaines décisions d’efficacité des performances bénéficient d’un pilier, mais constituent des compromis pour un autre. 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 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.

  • La charge de travail qui atteint l’efficacité en retardant la mise à l’échelle jusqu’au dernier moment opportun répond de manière étroite à la demande, mais reste vulnérable aux défaillances imprévues des nœuds et aux retards dans la 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 co-localisé.

  • Réduire la capacité excédentaire par une mise à l'échelle verticale ou horizontale peut laisser une charge de travail sous-approvisionnée lors des pics d’utilisation, entraînant des interruptions de service en raison d’un manque de ressources.

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 des jeux de données volumineux ou fréquemment consultés, mais ils augmentent 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 autodimensionnées, qui nécessite un fonctionnement fiable et l'enrôlement des 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 entre la performance 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 retardent un flux lorsque leur temps de traitement n’est pas justifié. Cette stratégie peut compromettre la sécurité et nécessite 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 contenue pour réduire les vecteurs d’attaque et diminuer 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 à échelle automatique

  • 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é périmétriques, tels que les règles de réseau, sont réduits pour couvrir tous les composants colocalisés, permettant aux composants individuels d'avoir un accès plus large 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.

  • Regrouper des composants hétérogènes conduit à plus de composants entrant dans le cadre de la conformité à cause de l'hébergement commun.

Compromis : État de sécurité obsolète. Le pilier Sécurité nécessite des décisions d’autorisation, de contenu et d’approbation pour refléter l’état actuel du système.

La mise en cache et la distribution de périphérie améliorent les performances en fournissant des réponses à partir d’une copie plutôt que de les revalider. Il est d'autant plus probable qu'une copie reflétera un état de sécurité qui n'est plus valide lorsque son temps de vie est long et que son contrôle d'invalidation est faible. Les résultats précomputés présentent un risque similaire, mais contrairement aux caches, ils n’ont généralement aucun mécanisme de durée de vie ou d’invalidation intégré et restent obsolètes jusqu’à ce que le déclencheur de calcul suivant se déclenche.

  • Les jetons d’authentification mis en cache, les décisions d’autorisation ou les données de session peuvent autoriser l’accès une fois qu’un utilisateur est désactivé, un rôle est révoqué, un jeton est pivoté, des revendications ou des autorisations ont changé ou des stratégies d’accès conditionnel ont été mises à jour. La fenêtre entre la révocation et l’expiration du cache est une fenêtre d’accès non autorisé.

  • Le contenu fourni à partir d’un CDN, d’un cache de passerelle d’API ou d’un cache de navigateur peut continuer à traiter les données qui ont été retirées ou reclassifiées à l’origine. Les données modifiées pour des raisons légales peuvent également être conservées dans les réponses mises en cache une fois qu’elles ont été corrigées à la source. Cette persistance peut violer les exigences en matière de gestion, de rétention ou de confidentialité des données.

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.
    • Augmentation ou extension d'une ressource lors d'une étape de dépannage 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 :

    • L'augmentation de l'échelle avec des modifications minimales de la demande ou une période de refroidissement prolongée peut engendrer des coûts plus élevés que ce que la demande requiert.
    • 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 Premium et les SKU peuvent aider un workload à atteindre les objectifs de performance. 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 consacrer moins de temps de traitement à la collecte de données de télémétrie réduit l’observabilité globale. Voici quelques exemples :

    • Moins de points de données pour générer des alertes significatives.
    • Lacunes dans la couverture des activités de réponse aux incidents.
    • Observabilité limitée dans les interactions et limites sensibles à la sécurité ou à la conformité.
  • Les modèles de conception des performances ajoutent souvent de la complexité en introduisant des composants dans des flux critiques. La stratégie de surveillance de la charge de travail doit inclure ces composants. Lorsqu’un flux s’étend sur plusieurs composants ou limites d’application, les performances doivent être corrélées entre elles.

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 : le stress culturel. L’excellence opérationnelle est enracinée dans une culture d'absence de blâme, de respect et d’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.

Explorez les compromis pour les autres piliers :