Cette page a été rédigée en anglais par nos experts, puis traduite par une IA pour vous y donner accès rapidement!
Pour la version originale, c’est par ici.Magento est une puissante plateforme de e-commerce qui anime des milliers de boutiques en ligne à travers le monde. Son environnement flexible, évolutif et riche en fonctionnalités en fait un choix de premier ordre pour les commerçants de nombreux secteurs d’activité.
Cependant, la richesse des fonctionnalités et la complexité de Magento peuvent créer des goulots d’étranglement au niveau des performances, surtout à mesure que les entreprises se développent. L’augmentation des catalogues de produits, les volumes de trafic élevés et les processus de paiement complexes peuvent peser sur les performances du site, entraînant des temps de chargement plus longs et une baisse des taux de conversion.
En suivant les bonnes pratiques essentielles, les développeurs, les administrateurs de site et les architectes e-commerce peuvent s’assurer que leurs boutiques Magento évoluent efficacement, en offrant à la fois des performances élevées et une expérience utilisateur fluide.
Cet article explore le modèle Magento 2 Community Edition récemment relancé sur Upsun Cloud, en mettant en avant les optimisations intégrées. Ces améliorations combinent les bonnes pratiques de Magento et notre grande expérience en matière d’hébergement et de mise à l’échelle de la plateforme.
Déploiement de Magento en un clic sur Upsun Cloud
L’un des principaux avantages d’Upsun Cloud, c’est la fonctionnalité de déploiement de Magento en un clic, qui simplifie le processus de configuration. Cet environnement préconfiguré comprend :
- ECE Tools pour des déploiements cloud automatisés
- L’intégration du CDN Fastly pour des performances améliorées
- Mise en cache Redis optimisée pour une vitesse
accrue
Les dernières optimisations Magento pour une efficacité maximale
Commençons par le fichier composer.json de ce dépôt. Ce fichier fournit les éléments de base de l'application. On a inclus les éléments suivants pour te faciliter le processus de développement :
"magento/ece-tools": "^2002",
"fastly/magento2": "*",
"markshust/magento2-module-disabletwofactorauth": "*",
"n98/magerun2-dist": "*"
Ces paquets améliorent l’expérience Magento sur Upsun Cloud
- Ece-tools simplifie la compilation et le déploiement sur Upsun Cloud en détectant la plateforme et en ajustant la configuration de l'application à l'aide des variables d'environnement que nous fournissons.
- On inclut également le module Fastly, notre CDN de prédilection. De plus, on inclut un package séparé qui désactive l’authentification à deux facteurs (nécessaire car les environnements de développement ne sont pas toujours en mesure d’envoyer des e-mails vérifiés) et ;
- l’outil n98 magerun, que tu peux appeler depuis ton application à l’aide de :
vendor/bin/n98-magerun2
Le fichier Composer utilise également le miroir https://mage-os.org/distribution/
L'utilisation du miroir https://repo.magento.com/ nécessite une authentification. Si tu souhaites l'utiliser, il te suffit de suivre les instructions fournies dans le dépôt.
Le fichier suivant important dans le dépôt est .magento.env.yaml
Ce fichier est au cœur de la configuration de l’application Magento et contient de nombreuses petites améliorations en termes de performances et de stabilité.
- Dans notre configuration, rien que pour la mise en cache, on a ajouté plusieurs améliorations de performances, un service de session Redis séparé, la mise en cache L2, le cache périmé et le préchargement de certaines clés de cache — tout ça est désormais activé par défaut.
- On a ajusté les tâches cron et les consommateurs pour qu’ils ne traitent que 250 messages à la fois. Ça permet de s’assurer que toutes les tâches cron des consommateurs s’exécutent, sans pour autant tourner indéfiniment. Tu peux ajuster les tâches cron et augmenter cette valeur sur les formules plus importantes.
- Le déploiement de contenu statique (SCD) est configuré pour offrir les temps de déploiement les plus rapides et les plus courts possibles avec Magento, grâce à une stratégie SCD compacte. Si tu ajoutes ou supprimes des modules, pense à utiliser l’extrait de code ci-dessous pour valider l’état correct :
vendor/bin/ece-tools config:dump
Notre fichier .upsun/config.yaml a été mis à jour avec de nouveaux services pour prendre en charge la dernière version de Magento. Il contient également deux ajustements MariaDB, qui facilitent les processus d’indexation de longue durée :
optimizer_switch: “rowid_filter=off”
optimizer_use_condition_selectivity: 1
Dernier point, mais non des moindres : le fichier .upsun/config.yaml
On a ajouté des points de terminaison supplémentaires en lecture et en écriture pour le service de base de données. Et si tu déploies le modèle sur un cluster hautement disponible, plusieurs points de terminaison seront également disponibles pour Redis.
- Le hook de build installe nvm et node, au cas où tu utiliserais une PWA dans ton build et/ou MagePack. Il utilise ensuite le processus ece-tools pour effectuer le build et terminer le SCD.
- La dernière ligne de la build comporte une petite modification : elle garantit que tous les crons fournis à l’application sont configurés pour s’exécuter de manière séquentielle, et non en parallèle. Si tu disposes de ressources suffisantes, tu peux choisir de supprimer cette ligne.
- Ece-tools gère les processus de déploiement et post-déploiement, en détectant et en mettant à jour les configurations nécessaires ainsi que les mises à niveau de l’application.
- La section cron a été mise à jour pour gérer le processus cron séquentiel. Désormais, il y a un processus de nettoyage du dossier des rapports et une rotation des journaux d’application tous les 10 jours.
Les emplacements sont conformes à la norme de l’application Magento, avec l’ajout d’exemples pour une redirection vers Apple Pay. On constate souvent que la vérification du domaine Apple Pay est une exigence pour les commerçants.
Trois bonnes pratiques Magento indispensables pour des performances optimales
En plus du modèle et de la meilleure configuration pour l’application, on te recommande ces bonnes pratiques quand tu utilises Magento.
1. Utilise des réseaux de diffusion de contenu (CDN)
Un CDN comme Fastly peut alléger le trafic et réduire le Time-to-First-Byte (TTFB) partout dans le monde. En tirant parti des CDN, tu peux améliorer la vitesse de chargement des pages jusqu’à 60 %, comme le montrent des mises en œuvre concrètes.
Recommandations concernant les CDN :
- Réduis les vidages automatiques : vérifie sur Fastly s’il y a des vidages de cache excessifs — les vidages automatiques déclenchés par des modules mal configurés peuvent complètement annuler la mise en cache.
- Tire parti des fonctionnalités clés de Fastly : Upsun Cloud inclut des fonctionnalités Fastly supplémentaires pour améliorer les performances.
- Mise en cache de pages complètes pour le CDN Fastly : toutes les opérations s’effectuent sur le CDN exactement comme si elles étaient réalisées sur tes instances d’infrastructure.
- Fastly Image Optimizer (Fastly IO) : utilise-le pour décharger la transformation des images vers le cloud Fastly, ce qui réduit la latence et améliore la vitesse de diffusion initiale du contenu à tes utilisateurs finaux. Fastly IO est inclus dans ton service Fastly ; tu peux l’activer depuis ton panneau d’administration Adobe Commerce. Pour plus de détails, consulte la documentation Adobe Commerce Cloud.
- Tu n’as besoin de conserver qu’une seule copie haute résolution de chaque image sur le serveur. Fastly fournit une image de taille adaptée pour les vignettes et les appareils lents ou à faible résolution. Ça fonctionne avec les formats d’image courants comme .png, .jpeg et .gif.
- L'extrait de code d'optimisation d'images Fastly se compose de code VCL permettant d'optimiser les images sur les nœuds périphériques Fastly.
- Cache en deux étapes : les réponses sont mises en cache à la fois près du client et près de ton serveur Adobe Commerce.
- Forcer le TLS : quand cette option est activée, elle redirige toutes les requêtes HTTP vers HTTPS.
- Listes de contrôle d’accès en périphérie (ACL) : cette fonctionnalité permet de gérer les adresses IP utilisées pour autoriser ou bloquer l’accès aux ressources.
- Page d’erreur/de maintenance : grâce à ces fonctionnalités, configure une page 503 personnalisée à l’image de ta marque.
- Authentification de base : tu peux activer ou désactiver l’authentification HTTP de base pour restreindre l’accès à un site web.
- Géo-IP : tu peux rediriger les visiteurs vers la boutique en ligne en fonction de leur code pays ou restreindre l’accès aux pays où tu n’exerces pas d’activité.
2. Optimiser les performances côté serveur
Explorer les intégrations clés et activer les bons paramètres peut considérablement améliorer les performances de ta boutique Magento.
Recommandations d’optimisation côté serveur :
- Définir les limites de mémoire : Définis des limites de mémoire appropriées pour l’
php.ini, afin d’assurer la stabilité du serveur. Pour la plupart des environnements, 512 Mo ou 1 Go suffisent. Des limites trop élevées (par exemple, 4 Go) peuvent indiquer des problèmes de performances sous-jacents et doivent faire l’objet d’une analyse plus approfondie. - Récupération correcte après une erreur : redémarre les processus Nginx et PHP après des corrections ou des modifications importantes pour supprimer les workers orphelins et garantir une utilisation efficace des ressources. Les utilisateurs finaux peuvent le faire via runsv, systemctl ou pkill.
- Pour éviter que les pages d’administration ne dépassent le délai d’expiration, Magento est généralement configuré avec un `max_execution_time` d’au moins 600 s (10 minutes). Mais en cas de panne, tu te retrouves avec des workers PHP orphelins qui tentent de renvoyer des réponses à des clients qui ont déjà renoncé à les recevoir, ou pire encore, à des clients qui ont déjà actualisé la page. C’est pourquoi il est essentiel d’accélérer la reprise après une panne du service.
- Configuration de PHP et du serveur web : optimise les paramètres de PHP-FPM pour t'assurer que tes workers PHP ne manquent pas de mémoire.
- Optimisation de la base de données : explore les stratégies d’optimisation des performances de MySQL ou MariaDB, comme l’indexation de la base de données, la mise en cache des requêtes et l’utilisation de la séparation lecture-écriture dans les environnements multi-serveurs. Analyse et optimise régulièrement les requêtes lentes à l’aide d’outils comme
mysqlslowdump pour éviter les pannes causées par des requêtes peu performantes. - Lance souvent Mysqlanalyze — au moins après chaque mise à jour du service et de l’application, mais idéalement selon un calendrier régulier.
- Assure-toi que les tables sont optimisées pendant les fenêtres de maintenance. Ça permet de libérer de l’espace disque et d’améliorer les performances.
3. Exploite les outils de surveillance et de profilage des performances
L’optimisation des performances n’est pas une initiative ponctuelle, c’est un processus continu. Une surveillance et des tests continus sont essentiels pour maintenir la stabilité.
Recommandations en matière de surveillance et de profilage :
- Blackfire : utilise des outils comme Blackfire pour surveiller et profiler le cycle requête-réponse de Magento, afin d’identifier les points à améliorer.
- Magento Profiler : utilise le profileur intégré à Magento pour mesurer le temps d’exécution des requêtes de base de données, le temps de rendu des blocs et la consommation de mémoire.
- Tests de charge continus : mets en place des frameworks de tests de charge comme Apache JMeter et Gatling pour simuler des scénarios de trafic intense et évaluer les performances du système en situation de charge.
- Modules : quand tu rencontres un problème de performances, peux-tu reproduire le problème en n’utilisant que les modules de base ? Si ce n’est pas le cas, ce sont les modules qui posent problème.
Conclusion : ne te contente pas d’ajouter des ressources, règle la cause profonde
L’un des principaux conseils issus de notre récent webinaire Magento était d’éviter de se contenter d’ajouter des ressources pour résoudre les problèmes de performances. Concentre-toi plutôt sur le diagnostic et la résolution des goulots d’étranglement sous-jacents.
En suivant ces bonnes pratiques et en configurant correctement ta boutique Magento, tu poses les bases d’une évolutivité sans heurts. Une fois les optimisations adéquates mises en place, tu pourras te concentrer sur le développement de ton activité plutôt que sur le dépannage des problèmes de la plateforme.
Tu as des questions sur l’optimisation de ton site Magento sur Upsun Cloud ? N’hésite pas à nous contacter, on est là pour t’aider.
Prêt à pérenniser ta boutique Magento ?
Profite d’une évolutivité sans effort, d’optimisations de performances intégrées et de processus simplifiés avec Upsun Cloud.
Prochaines étapes :
Tu as des questions sur l'optimisation de ton site Magento ? Nos spécialistes sont là pour t'aider à atteindre des performances optimales.