Magento est une puissante plateforme d'e-commerce qui fait fonctionner des milliers de boutiques en ligne dans le monde entier. Son environnement flexible, évolutif et riche en fonctionnalités en fait un choix de premier ordre pour les détaillants de divers secteurs.
Cependant, l'ensemble des fonctionnalités et la complexité de Magento peuvent créer des goulots d'étranglement au niveau des performances, en particulier lorsque les entreprises se développent. La croissance 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 lents et des taux de conversion réduits.
En suivant les meilleures pratiques, les développeurs, les administrateurs de sites et les architectes eCommerce peuvent s'assurer que leurs boutiques Magento évoluent efficacement, en offrant à la fois des performances élevées et une expérience utilisateur transparente.
Cet article explore le modèle Magento 2 Community Edition récemment relancé sur Upsun, en soulignant les optimisations intégrées. Ces améliorations intègrent les meilleures pratiques de Magento ainsi que notre expérience approfondie de l'hébergement et de la mise à l'échelle de la plateforme.
Déploiement de Magento en un clic sur Upsun
L'un des plus grands avantages d'Upsun est la fonction de déploiement de Magento en un clic, qui simplifie le processus d'installation. Cet environnement préconfiguré comprend
- ECE Tools pour des déploiements automatisés dans le nuage
- IntégrationFastly CDN pour une meilleure performance
- Mise en cacheRedis optimisée pour une vitesse accrue
Les dernières optimisations de Magento pour une efficacité maximale
Commençons par le fichier composer.json de ce repo. Ce fichier fournit les éléments de base de l'application. Nous avons inclus les éléments suivants pour faciliter votre travail 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
vendor/bin/n98-magerun2
Le fichier de composition utilise également le miroir https://mage-os.org/distribution/
L'utilisation du miroir https://repo.magento.com/ nécessite une authentification. Si vous souhaitez l'utiliser, suivez simplement les instructions du référentiel.
Le prochain fichier d'étape important dans le référentiel est .magento.env.yaml
Ce fichier est le coeur de la configuration de l'application Magento et contient beaucoup de petites améliorations de performance et de stabilité.
- Dans notre configuration, pour la mise en cache uniquement, nous avons ajouté plusieurs améliorations de performance, un service de session Redis séparé, une mise en cache L2, une mise en cache Stale, et un préchargement de certaines clés de cache tous maintenant activés par défaut.
- Nous avons ajusté le cron et les consommateurs pour qu'ils ne traitent que 250 messages à la fois. Nous avons veillé à ce que tous les crons des consommateurs s'exécutent, mais pas indéfiniment. Vous pouvez ajuster les crons et augmenter cette valeur sur les plans plus importants.
- Le déploiement de contenu statique (SCD) est réglé sur les temps de déploiement les plus rapides et les plus courts possibles avec Magento en utilisant une stratégie SCD compacte. Si vous ajoutez ou supprimez des modules, assurez-vous d'utiliser l'extrait ci-dessous pour pousser le bon état:
vendor/bin/ece-tools config:dump
Notre fichier .upsun/config.yaml a été mis à jour avec de nouveaux services pour supporter la dernière version de Magento. Il contient également deux modifications de MariaDB, qui aident à gérer les processus d'indexation qui durent longtemps :
optimizer_switch: “rowid_filter=off”
optimizer_use_condition_selectivity: 1
Le dernier point, mais non le moindre, est le fichier .upsun/config.yaml
Nous avons ajouté des points d'extrémité supplémentaires en lecture et en écriture pour le service de base de données. Et si vous déployez le modèle sur un cluster hautement disponible, les multiples points de terminaison seront également disponibles pour Redis.
- Le hook de construction installe nvm et node, juste au cas où vous utiliseriez une PWA dans votre construction et/ou MagePack. Il utilise ensuite le processus ece-tools pour construire et compléter le SCD.
- La dernière ligne de la construction est un petit changement ; elle assure que tous les crons livrés à l'application sont configurés pour s'exécuter séquentiellement, et non en parallèle. Si vous disposez de ressources suffisantes, vous pouvez choisir de supprimer cette ligne.
- Ece-tools gère les processus de déploiement et de post-déploiement, en détectant et en mettant à jour les configurations nécessaires et les mises à niveau de l'application.
- La section cron a été mise à jour pour gérer le processus cron séquentiel. Il y a maintenant un processus de nettoyage pour le dossier des rapports et une rotation de 10 jours pour les journaux d'application.
Les emplacements sont la norme pour l'application Magento, avec l'ajout d'exemples pour un passage Apple Pay. Nous voyons souvent la vérification du domaine Apple Pay comme une exigence du marchand.
Trois bonnes pratiques essentielles de Magento pour des performances optimales
En plus du modèle et de la meilleure configuration pour l'application, nous recommandons ces meilleures pratiques lors de l'utilisation de Magento.
1. Utiliser des réseaux de diffusion de contenu (CDN)
Un CDN comme Fastly peut décharger le trafic et réduire le temps d'accès au premier octet (TTFB) à l'échelle mondiale. En tirant parti des CDN, vous pouvez améliorer la vitesse de chargement des pages jusqu'à 60 %, comme l'ont montré des implémentations réelles.
Recommandations pour les CDN :
- Réduire les vidanges automatisées : Vérifiez que Fastly ne présente pas de vidanges de cache excessives, les vidanges automatisées déclenchées par des modules mal configurés peuvent annuler complètement la mise en cache.
- Exploiter les fonctionnalités clés de Fastly : Upsun inclut des fonctionnalités Fastly supplémentaires pour améliorer les performances.
- Cache de page complet pour Fastly CDN : Toutes les opérations agissent sur le CDN exactement comme si elles étaient effectuées sur les instances de votre infrastructure.
- Optimiseur d'image Fastly (Fastly IO) : Utilisez-le pour décharger la transformation d'image vers le cloud Fastly, réduisant ainsi la latence et améliorant la vitesse de livraison du contenu initial à vos utilisateurs finaux. Fastly IO est inclus dans votre service Fastly ; vous pouvez l'activer à partir de votre panneau d'administration Adobe Commerce. Pour plus de détails, veuillez consulter la documentation Adobe Commerce Cloud.
- Vous n'avez besoin de conserver qu'une seule copie haute résolution de chaque image sur le serveur. Fastly fournit une image de taille appropriée pour les vignettes et les appareils lents ou à faible résolution. Il fonctionne avec les formats d'image courants tels que .png, .jpeg et .gif.
- L'extrait d'optimisation d'image Fastly consiste en un code VCL permettant d'optimiser l'image sur les nœuds de bordure Fastly.
- Cache en deux étapes : Les réponses sont mises en cache à la fois près du client et près de votre serveur Adobe Commerce.
- Force TLS : Lorsqu'il est activé, ce paramètre redirige toutes les requêtes HTTP vers HTTPS.
- Listes de contrôle d'accès (ACL) : Cette fonction permet de gérer les adresses IP utilisées pour autoriser ou bloquer l'accès aux ressources.
- Page d'erreur/de maintenance : Cette fonction permet de configurer une page 503 personnalisée avec votre marque.
- Authentification de base : Vous pouvez activer l'authentification de base HTTP pour restreindre l'accès à un site web.
- Géo-IP : vous pouvez rediriger les visiteurs vers la vitrine en fonction de leur code pays ou restreindre l'accès aux pays dans lesquels vous n'exercez pas d'activité.
2) Optimiser les performances côté serveur
L'exploration d'intégrations clés et l'activation des bons paramètres peuvent améliorer considérablement les performances de votre boutique Magento.
Recommandations d'optimisation côté serveur :
- Fixer des limites de mémoire : Définissez des limites de mémoire
php.ini
appropriées pour la stabilité du serveur. Dans la plupart des environnements, 512 Mo ou 1 Go suffisent. Des limites excessives (par exemple, 4 Go) peuvent indiquer des problèmes de performance sous-jacents et doivent faire l'objet d'un examen plus approfondi. - Récupération correcte des erreurs : Redémarrer les processus Nginx et PHP après des corrections ou des changements importants pour supprimer les travailleurs orphelins et assurer une utilisation efficace des ressources. Les utilisateurs finaux peuvent le faire via runsv, systemctl ou pkill.
- Pour éviter que les pages d'administration du backend ne s'arrêtent, Magento est généralement configuré avec un max_execution_time d' au moins 600s (10 minutes). Mais lorsque les choses tombent en panne, vous vous retrouvez avec des workers PHP orphelins qui tentent de renvoyer des requêtes à des clients qui ont déjà renoncé à recevoir ces requêtes, ou pire, à des clients qui ont déjà rafraîchi la page. C'est pourquoi il est essentiel d'accélérer la reprise après une panne de service.
- Configuration de PHP et du serveur web : Optimisez les paramètres de PHP-FPM pour vous assurer que vous ne manquez pas de mémoire pour vos travailleurs PHP.
- Optimisation des bases de données : Explorez les stratégies d'optimisation des performances de MySQL ou MariaDB, telles que l'indexation des bases de données, la mise en cache des requêtes et l'utilisation de la séparation lecture-écriture dans les environnements multiserveurs. Analysez et optimisez régulièrement les requêtes lentes à l'aide d'outils tels que
mysqlslowdump
afin d'éviter les pannes causées par des requêtes peu performantes. - Exécutez Mysqlanalyze souvent au moins après chaque mise à niveau de service et d'application, mais idéalement selon un calendrier régulier.
- Veillez à ce que les tables soient optimisées pendant les fenêtres de maintenance. Cela permet de libérer de l'espace disque et d'améliorer les performances.
3. Exploiter les outils de surveillance des performances et de profilage
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 : Utilisez des outils tels que Blackfire pour surveiller et profiler le cycle requête-réponse de Magento, afin d'identifier les points à améliorer.
- Magento Profiler : Utilisez le profileur intégré de 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 : Mettre en œuvre des cadres de test de charge tels qu'Apache JMeter et Gatling pour simuler des scénarios à fort trafic et évaluer les performances du système en cas de stress.
- Modules : Lorsque vous êtes confronté à un problème de performance, pouvez-vous le reproduire en utilisant uniquement les modules de base ? Si ce n'est pas le cas, ce sont les modules qui sont en cause.
Conclusions : ne vous contentez pas d'ajouter des ressources, corrigez le problème à la racine
L'un des principaux conseils de notre récent webinaire Magento était d'éviter d'ajouter simplement plus de ressources pour résoudre les problèmes de performance. Il faut plutôt se concentrer sur le diagnostic et la correction des goulets d'étranglement sous-jacents.
En suivant ces bonnes pratiques et en configurant correctement votre boutique Magento, vous créez les bases d'une évolutivité sans faille. Avec les bonnes optimisations en place, vous pouvez vous concentrer sur la croissance de votre entreprise plutôt que sur la résolution des problèmes de plateforme.
Si vous avez des questions sur l'optimisation de votre site Magento sur Upsun, n'hésitez pas à nous contacter, nous sommes là pour vous aider.
Prêt à assurer l'avenir de votre boutique Magento ?
Faites l'expérience d'une mise à l'échelle sans effort, d'optimisations de performance intégrées et de flux de travail rationalisés avec Upsun.
Prochaines étapes :
Des questions sur l'optimisation de votre site Magento ? Nos spécialistes sont là pour vous aider à atteindre des performances optimales.