Au-delà de la garantie de la disponibilité, la performance est le deuxième sujet critique quand on parle d’hébergement d’applications web. Que ce soit pour un site portail de communication, un site e-commerce B2C, un extranet client B2B, le temps de réponse de l’applicatif et d’affichage de la page est majeur pour les utilisateurs. 53 % des utilisateurs quittent une page si elle met plus de 3 secondes à se charger. Et dans le monde du web, toute nouvelle version est susceptible de s’accompagner d’une régression. La performance est un chantier permanent, et il ne faut jamais relâcher son effort. Voici quelques exemples typiques d’optimisations de performances pour lesquels votre infogéreur doit être à même de vous accompagner.
La gestion du cache
Cela peut sembler surprenant, mais un bon cache de type Varnish ou un CDN sont encore trop souvent négligés dans les configurations. Un Varnish permet de mettre en cache un maximum d’éléments statiques et de les servir très rapidement à l’internaute. Pendant ce temps, le serveur applicatif peut se concentrer sur le traitement des requêtes des éléments dynamiques.
Tout va se jouer sur la bonne configuration du cache. L’objectif est de maximiser le « hit ratio » , c’est-à-dire la proportion d’éléments servis par le cache. Il doit se situer entre 90% pour un site majoritairement statique, et 70% pour un site avec des éléments dynamiques basés sur la session utilisateur.
Utiliser un cache CDN reprend la même logique avec un mode de configuration un peu différent, avec souvent l’optique d’ajouter un point de cache plus proche de l’utilisateur. Le CDN va permettre notamment de servir une zone géographique beaucoup plus étendue à l’international, avec des points de présence nombreux.
Pour bien comprendre les subtilités de la gestion d’un cache, lire notre article de blog sur Varnish.
La performance de la base de données
Beaucoup d’applications web sont pénalisées par la performance de leur base de données. Les causes peuvent être multiples. Trop souvent , la configuration du moteur de BDD est basique, aucun réglage n’a été déployé, et les ressources du serveur ne sont même pas utilisées correctement.
La volumétrie, et notamment l’accumulation d’un historique important, et l’inadaptation des index, est une autre cause très fréquente. L’analyse de la performance des requêtes lentes est un autre grand classique. Les plus simples à identifier et traiter sont les grosses requêtes, souvent peu nombreuses. Mais il ne faut pas négliger les requêtes peu performantes mais très utilisées, qui sont également plus difficiles à identifier et cibler.
Ces problèmes de performance de bases de données vont se manifester le plus souvent en phase de montée en charge, du nombre d’utilisateurs, de hausse de la volumétrie, de modification du schéma de base.
Le traitement passe par un audit de base de données par un expert en infrastructure polyvalent qui sera de tout couvrir : le réseau et l’infra, le tunning des paramètres de la BDD, l’analyse des indexes et des requêtes lentes, jusqu’à un dialogue avec les développeurs pour l’optimisation du code.
Tout savoir sur les audits de bases de données Alfa-Safety.
Le moteur d’indexation
Pour optimiser le temps d’accès aux données dont une page web a besoin, et soulager la base de données. On intègre de plus en plus un moteur d’indexation. Celui-ci va permettre d’indexer la données pour répondre avec la vitesse d’un cache en clé/valeur. Ce sont Elasticsearch et Opensearch qui trustent aujourd’hui la majorité des configurations, mais on voit aussi Solr ou FredHopper. La mise en œuvre d’un tel moteur d’indexation suppose, comme pour la base de données, un tuning de sa configuration, mais également l’optimisation de l' »ingestion des données », qui est souvent une étape très contraignante.
Faire face à un pic de trafic, l’effet « passage TV »
La question de la performance, c’est aussi d’être capable d’encaisser un pic de charge très soudain, ce que l’on appelle familièrement l’effet « passage TV ». Cela se traduit par un afflux de connexions très soudain, plus encore que le volume en valeur absolue, c’est surtout la pente de la montée en charge qui est importante
Une campagne de communication qui cartonne, le reportage de Capital qui mentionne votre entreprise, l’actualité qui s’emballe sur votre secteur d’activité, l’ouverture d’une période de réservation de billets ou de séjours touristiques, voici quelques raisons qui peuvent générer un pic de fréquentation sur votre site web. Beaucoup d’entreprises espèrent que cela leur arrivera, mais comme on peut le constater régulièrement, nombre d’entre elles n’y sont pas préparées et le pic de trafic se transforme parfois en site indisponible, avec des conséquences sur leur image et des contacts ou des ventes ratées.
La rapidité de ces événements est telle qu’on ne pourra y faire face que si l’on s’est préparé à l’avance car, quand le pic arrive, il est en général trop tard pour réagir efficacement.
Consultez notre article pour vous préparer aux pics de charge.
La scalabilité et l’auto-scaling
Le rêve serait de disposer d’une infrastructure flexible ou scalable, capable de s’adapter à toutes les variations du flux de requêtes. Cela existe, le cloud permet de mettre en œuvre des mécanismes d’auto-scaling qui ajouteront des ressources serveurs en période de charge forte, et pourront les « dé-provisionner » en phase de baisse.
Configurer le réglage de l’auto-scaling est une affaire de spécialiste et d’expérience : il faut savoir identifier les bons indicateurs de charge et leur supervision, régler les seuils de déclenchement et fixer des maximums et des minimums pour ne pas se mettre en risque. C’est aussi une affaire de temps et d’expérience, car ces mécanismes nécessiteront toujours des réglages au fil du temps et des cas rencontrés.
Attention toutefois à la vitesse de déclenchement d’un mécanisme d’auto-scaling. Elle ne sera jamais suffisante pour faire face à un pic brutal de charge. Le temps que les alertes remontent, se confirment, que le provisionning soit effectif, il sera probablement trop tard. Il ne faut pas se raconter d’histoires, l’autoscaling s’adresse plus à des fluctuations en heures ou jours qu’en minutes.
Il ne faut pas oublier que la scalabilité peut être déclenchée à la demande très rapidement avec les mécanismes modernes de provisionning en Infra as Code et déploiement automatisé des applications. Dès lors que les fluctuations sont progressives et/ou prévisibles, c’est une solution très simple et efficace.
Tests de charge et de performances
Dans tous les cas, rien de tel que de mener des tests de charges pour connaître le comportement de son application web. La démarche va vous amener à définir vos objectifs et les scénarios envisagés.
Le test permettra d’analyser le comportement de tous les composants contribuant à la performance de votre application et d’identifier les points de contention.
Mais mener des tests de charges et performance ne s’improvise pas. Il faut une méthode, des outils, des moyens de mesure et d’analyse, et un expert capable d’en faire la synthèse.
On peut mener de tels tests ponctuellement, sur des évolutions conséquentes, mais aussi les intégrer, en un peu simplifiés, à son processus de livraison, pour vérifier à chaque nouvelle release que l’on ne dégrade pas les performances.
Il faut considérer ces tests comme un investissement préventif à rapporter au coût de traitement à chaud d’un incident , et ainsi qu’à son impact en image et activité perdue.
Parcourez notre article de blog sur les tests de performance.
Performances et outils d’APM
Trop souvent, on a tendance à réduire la performance web à l’efficacité de l’infrastructure. Mais l’optimisation de l’infra ne pourra jamais aller plus loin que la performance applicative.
Pour s’attaquer à celle-ci, il faut un outil d’analyse de la performance applicative (APM, Application Performance Monitoring) qui va analyser tous les maillons de la chaîne de traitement applicatif et permettre d’identifier les points de contention pour déboucher sur des optimisations du code.
Parmi les plus connus, on retrouve New Relic, Datadog, Dynatrace. Dans tous les cas, ces logiciels ne sont efficaces qu’entre les mains d’un expert qui saura les déployer et mener les analyses, tout en ayant une bonne compréhension de l’application sur laquelle il travaille. C’est un métier de spécialiste orienté développement, mais qui saura aussi dialoguer avec les équipes en charge de l’infra et l’infogéreur.
Il est rare de traiter un problème de performance à chaud, il est même souvent trop tard. Il est aussi rare d’avoir une solution simple à l’amélioration des performances. La performance est une démarche globale, qui doit être intégrée dans une logique d’amélioration continue et anticipée et menée par des experts complets et polyvalents.
En combinant l’expertise en infrastructures d’Alfa-Safety et les compétences en architecture et développement logiciel de Clever Age, nous sommes capables de vous proposer une solution sans couture pour un diagnostic complet.
Et vous ? Votre site est-il prêt à faire face à un pic de trafic ou à des évolutions constantes ? Contactez-nous ici pour un audit complet et des solutions adaptées.