BLOG X2i

L'actualité Magento et e-commerce vue par X2i

Les 3 étapes pour optimiser ses performances Magento !

2 juin 2016 - Publié par Merryl - Méthodologie et pilotage, Performances

optimisation site magento
L’efficacité d’un site se résume en sa capacité à fournir ses fonctionnalités aux utilisateurs dans les meilleurs délais et ce quelle que soit l’affluence. Pour cela, il est important de suivre quelques étapes pour mener à bien son chantier performance.




Étape 1 : Connaître ses utilisateurs et son architecture



La première étape consiste en un recueil de besoins, que ce soit d’un point de vue technique ou fonctionnel. Rien de tel pour définir un axe d’amélioration que de bien connaître sa plateforme et le comportement de ses utilisateurs.

Connaître ses utilisateurs

Le nombre d’utilisateurs, leur répartition géographique, leur comportement, la volumétrie du catalogue et des commandes, mais aussi la projection de croissance à court ou moyen terme, sont autant de facteurs qui vous permettront de rédiger vos scénarios et pourront influer sur le choix de la stratégie d’optimisation à adopter.

Quelques exemples de scénarios communément utilisés :

  • Création d’un compte
  • Consultation d’une fiche produit depuis le moteur de recherche
  • Consultation d’une fiche produit depuis l’arborescence du catalogue
  • Sélection d’un produit, mise au panier et parcours du tunnel de commande jusqu’au paiement
panneau attention

Ne pas oublier de chiffrer le trafic back-office qui a aussi son importance, d’autant plus si celui-ci est positionné sur les mêmes serveurs web que le front-office.

Connaître sa plateforme et son architecture

De quoi est composée ma plateforme et quels sont les éléments qui la font exister ?

Dans un premier temps, il sera essentiel de récupérer le DAT (Document d’architecture technique) de plateforme, pour cela il faut soit utiliser les archives du projet de mise en place du site Magento (attention à ce que les documents ne soient pas obsolètes), soit prendre contact avec son hébergeur pour qu’il fournisse la version actuelle du document.

Ensuite, il faut s’assurer que celui-ci est complet et qu’il fournisse à minima les éléments suivants :

Infrastructure serveurs
  • Liste des serveurs et leur description (CPU, RAM, espace disque…).
  • L’infrastructure : firewall, load balancing, frontaux, databases (replication, clustering), CDN…
  • Liste des principaux composants logiciels Magento 2 (PHP 7, Apache, MySQL, Solr, Redis…), système (SSH, SFTP, SMTP…) ou autres (Nginx, Varnish…).
Architecture globale Liste des acteurs interne ou externe au SI e-commerce, leurs interactions, mais aussi le mode de transfert des informations.

On y trouvera, entre autres, le site web, ses composants (Serveur Magento, Solr, Redis…), mais aussi les composants SI ou tiers qui interagissent (web services, ERP, ESB, ETL…).

Configuration Configurations Redis, Varnish, règles firewall…
Infrastructure réseau Contient les informations niveaux performances réseau :
hébergement, liaison interne entre les serveurs, liaison entre les data centers (en cas de solution multi-sites), liaison avec les ERP, bande passante définie dans le contrat…
Plan de taggage Liste des tags mis en place selon les pages du site. L’idée est d’avoir une vision de la fréquence et de la destination des appels externes qui peuvent être générés depuis le site Magento.



De cette étape, devront ressortir les éléments suivants :

  • Le dossier d’architecture technique (complété si incomplet ou obsolète)
  • Un arbitrage concernant plusieurs scénarios englobant 90 à 95% des comportements adoptés par les utilisateurs du site.



Etape 2 : Analyser les performances Magento



Après un état des lieux de sa plate-forme e-commerce, le but de cette étape sera d’analyser son comportement en condition quasi réelle d’utilisation.

Dans quel but ?
Connaître les capacités réelles de sa plateforme et donc… ses limites.
Cibler ses faiblesses et donc… orienter l’axe d’amélioration de la performance.

Par exemple, Magento 2 est nativement lié à Apache Solr (Elastic Search à partir de Magento 2.1). Ceci dit, si notre site e-commerce n’autorise que des recherches par référence (SKU),
il sera très certainement inutile d’investir dans la mise en place d’un moteur de recherche évolué, celui intégré à Magento 2 pourrait être largement suffisant.

Quoi mesurer et comment ?



Cette phase se découpe en trois types d’actions :

  • Les tests de montée en charge
  • L’analyse du comportement pendant les tests
  • Analyse des requêtes HTTP sur un certain nombre de pages clés du site (peut-être fait hors période de tests)

Quoi faire ?
Unités de mesure
Exemples d’outils
“Stresser” la plateforme sur la base des scénarios.
  • Temps de réponse serveurs
  • Bande passante utilisée
  • Poids du téléchargement
  • Nombre d’erreurs générées
