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
Datadog CI : L’outil indispensable pour booster la productivité et l’efficacité dans votre chaîne DevOps
Les Directeurs des Systèmes d’Information (DSI) sont en quête constante d’outils qui non seulement facilitent les processus DevOps, mais qui augmentent également la productivité de leurs équipes et garantissent des livraisons de haute qualité. Datadog CI (Continuous Integration) s’impose comme un outil incontournable dans cette démarche. Son approche axée sur l’automatisation des tests et l’observabilité continue en fait un atout majeur pour toute organisation cherchant à optimiser sa chaîne DevOps.
Datadog : L’outil indispensable pour les DSI dans une démarche DevOps
Plusieurs DSI nous contactent à la recherche d’outils capables d’améliorer la qualité de service, d’offrir une meilleure visibilité sur les environnements de production, et de permettre une plus grande réactivité face aux incidents. C’est là qu’intervient l’outil Datadog, une solution de monitoring et d’analyse des performances qui s’intègre parfaitement dans une chaîne DevOps.
Incident CrowdStrike Juillet 2024 : Analyse et leçons à retenir
L’incident de juillet 2024 de CrowdStrike doit servir de signal d’alarme pour les entreprises et les DSI. La diversification des choix technologiques, l’adoption de pratiques DevOps rigoureuses et l’intégration de solutions open source peuvent aider à construire des systèmes d’information plus résiliants et souverains.
L’IA Act, un tournant crucial pour les entreprises de l’UE
Dans un monde où l’intelligence artificielle (IA) révolutionne rapidement tous les secteurs de l’économie, l’Union européenne a franchi une étape décisive avec l’adoption de l’IA Act. Ce cadre réglementaire, le premier du genre à l’échelle mondiale apriori, vise à établir des normes rigoureuses pour le développement et l’utilisation de l’IA tout en favorisant l’innovation et la compétitivité européenne.
Usage de l’IA dans le Monde du DevOps : Pertinence, Avantages et Valeur Ajoutée
‘intégration de l’IA dans le DevOps offre des opportunités considérables pour améliorer l’efficacité, la rapidité et la fiabilité des processus. Chez Syloé, nous avons l’expertise pour vous accompagner dans cette transition, en garantissant le contrôle, la sécurité et la performance de vos systèmes d’information.
Cas Client : L’IA Souveraine, un Atout Stratégique pour les Éditeurs de Logiciels Français
L’intégration d’une IA souveraine dans les processus d’un éditeur de logiciels est un projet complexe qui nécessite des expertises pointues. Chez Syloé, nous combinons notre savoir-faire en DevOps, notre maîtrise des environnements cloud et notre engagement pour la souveraineté numérique pour accompagner les DSI dans cette transformation cruciale.
GitOps : Révolutionner la Gestion IT avec l’Automatisation et la Collaboration
Dans l’écosystème technologique en rapide évolution d’aujourd’hui, les Directeurs des Systèmes d’Information (DSI) sont constamment à la recherche de méthodologies innovantes pour optimiser la gestion des infrastructures IT. GitOps, une pratique émergente qui combine l’infrastructure as code (IaC) avec les puissantes capacités de Git, se présente comme une solution prometteuse.
L’Hébergement Informatique Souverain et la Certification ISO 27001 : Clés de la Réussite pour les DSI
l’hébergement informatique souverain, appuyé par la rigueur de la certification ISO 27001, se présente comme une solution stratégique pour les Directeurs des Systèmes d’Information (DSI). Au sein du groupe Syloé/DRI, nous incarnons cette double exigence de souveraineté et de sécurité, en proposant des services d’hébergement qui répondent aux standards les plus élevés.