Un ingénieur regardant un moniteur ou un terminal.

Qu’est-ce que l’ingénierie des performances ?

Ingénierie des performances : définition

L’ingénierie des performances consiste à optimiser les systèmes informatiques afin qu’ils répondent à des critères de référence en matière de vitesse et d’efficacité.

L’ingénierie des performances n’est pas une simple action ponctuelle, mais une méthodologie DevOps et « shift left » qui permet aux entreprises de suivre et d’optimiser les performances à chaque étape du cycle de vie du développement logiciel (SDLC). Son objectif est de garantir que les systèmes respectent les indicateurs de performance pour des critères tels que la vitesse, la fiabilité, l’efficacité et le temps de réponse.

Les équipes d’ingénierie des performances établissent d’abord les performances de base du système à l’aide de tests de résistance. Elles utilisent ensuite cette base de référence pour identifier les problèmes réseau et les opportunités d’amélioration. Une fois les critères de référence définis, les ingénieurs peuvent commencer à reconfigurer le réseau, mettre en place des correctifs et surveiller en permanence le réseau pour détecter les problèmes de performance et planifier la capacité future.

L’observabilité est au cœur de l’ingénierie des performances. Les outils d’observabilité recueillent les données brutes (journaux, indicateurs et traces) qui décrivent les performances du système, et les équipes d’ingénierie des performances exploitent ces mêmes données pour suivre les effets de leurs correctifs. Les ingénieurs en performance utilisent également divers autres outils pour la gestion et la surveillance de la performance des applications, les tests de résistance, l’audit des navigateurs et l’analyse comparative afin d’obtenir une image aussi claire que possible de leurs systèmes.

Ingénierie des performances, gestion de la performance des applications et tests de performance 

L’ingénierie des performances est la discipline globale et de bout en bout qui consiste à optimiser les systèmes informatiques pour qu’ils répondent à des critères prédéfinis. La gestion de la performance des applications (APM) et les tests de performances sont deux des activités qui font partie de ce processus global.

La gestion de la performance des applications est une pratique qui utilise des outils logiciels, l’analyse des données et des processus de gestion des applications et qui vise à aider les organisations à optimiser les performances, la disponibilité et l’expérience utilisateur des applications métier. Alors que l’ingénierie des performances couvre l’ensemble du processus de développement, l’APM se concentre sur la détection et la résolution des problèmes dans les applications en production.

De même, les tests de performance consistent spécifiquement à évaluer les performances d’un réseau ou d’une application dans diverses conditions, par le biais de tests de charge, de tests de résistance, de tests d’endurance et d’autres tests. À l’instar de l’APM, les tests de performance ne constituent qu’une activité parmi d’autres au sein de la pratique plus large de l’ingénierie des performances.

Comment fonctionne l’ingénierie des performances ?

L’ingénierie des performances s’effectue selon une séquence flexible mais exhaustive qui comprend la définition de critères de référence, les tests et la hiérarchisation, l’optimisation, la planification et la surveillance des performances.

Critères de référence

Tout d’abord, l’entreprise identifie le niveau de performance requis pour que ses systèmes et applications atteignent les objectifs métier. Ensuite, les ingénieurs en performance testent les performances actuelles pour établir des points de référence et déterminer comment les atteindre.

Les indicateurs de référence courants comprennent la latence, le débit, l’utilisation des ressources et le taux d’erreur. Les équipes de développement peuvent mesurer ces indicateurs au niveau micro (au sein d’un serveur ou d’un service particulier) ou à plus grande échelle, sur l’ensemble d’une application ou d’un réseau.

L’analyse comparative implique souvent des questions spécifiques concernant les exigences de performance et l’environnement de développement. Par exemple, au lieu de tenter de fixer un seuil général pour l’utilisation du processeur, les ingénieurs pourraient demander si moins de 60 % du processeur est utilisé lorsque 5 000 usagers utilisent simultanément une application.

Tests et hiérarchisation

À l’aide d’outils de test de performance, les ingénieurs valident les données de test par rapport aux critères de référence établis afin d’identifier où et quelles modifications doivent être apportées pour atteindre les niveaux de service requis.

Les formes courantes de tests de performance comprennent :

Tests de charge

Les tests de charge indiquent les performances du système lorsqu’il fonctionne avec les charges prévues. L’objectif de ces tests est de montrer le comportement du système face à des workloads de routine dans des conditions de travail normales avec un nombre moyen d’utilisateurs simultanés.

