Partager via


Compromis en matière d’efficacité des performances pour les charges de travail Power Platform

Une charge de travail qui atteint ses objectifs de performances sans surprovisionnement est efficace. Les stratégies clés pour l’efficacité des performances incluent l’utilisation appropriée des optimisations de code, des modèles de conception et de la planification de la capacité. Des objectifs de performance clairs et des tests sont à la base de ce pilier.

Au cours de la phase de conception d’une charge de travail, il est important de réfléchir à la manière dont les décisions basées sur les principes de conception de l’efficacité des performances et les recommandations dans la liste de contrôle de l’examen de conception pour l’efficacité des performances peuvent influencer les objectifs et les efforts d’optimisation d’autres piliers. Certaines décisions peuvent profiter à certains piliers, mais représentent 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 améliorer l’efficacité des performances.

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

Compromis : réduction de la réplication et augmentation de la densité. L’une des pierres angulaires de la fiabilité est d’assurer la résilience en utilisant la réplication et en limitant le rayon d’explosion des dysfonctionnements.

  • La consolidation des ressources de charge de travail permet d’utiliser la capacité excédentaire et d’améliorer l’efficacité. Cependant, il augmente le rayon d’explosion d’un dysfonctionnement dans le composant ou la plate-forme d’application colocalisé.

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

  • Le partitionnement et le cloisonnement des données permettent d’éviter les problèmes de performances dans les ensembles de données volumineux ou fréquemment consultés. Cependant, la mise en œuvre 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 axés sur les performances nécessitent parfois l’introduction de composants supplémentaires. L’utilisation de ces composants augmente la surface de la charge de travail. Les composants doivent alors eux-mêmes être fiabilisés pour fiabiliser l’ensemble de la charge de travail.

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

  • Les tests de performance dans des environnements actifs comportent le risque de provoquer des dysfonctionnements dus aux actions ou aux 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 mauvaise utilisation, le dépassement des limites ou une mauvaise configuration de l’outil peuvent compromettre sa fonctionnalité et sa maintenance, ce qui peut nuire à sa 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 de manière redondante, pour assurer une défense en profondeur.

Une stratégie d’optimisation des performances consiste à supprimer ou à contourner les composants ou processus qui contribuent aux retards d’un flux, en particulier lorsque leur temps de traitement n’est pas justifié. Cependant, cette stratégie peut compromettre la sécurité et doit s’accompagner d’une analyse approfondie des risques. Prenez en compte 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 des outils d’analyse ou d’inspection de sécurité pour réduire les délais de traitement peut compromettre la confidentialité, l’intégrité ou la disponibilité que ces outils protègent.

  • 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.

Compromis : Augmentation de la surface de charge de travail. La sécurité privilégie une surface réduite et contenue afin de minimiser les vecteurs d’attaque et de réduire la gestion des contrôles de sécurité.

Les modèles de conception cloud axés sur les performances nécessitent parfois l’introduction de composants supplémentaires. Ces composants augmentent la surface 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 la portée de la conformité. Considérez ces composants couramment ajoutés :

  • Présentation de plusieurs méthodes différentes de gestion de la logique métier, tels que les flux de cloud et les plug-ins low-code, en fonction des exigences de performance de chaque tâche.

  • Décharger le traitement sur des tâches en arrière-plan ou même le calcul client.

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

Le partage des ressources est une approche pour améliorer l’efficacité. Il augmente la densité pour optimiser l’utilisation de la capacité. Par exemple, réutiliser des plug-ins low-code dans plusieurs applications canevas et flux de cloud. L’augmentation de la densité peut entraîner les problèmes de sécurité suivants :

  • Une identité de charge de travail partagée qui viole le principe du moindre privilège et masque les pistes d’audit individuelles dans les journaux d’accès.

  • Les contrôles de sécurité périmétriques, par exemple les règles de réseau, qui sont réduits pour couvrir tous les composants colocalisés, donnant aux composants individuels plus d’accès que nécessaire.

Compromis entre l’efficacité de la performance et l’excellence opérationnelle

Compromis : observabilité réduite. La surveillance est nécessaire pour fournir à une charge de travail des alertes significatives et garantir une réponse réussie aux incidents.

  • La réduction du volume de journaux et de métriques pour réduire le temps de traitement consacré à la collecte de 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 la réduction de l’observabilité qui en résulte :

    • Il 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 en cas d’incident.
    • Il limite l’observabilité dans les interactions et les limites sensibles à la sécurité ou à la conformité.
  • Lorsque des modèles de conception de performances sont mis en œuvre, la complexité de la charge de travail augmente souvent. Des 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’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.

  • Au fur et à mesure que les modèles de conception des performances sont mis en œuvre, 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 la fragmentation 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 d’irréprochabilité, de respect et d’amélioration continue.

  • La réalisation d’une analyse des causes profondes des problèmes de performance permet d’identifier les lacunes dans les processus ou les implémentations qui nécessitent une correction. L’équipe doit considérer l’exercice comme une occasion d’apprentissage. Si les membres de l’équipe sont blâmés pour les problèmes, le moral peut être affecté.

  • Les processus routiniers 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 en dehors des heures de pointe. Cependant, les heures creuses peuvent être gênantes ou en dehors des heures normales pour les membres de l’équipe qui sont responsables ou compétents dans ces tâches.

Compromis entre l’efficacité des performances et l’optimisation de l’expérience

Compromis : diminution de l’engagement des utilisateurs. Le pilier Optimisation de l’expérience donne la priorité aux expériences utilisateur les plus attrayantes.

  • L’optimisation des performances donne la priorité à l’utilisation des fonctionnalités de la plateforme plutôt qu’aux personnalisations, qui dépriorisent les composants personnalisés qui pourraient conduire à une expérience utilisateur plus attrayante.

  • L’optimisation des performances peut trop se concentrer sur la minimisation de la complexité, ce qui déclasse les fonctionnalités au profit d’expériences utilisateur plus attrayantes, telles que les composants personnalisés et les intégrations.

  • Le développement de l’interface utilisateur se fait souvent par itérations et cycles de livraison plus rapides, ce qui peut rendre plus difficile l’amélioration continue des performances.