Un test de charge est un test où l’on mesure le comportement d’un système en fonction de la charge d’utilisateurs simultanés. Ce type de test permet de mettre en évidence les points sensibles et critiques de l’architecture technique. Il permet en outre de mesurer le dimensionnement des serveurs, de la bande passante nécessaire sur le réseau, etc.
VOS ATTENTES
- Résoudre des problèmes de performance d’une application
- Rassurer la DSI sur la montée en charge d’une application
- Valider les performances, l’endurance et la robustesse d’une application
- Dimensionner une infrastructure de production pour un déploiement en production et son industrialisation
NOTRE EXPERTISE
- Établissement avec vous d’un ou plusieurs scénarios de navigation pour les utilisateurs finaux
- Mise en place de nos utilitaires de récoltes de données sur l’infrastructure de test
- Lancement de façon graduelle des connexions à partir de cinq points web différents et à partir de cinq fournisseurs d’accès internet
- Création de graphes de consommation des ressources matérielles et logicielles suivant la charge envoyée
- Remise d’un rapport regroupant toutes les informations avec nos analyses et préconisations
- Tests de charge appliqués sur des applications web multi-plateformes, des web services, des bases de données …
Les attentes clients en terme de tests de charge
Les besoins clients auxquels peuvent répondre des tests de charge avancés sont les suivants :
✔️ Résoudre des problèmes de performance d’une application
✔️ Valider les performances, l’endurance et la robustesse d’une application
✔️ Dimensionner une infrastructure de production pour un déploiement en production de son industrialisation
✔️ Rassurer la DSI sur la montée en charge d’une application.
Methodologie
Les objectifs sont définis de manière commune avec deux approches possibles :
- Tests en rupture (limite haute de tenue de la plate-forme, des temps de réponse acceptables sur une application et sur un ou plusieurs scénarios de navigation.
- Validation de tenue de charge sur un nombre d’utilisateurs simultanés sur un un ou plusieurs scénarios de navigation.
Pour qu’un test de charge soit pertinent, il est nécessaire de simuler au plus près le comportement des utilisateurs dans l’application.
La définition de scénarios de navigation est donc réalisée en accord avec la maîtrise d’ouvrage qui donne des indications sur :
- Les scénarios type à modéliser.
- Les étapes des scénarios à enchaîner, leurs durées et la typologie de donnée à exploiter.
- Le nombre de scénarios simultanés à lancer, les plateaux…
Une fois ces scénarios validés et documentés, ces scénarios sont codés. Nous utilisons l’outil JMETER pour cela. Ces scénarios ont une double utilité :
- être exploités pour les tests de charge ;
- être exploités en continu dans les outils de supervision afin d’identifier les variations de temps de réponse en production (en cas d’incident technique et aussi en cas de mise à jour du code applicatf car une version N+1 d’un code peut avoir un impact fort sur les temps de réponse).
Exemple de scénario :
Plus d’information sur l’outils de test de charge que l’on utilise : https://www.syloe.com/glossaire/jmeter-logiciel-test-de-charge/
JMETER fonctionne en mode client serveur , dans le sens où l’on peut avoir des clients (ou agent ou injecteurs) multiples , qui envoient la charge séparément , et la remontée des métriques est centralisée sur le « serveur » . On passe par des injecteurs en dehors du serveur , si le nombre d’utilisateurs simultanés voulus dépasse les 8000 , ou s’il y a des problématiques de limitations réseaux
Les test de charge ont pour objectif d’identifier les seuils de rupture éventuels, les temps de réponse en fonction des paliers de charge, mais aussi et surtout d’identifier les goulots d’étranglement qui peuvent être très variés en fonction de l’infrastructure et de l’application :
- RAM, CPU, IO disque, réseau…
- Requêtes, cache…
Soit nous instrumentons la supervision à partir d’outils comme Zabbix, ce qui nécessite un accès à la plate-forme, soit nous exploitons les outils en place et dans ce cas, nous devons convenir des métriques qui nous sont nécessaires avec l’exploitant de la plate-forme.
Avant le ou les tirs, les pré-requis doivent être validés :
- Organisation : planification, horaires
- Fonctionnels : scénarios, jeux de données à exploiter et à nettoyer post-tests
- Techniques : ouverture des flux et droits nécessaires
Les tirs sont lancés à partir de nos serveurs distants. Un test de pré-calibration avec un nombre de users limités (#50) est lancé pour valider la chaîne de tests et s’ajuster avec l’exploitant si nécessaire.
Définition conjointe des métriques des tests. Exemple d’un plan de test :
T0 de 0 à 500* utilisateurs simultanées
T+30 min de 500 à 1000*
T+90 min de 1000 à 2000*
T+150 min de 2000 à 2500*
Attention : Il nous est très difficile d’estimer le nombre de tirs nécessaires pour aboutir aux objectifs fixés. Un seul tir est nécessaire si tout se passe bien. Deux tirs à minima sont nécessaires si il y a des points à corriger. Notre offre comprend en général deux tirs ainsi que le test de pré-calibration. Le nombre de tir sera défini lors de la réponse aux marchés subséquents.
Analyse et livrables
Les livrables comprennent :
- Graphes systèmes du comportement de l’utilisation de la RAM/CPU/Process du serveur ainsi que des applications Apache/PHP/Mysql.
- Graphes d’évolutions du temps d’affichage des pages cibles en fonction du nombre d’utilisateurs simultanées connectés, durant le temps de tests (page d’accueil, et autres à définir ensemble).
- Rapport technique concernant le test de charge et préconisation. Un rapport produit pour le premier tir est mis à jour à chaque tir.
AUTRE CAS CLIENT
EXEMPLE DE TEST DE CHARGE
Un client nous soumet une problématique concernant la future augmentation en nombre d’utilisateurs connectés de son site internet.
Publication récentes
GreenOps : Créer de la Valeur, Renforcer la RSE et Réaliser des Économies
Le GreenOps, une approche éco-responsable de la gestion informatique, est en train de se transformer en une force motrice clé pour les entreprises. Chez DRI / Syloé, nous ne considérons pas le GreenOps comme une simple tendance, mais comme un pilier fondamental de notre mission.
Optimisation des Performances et de l’Expérience Utilisateur : Les tests de charge
Dans le monde numérique actuel, la performance des applications et la qualité de l’expérience utilisateur sont des éléments cruciaux pour…
Comment superviser Databricks avec Datadog dans un environnement AWS ?
En associant Databricks à Datadog, les entreprises peuvent obtenir une visibilité complète de leurs environnements de données, y compris Databricks, AWS et leurs autres systèmes. Cela permet aux entreprises de détecter et de résoudre rapidement les problèmes, d’améliorer la performance et la disponibilité de leurs systèmes et de garantir la qualité de leurs données.
Datalake & Databricks : L’intelligence des données dans le Cloud AWS
Dans cet article, nous explorerons pourquoi les entreprises s’intéressent de plus en plus au Datalake et comment des solutions telles que Databricks transforment la gestion et l’exploitation des données sur le Cloud AWS.
GitLab vs GitHub : lequel des deux choisir et pourquoi ?
Dans cet article, nous explorerons les avantages de l’utilisation d’un serveur de gestion de sources et nous mettrons en lumière l’importance de l’hébergement souverain et de la conformité au RGPD dans le contexte d’un processus DevOps.
Les logiciels Open Source pour les entreprises et les institutions publiques
Dans cet article, nous allons discuter des avantages de l’Open Source et de la façon dont les entreprises et les institutions publiques peuvent en tirer profit, puis nous allons présenter une liste de logiciels populaire que l’on utilise au quotidien.
Quand le strict respect des processus DevOps devient contre productif
Bien que le respect des processus DevOps soit essentiel pour garantir un déploiement continu et une livraison rapide de logiciels de haute qualité, il existe des situations où un strict respect des processus DevOps peut être contre-productif.
Gestion de projet et démarche DevOps
Le DevOps est une méthode de développement logiciel qui met l’accent sur la collaboration, l’automatisation et l’amélioration continue. Elle vise à rapprocher les équipes de développement et d’exploitation pour permettre des mises en production plus rapides, plus fiables et plus sûres des applications. Cependant, dans leur quête pour appliquer les principes DevOps, les entreprises peuvent souvent perdre de vue les notions de bon sens en gestion de projet. Dans cet article, nous allons discuter de l’importance de la prise de recul dans la mise en œuvre d’une démarche DevOps et illustrer cela par des exemples concrets.