Test d’évolutivité

Les tests d’évolutivité met le système sous pression en augmentant le volume de données ou du nombre d’utilisateurs. Il montre si le système peut suivre un rythme croissant tout en continuant de fonctionner efficacement.

Tests de résistance

Les tests de stress poussent le système jusqu’à ses limites opérationnelles connues, et même au-delà, afin de déterminer exactement jusqu’où il peut tenir avant d’atteindre son point de rupture.

Spike testing

Les tests de pic observent ce qui se passe lorsque le trafic utilisateur ou le volume de données connaît une hausse soudaine et marquée de l’activité. Le système doit alors absorber ces variations tout en poursuivant ses opérations habituelles.

Test de volume

Les tests de volume examinent la manière dont un système gère de grandes quantités de données, en particulier s’il est capable de traiter intégralement ces données et de les stocker sans dégradation.

Tests d’endurance

Les tests d’endurance (ou soak testing) consistent pour les ingénieurs à observer un système sur une longue période afin de détecter des problèmes tels que la dégradation progressive des données ou les fuites de mémoire.

Optimisation

Une fois les limites et les lacunes du système identifiées, le processus d’optimisation commence.

Selon la nature du goulet d’étranglement en question, les ingénieurs en performance peuvent recourir à des stratégies d’optimisation telles que :

  • L’optimisation des algorithmes, qui consiste à modifier les algorithmes qui régissent les fonctions du système afin d’en améliorer l’efficacité.

  • L’optimisation de la base de données, qui consiste à corriger les problèmes sous-jacents liés aux données du système par des processus tels que l’optimisation des requêtes (processus visant à déterminer la manière la plus efficace pour une base de données d’exécuter une requête) ou l’optimisation des index, qui vise à garantir que le système utilise les chemins de récupération les plus rapides possibles.

  • La mise en cache, qui stocke les résultats d’opérations de calcul exigeantes afin qu’ils puissent être reproduits et récupérés plus rapidement.

  • L’optimisation de la mémoire, où les ingénieurs réduisent les fuites de mémoire et accélèrent la récupération de place en réutilisant les objets en mémoire, en réorganisant les données ou en stockant certaines données hors site.

  • L’optimisation du réseau, qui implique la compression de la bande passante, l’équilibrage de charge, la réutilisation des connexions HTTP et d’autres méthodes pour accélérer les performances du réseau.

Planification et surveillance

Une fois le système optimisé, les ingénieurs en performance surveillent en permanence les écarts par rapport à la nouvelle base de référence et planifient la croissance et l’activité futures.

L’observabilité permet aux ingénieurs en performance de déterminer si leur système fonctionne comme prévu. En collectant et en analysant les journaux, les indicateurs et les traces, les outils d’observabilité permettent aux équipes informatiques d’automatiser l’identification et la résolution des problèmes en temps réel. Plus le système est observable, plus les équipes informatiques peuvent accélérer et optimiser l’identification des problèmes de performance et de leur cause racine, sans tests ni codage supplémentaires.

La planification de la capacité permet aux ingénieurs en performance de garder une longueur d’avance sur les besoins de l’entreprise en anticipant les futures exigences en matière d’infrastructure informatique. Cette planification consiste à analyser la demande actuelle et la capacité disponible, en les comparant aux capacités et aux ressources de l’organisation. Les entreprises élaborent ensuite une stratégie ajustable qui leur permet de faire évoluer efficacement les ressources et la production.

AI Academy

Se préparer à l’IA avec le cloud hybride

Dirigé par des leaders d’opinion IBM, le programme a pour but d’aider les chefs d’entreprise à acquérir les connaissances nécessaires qui leur permettront d’orienter leurs investissements IA vers les opportunités les plus prometteuses.

Avantages de l’ingénierie des performances

Les avantages de l’ingénierie des performances comprennent une expérience utilisateur améliorée, une infrastructure informatique plus évolutive, une résolution plus efficace des problèmes et une meilleure planification des capacités.

Expérience utilisateur améliorée

L’ingénierie des performances améliore l’expérience utilisateur en corrigeant les problèmes de performance tels que la latence élevée, qui peuvent dissuader les usagers d’utiliser un service. En optimisant le processus d’ingénierie logicielle et ses résultats, l’ingénierie des performances peut contribuer à instaurer la confiance auprès des utilisateurs et à favoriser la fidélisation.

Augmentation de l’évolutivité

