Améliorer l’efficacité au moyen de l’optimisation
Améliorez l’efficacité du système dans les cibles du niveau de performance définies pour augmenter la valeur de la charge de travail. |
---|
Les cibles définies au cours de la phase initiale sont basées sur un niveau raisonnable d’expérience utilisateur, compte tenu de diverses contraintes. Vous devez réévaluer et ajuster les cibles pour améliorer l’expérience. L’amélioration de l’expérience nécessite une compréhension claire de la façon dont le système est utilisé, de la façon dont il a évolué et de la façon dont la plateforme ou la technologie a changé au fil du temps. Le cycle de surveillance, d’optimisation, de test et de déploiement est un processus continu.
Les efforts d’optimisation de l’efficacité permettent à une charge de travail de fonctionner avec une consommation de ressources réduite. Ils peuvent entraîner un état d’approvisionnement excessif de la charge de travail avec une capacité de rechange. Utilisez cette capacité pour améliorer la fiabilité du système. Éliminez la capacité d’améliorer le coût du système. Ou réaffectez la capacité pour prendre en charge de nouvelles fonctionnalités de produit sur les ressources existantes.
Lorsque le système gagne en efficacité, profitez-en pour définir et gérer de nouvelles cibles de performances.
Exemple de scénario
L’équipe d’ingénierie RH de Contoso prend en charge les intégrations personnalisées dans le système d’information sur les ressources humaines (HRIS) de l’organisation. Ces intégrations incluent des intégrations financières pour la paie, des statistiques d’embauche pour la déclaration de droit du travail du gouvernement, etc. La plupart des intégrations sont des fonctions Azure écrites en C# qui sont hébergées dans un cluster Kubernetes avec Azure Arc dans le centre de données de l’organisation. La plupart des travaux ont bien été exécutés, mais en raison d’un retard de traitement, l’équipe s’inquiète de certains travaux, car des données critiques ne sont parfois pas disponibles lorsque le directeur RH en a besoin.
Hiérarchiser les optimisations des performances
Allouez des cycles dédiés pour l’optimisation des performances afin de répondre aux exigences non fonctionnelles et aux optimisations dans les domaines fonctionnels. Les cibles de cette optimisation sont les ressources, le code, la conservation des données, les requêtes de base de données, etc.
En adoptant cette approche, vous pouvez créer une culture d’optimisation basée sur les performances. Vous confiez à l’équipe les tâches de surveillance proactive des modèles de performances et d’ajustement de l’application.
Problématique de Contoso
- L’équipe travaille plutôt de manière décousue, et le retard accumulé est important. La plupart du temps, elle travaille en mode « tirer et oublier » lors de l’écriture et du déploiement d’intégrations. Les intégrations sont écrites et déployées, puis l’équipe passe à la tâche suivante.
- L’équipe a été appelée pour résoudre des problèmes de soutien aux incidents critiques qui sont souvent dus au fait que les hauts dirigeants n’ont pas accès aux données en temps voulu.
- L’équipe est bien consciente que des améliorations doivent être apportées, mais n’a pas hiérarchisé les modifications nécessaires.
Application de l’approche et résultats
- L’équipe alloue à présent 20 % de chaque sprint pour la dette technique et d’autres activités d’optimisation. Ainsi, l’équipe d’ingénierie gagne du temps pour hiérarchiser et traiter les domaines critiques et d’autres domaines où l’impact peut être le plus significatif.
- En adoptant cette approche, l’équipe peut consacrer le temps nécessaire pour résoudre les problèmes de performances qui provoquent des retards dans le traitement des données.
Rechercher des améliorations de conception
Améliorez l’architecture avec de nouveaux modèles de conception et composants afin d’optimiser les performances par des moyens qui n’avaient pas été envisagés précédemment en raison d’un temps ou d’un budget limité.
De nouvelles conceptions et composants peuvent optimiser le système, améliorer l’expérience utilisateur et réaliser des économies à long terme. Par exemple, vous pouvez mettre en cache ou ajouter un composant réseau de distribution de contenu.
Problématique de Contoso
- L’équipe utilise depuis plusieurs années Azure Functions et des flux basés sur des déclencheurs et n’a pas consacré de temps à évaluer les solutions alternatives à cette approche.
Application de l’approche et résultats
- L’équipe examine d’autres façons d’utiliser Azure Functions et constate que les fonctions durables prennent en charge un modèle de déploiement qui peut l’aider à paralléliser une tâche de paie particulière.
- L’équipe intègre ce modèle dans son catalogue de conceptions pour une conception ultérieure. Il s’agissait également d’un bon rappel pour examiner d’autres façons de résoudre les manques d’efficacité des performances que les optimisations de code et le nettoyage des données.
Analyser les données de télémétrie et les tendances
Utilisez des outils de surveillance pour analyser les tendances historiques et identifier les flux et les chemins d’implémentation de code qui bénéficieraient le plus d’un effort d’optimisation des performances. Nous vous recommandons d’utiliser à cet effet les outils d’analyse des performances des applications (APM) et les profileurs. En outre, identifiez les chemins chauds des opérations et les autres goulots d’étranglement potentiels dans le système.
Lorsque vous identifiez les domaines problématiques récurrents, l’équipe peut se concentrer sur ceux où les gains sont les plus élevés.
Problématique de Contoso
- L’équipe a instrumenté toutes les fonctions avec Azure Application Insights.
- Elle utilise principalement Application Insights pour résoudre les problèmes couvert par la garantie de réparation et d’assistance et pour le récepteur de journalisation.
- Historiquement, l’approche visant à cibler des domaines d’amélioration reposait sur les commentaires provenant de l’équipe de direction.
Application de l’approche et résultats
- Même si les commentaires sont importants, l’équipe se rend compte qu’Application Insights détecte assez bien les zones réactives dans les applications qu’elle surveille.
- L’équipe commence à tirer parti de cette fonctionnalité qui, associée à la détermination des flux importants, devient un outil précieux pour l’effort de 20 % de l’équipe en ce qui concerne les améliorations techniques et l’efficacité.
- Grâce à Application Insights, l’équipe est en mesure d’identifier de manière proactive une intégration risquée et de la gérer avant qu’un membre de la direction rencontre un problème.