Monitorer la santé des serveurs (frontaux, BDD…)
  • Utilisation CPU
  • Utilisation RAM
  • Utilisation IO
  • Nombre de requêtes (HTTP /BDD)
Monitorer le ressenti utilisateur
  • Nombre de requêtes
  • TTFB (Time to First Byte)
  • Start Render
  • Visually Complete
  • Fully Loadtime
  • APDEX



Il est important de bien dissocier l’analyse des données fournies par les tests de montée en charge des données fournies par des outils d’analyse de requêtes. En effet, les outils de tests de montée en charge n’utilisent pas toujours les scripts JavaScript.


Étape 3 : Décrypter les maux et les soigner



Arrivé à cette étape, nous nous retrouvons avec une quantité énorme d’informations, l’idée est maintenant de décrypter tout ça. L’analyse est très variable et ne peut se régler réellement qu’au cas par cas. Ci-dessous vous trouverez quelques exemples d’axes d’améliorations variables en fonction du besoin de chacun.


Critères
Que signifie-t-il ?
Axes d’amélioration
Temps de réponses de frontaux se dégradent très vite
  • Le serveur Apache n’est plus en mesure de traiter les requêtes
  • La base de données saturée
  • Ajouter un ou des frontaux
  • Ajouter un système de gestion de cache Varnish pour soulager les frontaux et la base de données
  • Optimiser le code de Magento
Les pages ou scénarios de recherche sont très longs
  • Inexistence d’un moteur d’indexation
  • Configuration peu judicieuse de celui-ci (si il y en a un en place)
  • Ajouter un moteur d’indexation à l’architecture
  • La configuration du moteur d’indexation n’est pas judicieuse
On constate des lenteurs, tous les jours à la même heure…
  • Ces heures correspondent-elles à des heures de fort trafic ?
  • Ces heures ne correspondent-elles pas à un traitement particulier impactant la plateforme ?
  • Recalibrer l’architecture pour l’adapter aux besoins réels du site (par exemple : dédier un serveur pour jouer les jobs Magento)
  • Optimiser le “séquencement” des traitements pour que ceci n’impactent que les heures de faible trafic.
Une page en particulier a des temps de réponses bien au-dessus de la moyenne
  • La page est trop lourde
  • Elle n’est pas mise en cache
  • Elle fait appel à une ressource extérieure qui la ralentit
  • Optimiser l’intégration de la page
  • Motiver la politique de “caching” de la page
  • Optimiser la source d’information extérieure ou également l’inclure dans la politique de “caching”.
La base de données sature avant les autres applications
  • La base de données n’est pas suffisamment dimensionnée pour supporter la demande des frontaux
  • Certaines requêtes sont trop coûteuses
  • Veiller à harmoniser la capacité de la BDD par rapport aux besoins de l’architecture Magento (les frontaux fournissent trop de requêtes à la BDD).
  • Optimiser les requêtes
  • Mettre en place Varnish
La “home” tarde à se charger et j’ai beaucoup de requêtes à charger sur ma page
  • Le navigateur gère jusqu’à 6 requêtes simultanées, du coup pour des pages chargées en nombre de requêtes, il se peut que la page peine à tout afficher
  • Utiliser plusieurs noms de domaines pour paralléliser les requêtes, coté navigateurs web.
  • Ne positionner en priorité que les éléments nécessaires à l’affichage de la partie contenu au-dessus de la ligne de flottaison, appelé le “Critical Path”. Éviter, entre autre, les JS qui pourrait bloquer l’affichage d’une partie de la page


panneau attention

Ne pas négliger le temps des importations et les impacts qu’elles peuvent avoir sur les performances globales du site, et ce, même sur Magento 2.
Par exemple, une plateforme Magento internationale, sur plusieurs fuseaux horaires. Celle-ci pourra se retrouver dans le cas où les imports se succéderont 24h/24. Pour supporter cela, il sera peut-être plus judicieux de dédier un serveur spécifiquement aux échanges entre Magento et l’ERP.


Conclusion :



Magento a considérablement amélioré ses performances avec Magento 2 (PHP7, compilation CSS, indexation, gestion du cach) et a également facilité son intégration avec des outils externes. Étant tous conscients du lien très étroit qu’il y a entre la vitesse du site e-commerce et le taux de transformation, cet aspect constitue un avantage non négligeable dans la réalisation des objectifs de l’entreprise et surtout un facteur certain pour l’accélération de son ROI. Malgré cela, il est important de définir une réelle politique de performance qui permettra de positionner clairement et efficacement un ratio coût / objectifs.


A lire aussi

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Actualité

NEWSLETTER X2i

Recevez en exclusivité notre actualité par e-mail :
conseils, nouveautés Magento, événements e-commerce, livres blancs...