L’ingénierie des performances offre une vision claire des problèmes au sein d’un système. Cette vision permet d’éviter plus facilement les goulets d’étranglement lors de l’extension de ce système (soit horizontalement en ajoutant de nouveaux services, soit verticalement en utilisant davantage de capacité réseau).

Résolution efficace des problèmes

L’ingénierie des performances contribue à garantir que les ingénieurs disposent des outils et des connaissances nécessaires pour produire des systèmes répondant aux critères de référence établis. Les ingénieurs peuvent résoudre les problèmes de performance plus rapidement, réduisant ainsi le temps moyen de réparation (MTTR), et à moindre coût, car les problèmes sont détectés avant qu’ils n’aient l’occasion de perturber de manière significative les performances du réseau.

Planification rationalisée de la capacité

L’ingénierie des performances peut contribuer à renforcer l’efficacité de la planification des capacités en améliorant la compréhension qu’ont les ingénieurs du comportement des systèmes. Grâce au processus d’analyse comparative et aux pratiques d’observabilité continues, les ingénieurs ont une meilleure idée des besoins de leurs réseaux. Cette compréhension les aide à prendre de meilleures décisions en matière de capacité, réduisant ainsi le risque de surconsommation ou de sous-consommation de capacité serveur.

Défis de l’ingénierie des performances

Les défis de l’ingénierie des performances incluent la complexité des systèmes modernes, l’identification des causes profondes des problèmes, la prise en compte des problèmes « de longue traîne » et la mise en place des outils et de l’expertise nécessaires.

Complexité

Les environnements informatiques modernes sont dominés par des microservices qui peuvent se compter par milliers, souvent hébergés dans des environnements de cloud hybride complexes. La collecte, l’analyse et la mise en œuvre des informations issues de ces systèmes distribués peuvent constituer un processus gourmand en ressources, avec des workflows parfois imprévisibles.

Identifier les causes profondes

La complexité complique également l’identification des véritables causes profondes des problèmes réseau. Si une API répond lentement, cela peut être dû à une base de données mal indexée, à une fuite de mémoire ou à un problème de configuration. Les ingénieurs en performance peuvent avoir besoin de réaliser une analyse des causes profondes pour identifier les réelles opportunités d’optimisation.

Problèmes de longue traîne

Les problèmes de longue traîne correspondent à des conditions réseau médiocres rencontrées par une petite minorité d’utilisateurs. Ils sont souvent causés par des problèmes idiosyncrasiques et difficiles à détecter qui échappent aux pratiques d’observabilité habituelles. Dans le contexte de l’ingénierie des performances, ces problèmes posent un défi car ils menacent les conditions globales du réseau, mais leurs causes profondes sont complexes à mettre au jour par le biais de tests de performance classiques.

Bâtir l’infrastructure

La pratique de l’ingénierie des performances nécessite l’expertise du personnel et des capacités de plateforme sophistiquées. Les tests de performance exigent des simulations coûteuses et à grande échelle des conditions du réseau. Les équipes doivent suffisamment bien comprendre les systèmes pour transformer un grand volume de données télémétriques en informations exploitables. La nature flexible et itérative de l’ingénierie des performances nécessite une structure organisationnelle capable de gérer des changements rapides.

Auteurs

Derek Robertson

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Solutions connexes
IBM Cloud Infrastructure Center

IBM Cloud Infrastructure Center est une plateforme logicielle compatible OpenStack, conçue pour gérer des infrastructures de cloud privé exécutées sur IBM zSystems et IBM LinuxONE.

Découvrir Cloud Infrastructure Center
Infrastructure informatique

Fournissez une infrastructure sécurisée et compatible avec l’IA dans des environnements de cloud hybride

Découvrir les solutions d’infrastructure informatique
Services d’infrastructure

Accélérez, sécurisez et optimisez votre infrastructure hybride et d’entreprise grâce à l’expertise des IBM Technology Expert Labs.

Découvrir les services d’infrastructure
Passez à l’étape suivante

Transformez l’infrastructure de votre entreprise grâce aux solutions de cloud hybride IBM prêtes pour l’IA. Découvrez des serveurs, des solutions de stockage et des logiciels conçus pour protéger, faire évoluer et moderniser votre entreprise, ou accédez à des informations d’experts pour renforcer votre stratégie d’IA générative.

  1. Découvrir les solutions d’infrastructure informatique
  2. Explorer IBM Cloud