Interview: Octoperf et les tests de performance
Ce mois-ci, nous recevons Guillaume Betaillouloux d’Octoperf, une solution logicielle dédiée aux tests de performance. L’occasion d’en savoir davantage sur leur produit et la valeur ajoutée de l’offre de cette start-up fondée en 2016.
Bonjour Guillaume ! Pour commencer, peux-tu nous présenter Octoperf ?
OctoPerf c’est une société créée par 4 amoureux de la performance il y a 4 ans. Avec l’idée de fournir un outil de test de performance puissant et abordable au plus grand nombre.
Comment a démarré l’aventure Octoperf ?
On avait déjà tous une 10aine d’années d’xp sur nos postes respectifs et surtout eu l’occasion de constater notre désaccord avec les politiques commerciales et de qualité de code de nos anciens employeurs. On voulait vraiment montrer qu’en maîtrisant la qualité du code on pouvait fournir un meilleur produit pour un coût maîtrisé sur le long terme.
Si on reprend la base : pouvez-vous expliquer en quoi consiste les tests de performance ?
Il s’agit de simuler l’arrivée d’un flot d’utilisateurs sur une application pour simuler une période de forte activité généralement en prévision d’un événement marketing ou simplement pour anticiper une mise en production.
Quels sont vos avantages et atouts-clés ?
L’utilisation d’un produit open source au cœur de la solution (JMeter) tout en offrant une UX complètement revisitée autour de ce produit. Cela permet à des équipes hétéroclites de cohabiter avec des débutants qui utilisent notre UI et des utilisateurs chevronnés de JMeter qui importent leurs scripts préférés.
Quels sont les prérequis (notamment techniques) pour commencer à travailler avec vous ?
Il faut surtout avoir une volonté de travailler sur la performance de ses applications. OctoPerf s’intègre dans tous les environnements techniques, que ce soit via la plateforme SaaS ou l’installation d’une plateforme enterprise privée qui permet à tous les collaborateurs de l’entreprise de travailler ensemble sur les tests.
Quels sont les profils dans une entreprise qui sont en charge d’écrire ces tests de performance ?
Cela varie beaucoup selon le contexte, en général il s’agit de profils plutôt techniques avec une bonne connaissance du monde du web mais grâce à OctoPerf il est possible à des profils plus fonctionnels de mener des tests tout aussi réalistes.
Prenons un cas concret : je suis un éditeur e-commerce et je n’ai aucun test de performance en place. Est-ce que c’est le bon moment pour moi d’utiliser Octoperf ?
Très certainement oui, notre conseil c’est de participer à une démo du produit pour en comprendre les possibilités, puis de se faire la main avec le compte gratuit qui permet de lancer des petits tests. Ensuite nous passons toujours un peu de temps avec les nouveaux clients sur une session de preuve de concept pour préparer des scénarios de test cohérents ensemble. Cela vous permet de démarrer par exemple sur une petite licence en mode “one shot” et de construire votre pratique de test de performance petit à petit à des coûts maîtrisés. Avec évidemment un objectif de régulariser ces tests à terme.
Si j’utilise déjà des solutions comme JMeter, que vais-je gagner à aller sur votre plateforme ?
Hé bien l’idée c’est que nous nous occupons de la complexité de JMeter tout en offrant toutes les fonctionnalités d’une solution commerciale. Il suffit de réutiliser ses scripts JMeter habituels et de les uploader dans OctoPerf pour avoir droit au lancement d’injecteurs à la volée et surtout au rapport en temps réel qui est customisable.
Y’a-t-il une capacité maximale de montée en charge que vous pouvez tester avec Octoperf ?
Non, nous avons pu lancer des tests avec plusieurs centaines de milliers d’utilisateurs concurrents depuis environ 400 machines mais il ne s’agit pas d’une limite, simplement du cas d’usage le plus gros jamais testé.
Côté base de données, la combinaison d’elasticsearch et de SSD dernière génération nous permet d’agréger des quantités incroyables de données de test en temps réel.
Donc il n’y a virtuellement pas de limite de notre côté car ce sont surtout les injecteurs de charge démarrés dans les plateformes type AWS ou Azure qui pourraient être limitants et de ce côté là il y a de la marge.
À quoi peuvent être dus les “problèmes” de performance qu’Octoperf détecte ? Une infrastructure non-robuste ? Une application non conçue pour le passage à l’échelle ?
C’est très variable, le cas courant est une absence de configuration des serveurs testés (paramètres par défaut sur les serveurs web/app/bdd). Mais il y a beaucoup d’autres problématiques, comme l’oubli d’optimiser des ressources pour la production ou du code mal optimisé. C’est pour cela qu’il est important d’associer la pratique du test de performance à des outils de supervision qui permettent de détecter les causes des problèmes ou des outils de qualimétrie en amont qui peuvent éviter des déconvenues tardives.
Chez Promyze, nous sommes très sensibles aux bonnes pratiques de développement. Préconisez-vous un ensemble de bonnes pratiques sur des technos Web pouvant améliorer la performance des sites web ?
Déjà nous respectons nous même de nombreuses règles de qualité de code, bien au delà des règles standard. Et nous avons pu constater qu’une base de code “propre” permet une agilité incroyable dans le développement et l’évolution du produit puisque notre équipe de développement est toujours composée de 2 personnes.
Pour répondre quand même à la question, c’est difficile de donner une réponse absolue puisque tous les contextes ne se valent pas. Par exemple un e-commerce a besoin de beaucoup de réactivité pour suivre le marketing et le site a des chances d’être ré-écrit tous les 2-3 ans donc une qualité absolue du code n’est pas forcément souhaitable ou réaliste.
Pour autant il est important de maîtriser ces sujets rapidement pour optimiser ses coûts de maintenance et sa dette technique. Pour reprendre une analogie connue, la qualité de code c’est comme nettoyer ses cuisines dans un restaurant, ça ne paye pas à court terme mais c’est essentiel à long terme, à la fois pour les clients mais aussi pour les employés qui y travaillent.
Je pense que le mieux c’est d’essayer de se situer par rapport à d’autres types de solutions et de regarder comment elles procèdent, le net est riche en retours d’expériences.
Le conseil que donne tout le temps notre CTO c’est le fameux KISS (Keep It SImple and Stupid) et de travailler déjà avec des outils qu’on maîtrise bien avant d’aller sur de nouvelles technos “cool” ou “à la mode” qui sont attrayantes mais encore jeunes ou parfois trop instables pour un usage professionnel.
En cas de problèmes constatés par votre plateforme, avez-vous une offre de service (consulting/formations) pour accompagner vos clients à revoir l’architecture de leurs applications ou de leur infrastructure ?
En tant qu’éditeur de logiciel, nous nous focalisons sur notre métier, qui est de fournir un outil simple et efficace et d’aider nos utilisateurs à en profiter au maximum. Nous réalisons des formations à OctoPerf (2 jours pour des groupes d’une dizaine de personnes) qui permettent même à des novices de pouvoir aborder le sujet plus sereinement.
Si nos clients ont besoin d’aide pour optimiser leurs systèmes, nous nous appuyons sur notre réseau de partenaires à travers le monde qui peuvent intervenir ponctuellement ou de manière plus régulière pour réaliser l’intégralité des tests.
On voit régulièrement des sites e-commerce “down” lors d’événements-clés du secteur (sortie d’un produit phare, premier jour de soldes, …). Peut-on vraiment éviter ces KO à 100 % ou bien doit-on essayer de réduire les risques au maximum ?
On ne peut jamais se protéger à 100% des problèmes mais beaucoup de sociétés se protègent à 0% donc cela laisse une forte marge de progression. Bien sûr le test de performances est un moyen de réduire ce risque très fortement mais à condition d’être pratiqué dans de bonnes conditions. Nous voyons beaucoup de sociétés qui font des tests extrêmement simplistes. Cela va leur apporter une importante couverture de risque ressentie mais dans les faits ils restent vulnérables.
C’est pour cela que nous insistons sur la formation, la méthodologie et les possibilités avancées d’OctoPerf auprès de nos utilisateurs.
Travaillez-vous avec des clients de tout secteur ?
Oui c’est pour cela que nous utilisons JMeter au cœur d’OctoPerf, le nombre de protocoles supportés et les plugins existants couvrent vraiment l’essentiel des besoins de test de tous les types de sociétés. Et surtout la communauté JMeter est composée de centaines de milliers de testeurs du coup la quantité de contenu que l’on trouve en ligne dépasse largement ce que n’importe quel outil payant peut proposer.
Octoperf est-elle une solution exclusivement en SaaS ou proposez-vous une version On-Premise ?
Nous avons les deux. Cela permet de couvrir tous les cas d’usage. L’idée c’est d’utiliser le SaaS au maximum pour la simplicité, parfois avec un agent d’injection on-premise pour contourner des soucis de whitelisting d’adresses IP ou de protection DDOS. Mais quand le besoin de confidentialité est trop important on peut installer ses propres serveurs et avoir les données de test dans un espace sécurisé.
Certains de nos clients ont une version enterprise et la connectent par exemple à leur compte Azure/AWS pour profiter du lancement d’injecteurs de charge à la volée.
Quels sont vos objectifs pour 2021 et pouvez-vous nous dévoiler certaines nouveautés sur lesquelles vous travaillez ?
OctoPerf s’agrandit, nous avons 3 nouvelles ressources qui nous ont rejoint au cours de l’année et nous allons continuer sur cette voie. Notre grande nouveauté c’est le développement d’un nouveau produit appelé Kraken et orienté autour de Gatling, la seconde solution open source la plus populaire après JMeter: https://kraken.octoperf.com/doc/
Pour ce produit nous testons un modèle open-source avec ajout de modules payants. Actuellement tout est disponible gratuitement dans kraken pour permettre à tout un chacun de se faire une idée de son potentiel et nous lui souhaitons le même succès qu’à OctoPerf.
—-
Pour retrouver toutes les informations sur Octoperf, une seule adresse : https://octoperf.com