Fermer

mars 2, 2021

Comment configurer Magento 2.4 avec Docker


La version la plus récente de Magento Commerce, 2.4 comprenait de nombreuses nouvelles fonctionnalités et mises à jour. La mise à niveau introduit la prise en charge des versions PHP 7.4, Elasticsearch 7 et MySQL 8. Non seulement cela, mais il y a une amélioration significative de la sécurité avec l'authentification à deux facteurs activée par défaut pour l'administrateur Magento. La version introduit également un catalogue de moteur de recherche par défaut pour Elasticsearch.

Dans cet article, je vais passer en revue quelques choses que vous pouvez faire pour obtenir les meilleurs résultats de Magento 2.4.

Configurer Magento 2.4 avec un conteneur Docker

] Mettez à niveau ou installez Magento 2.4 dans un conteneur isolé Docker pour le développement. Cela offre une meilleure élasticité et la possibilité de créer des instances distinctes à des fins diverses sur une seule machine hôte sous-jacente. Veuillez noter que le conteneur Docker peut fonctionner sur différentes versions de PHP en même temps. En outre, il fournit une couche de sécurité supplémentaire pour accéder au code du site Web.

Pourquoi Elasticsearch est indispensable pour Magento 2.4

Au lieu d'utiliser MySQL pour la recherche, Magento 2.4 utilise désormais Elasticsearch comme moteur de recherche par défaut. Un nœud actif Elasticsearch est requis pour terminer la version Magento 2.4. De même, un RabbitMQ peut également être utilisé pour publier des messages dans une file d'attente et peut définir des consommateurs qui reçoivent des messages de manière asynchrone. Le service Elasticsearch peut également être créé dans un conteneur Docker. À des fins de développement, nous avons observé que la version recommandée et prise en charge d'Elasticsearch-7.6.x offre une certaine optimisation des performances par rapport à la version précédente.

Il est important de suivre le processus de configuration système nécessaire tel que recommandé dans la documentation d'Elasticsearch en ce qui concerne le descripteur de fichier et mémoire virtuelle. Si l'hôte sous-jacent utilise une mémoire SWAP, il est recommandé de limiter l'utilisation de la mémoire pour éviter que le service ne soit tué en raison d'une utilisation élevée de la mémoire.

Utilisez Varnish avec Magento 2.4

Varnish, également appelé «HTTP accéléré», est conçu pour être utilisé avec le protocole HTTP. Magento 2.4 prend en charge la version Varnish-6.x. Avec l'introduction de la dernière prise en charge de Varnish, la plate-forme est optimisée pour servir rapidement les ressources HTTP à l'utilisateur.

 Adobe - Contenu pour tous
Contenu pour tous

Entreprises capables de répondre rapidement et systématiquement aux demandes des consommateurs prospèrent à une époque de contenu infini. Découvrez comment créer des expériences fluides pour vos clients omnicanal.

Obtenir le guide

Comme indiqué ci-dessous, toutes les demandes d'actifs peuvent être satisfaites par Varnish. Pour les requêtes qui n'atteignent pas les serveurs Web, Varnish peut également renvoyer le contenu mis en cache et réduire le nombre de requêtes ultérieures devant être remplies par Magento.

 Pic1

Dans la dernière version de Varnish pour Magento 2.4, il est recommandé d'utiliser la VCL pour la même version de Varnish-6.x. Cela est dû au fait que certaines anciennes variables ont été obsolètes et des fonctionnalités telles que le redémarrage de la transaction après l'expiration de la durée de vie ou de grâce. Le service Varnish ne démarrera pas s'il n'est pas pris en charge par une configuration VCL.

Configurer et utiliser Redis

Pour stocker la session PHP et le FPC, Magento fournit une option CLI pour configurer la mise en cache Redis. Le paramètre de mise en cache peut être configuré en apportant des modifications dans le fichier app / etc / env.php pour un cache backend haute vitesse avec prise en charge complète des balises de cache. Ceci est recommandé dans les environnements multi-serveurs.

Utilisation de MySQL-8

Magento 2.4 est testé avec MySQL-8, mais il supporte également des versions plus anciennes comme MySQL5.7. Cependant, cela n'a pas été testé et recommandé. La version MySQL-8 a quelques modifications qui prennent en charge l'optimisation des requêtes et l'indexeur pour optimiser les performances de Magento.

MySQL-8 a la journalisation binaire activée par défaut pour la réplication de la base de données, qui peut être désactivée pour réduire le temps de transaction et la charge de travail de la base de données. . Mais, dans une réplication de base de données dans un environnement de cluster, c'est une bonne chose d'avoir un retour plus rapide vers un nœud sain et de bifurquer l'opération de base de données READ et WRITE.

Infrastructure Setup for Magento2.4

Comme indiqué dans le diagramme ci-dessous, un CDN Azure a été configuré pour fournir des contenus statiques à large bande passante, des contenus dynamiques accélérés et WAF pour bloquer tout accès non autorisé aux fichiers sensibles. Ensuite, Varnish est placé pour accepter les requêtes HTTP et sert le contenu mis en cache qui est disponible sur sa mémoire.

 Pic2

Les actifs non mis en cache seront proxy vers le conteneur Magento fonctionnant sur un serveur cloud dédié. Pour la fonctionnalité de recherche, un service Elasticsearch est partagé entre les serveurs WEB et un serveur de base de données MySQL-8, ainsi qu'avec les services de cache Redis pour stocker les sessions Magento et le cache backend.

En utilisant l'architecture ci-dessus, nous avons publié six environnements différents pour les développements Magento-2.

Pourquoi cela aide

La technologie Docker est plus contrôlable et plus granulaire car c'est une méthode basée sur des microservices axée sur l'efficacité. À l'aide de conteneurs, les développeurs peuvent créer des environnements requis isolés des autres applications exécutées sur le même hôte si vous créez du code avec une infrastructure et une configuration répétables. Lorsqu'une application est conteneurisée, elle est isolée des autres applications exécutées dans le même système, l'accès direct au code de l'application n'est donc pas facile. Docker nous permet de créer, de tester et de publier des images qui peuvent être déployées sur plusieurs serveurs et offre la flexibilité nécessaire pour faire évoluer les instances dans un court laps de temps, et commence à servir le trafic de production. L'utilisation d'un accélérateur, comme Varnish & CDN, améliore l'opérabilité de l'application et peut réutiliser le contenu mis en cache pour une livraison plus rapide du contenu.

À propos de l'auteur

Je suis un administrateur système, fournit une solution et la mise en œuvre de la conception de projets critiques , déploiement automatique, Docker et livraison d'applications et de services technologiques dans un système d'exploitation Linux et un cadre de commerce électronique Magento.

Plus d'informations de cet auteur




Source link