Problème de performance des applications web : stop aux idées reçues !

Pour faire simple, c’est la vitesse d’exécution d’une page. L’enjeu actuel est de faire oublier la présence de la machine derrière l’application, et ainsi, de proposer une expérience utilisateur optimale. On le sait maintenant depuis quelque années, une
Pierre LISERONMis à jour le 16 Avr 2018
performance applications web

La performance dune application web, quest-ce que cest ?

Pour faire simple, cest la vitesse d’exécution dune page. Lenjeu actuel est de faire oublier la présence de la machine derrière lapplication, et ainsi, de proposer une expérience utilisateur optimale.

On le sait maintenant depuis quelques années, une application avec des temps de réponse supérieurs à 1 à 2 secondes, cest des ventes en moins et des utilisateurs qui se détournent de votre application / site.

Que peut-on faire pour améliorer la performance dun site web ?

Le sujet est plus compliqué quil ny paraît Souvent, les applications sont construites par assemblage de briques successives qui sont toutes inscrites dans lhistoire de lentreprise. Le module tarifaire est une brique historique qui est toujours en AS400, la gestion des stocks est dans lERP, les clients sont quant à eux stockés dans le CRM Si bien que, réaliser une commande déclenche souvent des dizaines dappels au sein du SI et des temps de réponse variables. Lentreprise est souvent engagée dans une démarche SOA mais tout nest pas encore parfait et cest bien normal !

Dans ces conditions, obtenir de bonnes performances relève du parcours du combattant. Il est souvent déjà difficile de déterminer quelle est la brique limitante dans le système.

La bonne approche pour une optimisation réussie

La bonne approche consiste à réaliser un audit flash de quelques jours afin de faire létat des lieux à linstant T. Au delà des temps mesurés, il faut se concentrer aussi sur lanalyse théorique (très proche dun diagramme de séquence) pour déterminer ce quil se passe lors dune action sur lapplication. Partant de là, on peut commencer à jouer. En utilisant lapproche « diviser pour mieux régner », on se concentre sur chacune des briques pour voir laquelle possède des temps de performance non satisfaisants. Il peut arriver quaucune des briques ne soit réellement en cause et dans ce cas, cest larchitecture ou les différents appels qui sont problématiques.

Point de vigilance

Souvent, on se concentre sur une ou deux pages qui savèrent plus lentes que la moyenne à tort ! La bonne approche consiste à mesurer les temps dun processus entier, par exemple : la création dun compte client associé au passage de la première commande. Cest ce temps global quil faut améliorer et pas seulement le temps unitaire, car un utilisateur acceptera plus facilement une page très lente parmi des pages rapides, quun ensemble de pages au temps de réponse moyen.

Les contres bonnes idées

Lorsque lon a un problème de performance, on a souvent tendance à vouloir identifier rapidement le coupable ! Or, les premiers éléments auxquels on pense ne sont souvent pas la source du problème.

Lhébergement

Le premier coupable idéal qui vient en tête est souvent lhébergement et ses performances, que lon pense pouvoir améliorer facilement. Or, force est de constater que lhébergement nest que très rarement le coupable du défaut de performance. La plupart du temps, grâce au progrès des machines et des services Cloud, lhébergement est largement assez dimensionné pour les besoins de lapplication / site.

La base de données

Au même titre que lhébergement, il est souvent facile de dire que la BDD est lente et quelle a des difficultés à gérer les nombreuses requêtes SQLLangage permettant de communiquer avec une base de données., ou NoSQL qui lui sont adressées. Encore une fois, on se trompe de coupable Les BDD actuelles sont très optimisées ! Le problème vient plutôt du nombre de requêtes appelées : il est clair quappeler 100 requêtes pour laffichage dune seule page, cest beaucoup trop !

Le super logiciel qui teste tout

Acheter un super logiciel qui teste tout une autre illusion dont on aime se bercer ! Et lidée est séduisante : dépenser X milliers deuros dans un super logiciel danalyse de performances qui va résoudre tous les problèmes. Malheureusement, on vous le déconseille car ce logiciel va simplement vous fournir des milliers de métriques que vous ne maîtriserez pas. Si le sujet des performances était aussi simple que ça, croyez-moi ça se saurait !

La vérité est que chaque application est différente par nature et donc, que seule une approche dans le détail permet davoir un impact significatif.

Les bonnes pistes

Les Services Web

À linverse, parmi les coupables souvent ignorés, on compte les nombreux appels à services web internes ou externes au SILe SI désigne le système d'informations d'une organisation.. Bien quindividuellement ces services répondent avec des temps de réponse acceptables (de lordre de quelques millisecondes), cest souvent la somme des appels qui est problématique.

Larchitecture et le métier

Cest sans doute le facteur le plus dur à remettre en cause, mais cest souvent au niveau du métier et/ou de larchitecture que réside le fond du problème.

Par exemple, prenons le cas suivant :

Un site de vente en ligne affiche la disponibilité de ses produits sur son site et ceci en temps réel. Bien que cette actualisation soit faite pour le bien du consommateur, elle a un coût substantiel sur le SI. Dès lors, il faut oser se poser la question suivante : A-t-on réellement besoin davoir cette information aussi à jour que ça ? Ne peut-on pas simplement partir du principe que le produit est disponible et de simplement valider à la commande que le produit est réellement disponible ? Est-ce acceptable pour le métier ? Ces questions nont pas de réponses évidentes mais cest souvent au prix de cette réflexion que les vrais gains de performance sont acquis.

Cest dans la durée quon améliorera les choses

Cest évident mais cest loin dêtre une évidence pour tous. La performance est une démarche de tous les instants à inscrire dans lADN des entreprises, de la phase de la conception de lapplication à la recette en incluant tous les acteurs du SI. Et pour cela, il est nécessaire de former et daccompagner chacun pour que les performances ne soient plus un frein mais un gain.