juil 27

Magento sur le grill!

S’il est désormais acquis pour tous (ou presque) que Magento offre toute la richesse fonctionnelle requise pour des sites e-commerce professionnels exigeants, il existait peu d’études approfondies sur sa capacité à accompagner les projets les plus ambitieux en termes de volumétrie, et nous étions fréquemment interrogés sur cette question.  Magento peut-il  gérer un catalogue de plusieurs millions d’articles ?  Une fréquentation de plus de 20 millions de visites par mois mois ?   Plusieurs milliers de commandes à l’heure ?

La réponse à cette question dépend évidemment d’un certain nombre de paramètres pas forcément liés directement à la qualité intrinsèque de Magento (qualité des développements, infrastructure d’hébergement etc…) Toutefois, si l’on part du postulat que toutes les bonnes pratiques sont respectées à tous les niveaux, qu’est réellement capable de faire Magento?

Pour y répondre de manière factuelle, nous avons mené sur plusieurs semaines, une grande campagne de tests de charge, mobilisant jusqu’à une douzaine de serveurs octo-cœurs, déroulant des scénarios complets et représentatifs d’un trafic réel, sur plusieurs jours de charge.

Nous avons compilé ces résultats et procédé à quelques analyses présentées dans un document téléchargeable ici : http://factory.clients.smile.fr/docs/magento-performances_et_scalabilite.pdf

Quelques mots sur la démarche

L’infrastructure et les scénarios de tests mis en œuvre ont pour objectif de mesurer plusieurs indicateurs :

  • les temps de réponse des principaux écrans de navigation dans un contexte de très forte charge
  • la capacité de service nominale d’un serveur et la scalabilité d’une architecture multi-serveurs
  • le trafic supportée en fonction du nombre de frontaux
  • le nombre de commandes et de mise au panier par heure en fonction du nombre de frontaux
  • l’endurance de la plateforme sur une période de surcharge de 8h consécutives

Le document présente l’ensemble de l’architecture mise en oeuvre ainsi que les adaptations apportées à Magento pour pouvoir supporter de telles charges.

Alors, ça donne quoi?

En synthèse, la plateforme Magento a présenté un bon comportement en charge et une excellente extensibilité.

Les temps de réponse unitaires sont excellents pour les pages qui utilisent pleinement le dispositif de cache, et sont plus élevés pour les pages de mise au panier ou de confirmation de commande. Un aspect important des choix d’architecture logicielle de Magento est de solliciter principalement la CPU des frontaux, et assez peu la base de données.   C’est cette caractéristique qui permet une très bonne extensibilité, c’est-à-dire la capacité à mettre en place une plateforme à très haute capacité d’accueil par simple ajout de serveurs.   Cette extensibilité permet de faire monter en puissance une plateforme au fur et à mesure que son succès se confirme, sans rupture ni grande migration.

Cette campagne de tests démontre qu’une plateforme Magento bien conçue peut accueillir 28 millions de visites par mois, en servant jusqu’à 800 pages par seconde aux heures de pointe.

Scalabilité de Magento

La base de données quant à elle, arrive à servir 20 serveurs frontaux en conservant une charge acceptable. Au delà, il faudra commencer à réfléchir à d’autres pistes d’optimisation.

Ce qu’il faut retenir

Notons, pour fixer les idées, que ces 28 millions de visites / mois, associées à une hypothèse de taux de transformation de 2% correspondent, pour un panier moyen de 20 €, à un CA mensuel de 22 M€, et pour un panier moyen de 100 €, à un CA mensuel de 112 M€.   Il y a peu d’acteurs dans le monde dans cette catégorie.

Indicateur Valeur
Nombre d’articles dans le catalogue 1 050 000
Capacité d’un unique frontal Magento en visites / mois 1 525 200
Capacité de 10 frontaux Magento en visites / mois 14 136 000
Capacité de 10 frontaux Magento en commandes / heure 1 080
Nombre maximum de frontaux pour une base de données 20
Capacité maxi d’une plateforme Magento sur une base de données unique, en visites / mois 28 millions

—————-

Conclusion

Beaucoup de chemin a été fait depuis les premières versions de Magento qui souffraient, il faut bien le reconnaître, de quelques soucis de performances. Aujourd’hui, la donne a changé et Magento n’a définitivement pas à rougir face aux mastodontes du e-commerce sur cette question de la scalabilité et des performances. Et ce que l’on sait aujourd’hui de Magento 2 qui nous arrivera l’année prochaine nous laisse espérer des résultats encore meilleurs…

écrit par Frédéric de Gombert \\ tags: , , ,