
Gestion des sites Web à fort trafic sous Drupal. Étude de cas d'un site de recettes
Les utilisateurs qui visitent un site web s'attendent à ce qu'il fonctionne rapidement et sans problème. Par conséquent, il est de la responsabilité des propriétaires du site web de garantir et maintenir cela. Un tel défi est encore plus grand pour les sites web à fort trafic. De nombreux visiteurs en même temps peuvent causer des problèmes non seulement avec le site web mais aussi avec l'infrastructure du serveur. Nous vous montrerons comment gérer cela en utilisant un site de recettes populaire comme exemple.
Défi - l'un des plus grands sites de recettes en Pologne
Le portail Kwestia Smaku recueille une base de données très étendue de recettes et d'inspirations culinaires que les utilisateurs peuvent trouver et préparer dans leurs propres cuisines. Une interface claire et conviviale les encourage à utiliser ce site, c'est pourquoi il est l'un des sites de recettes les plus visités en Pologne. Selon les données disponibles sur le web, il atteint des millions de visites par mois.
Dans un premier temps, l'équipe de Kwestia Smaku nous a approché avec de nouvelles idées à mettre en œuvre pour leur site Drupal. Nous les avons analysées puis créé les fonctionnalités nécessaires. Aux étapes suivantes de notre collaboration, nous avons dû relever le défi de la popularité croissante du site. Le trafic augmente encore plus lors des fêtes de saison (Noël, Pâques). Malgré un trafic élevé, la plateforme devait se générer et se charger rapidement afin que les utilisateurs puissent parcourir les recettes confortablement.
Implémentations sur un site à fort trafic
Lorsque de nombreux utilisateurs accèdent au site web pendant qu'ils cuisinent, l'éteindre n'est pas une option, même pour un moment. Par conséquent, un processus de haute qualité était nécessaire pour réaliser même les plus petits changements. Ensuite, afin que le site soit disponible sans interruptions avant l'implémentation, nous avons effectué plusieurs tests pour écarter tout problème pendant et après sa réalisation.
Nous avons effectué plusieurs tests sur un environnement de test en utilisant Jenkins pour garantir que l'implémentation des changements sur l'environnement de production se déroule avec succès. Cela a été réalisé pendant les heures de nuit (22h - 6h), en utilisant le panneau AEgir.
Les résultats - optimisation des performances et nouvelles fonctionnalités
Le fort trafic sur le site génère de nombreuses requêtes à la base de données. Pour réduire le nombre d'opérations sur la base de données pendant la recherche de contenu, nous avons utilisé la plateforme Apache Solr. Toutes les vues de résultats qui utilisaient auparavant la base de données directement, ainsi que le moteur de recherche et les filtres, ont été modifiés et utilisent maintenant la plateforme Solr. Cela a également permis l'implémentation de la technique AJAX, c'est-à-dire la mise à jour d'éléments individuels sans recharger l'intégralité du site.
Recherche flexible
En utilisant Apache Solr et le module Drupal Search API, nous avons développé une fonctionnalité de recherche flexible et précise, adaptée aux besoins des visiteurs du site Kwestia Smaku. Ils peuvent maintenant rechercher des recettes en fonction d'une phrase, des ingrédients ou du type de plat qu'ils souhaitent cuisiner.

Optimisation
La vitesse de chargement du site joue un rôle important lorsque de nombreux utilisateurs le parcourent simultanément. Par conséquent, nous avons dû nous occuper de la collecte très optimale des données affichées sur le site. Nous avons réalisé d'innombrables optimisations de types différents et de requêtes de base de données et défini la durée de vie de la mémoire temporaire (cache). Nous avons utilisé pour cela les outils New Relic et Blackfire.
Interface graphique
En utilisant Sass, Less et JavaScript, nous avons effectué des changements front-end pour adapter l'interface graphique à un affichage clair sur les écrans de divers appareils (réactivité). Les utilisateurs ont ainsi acquis une interface simple et conviviale, leur permettant d'utiliser librement le site et de parcourir les recettes.
Moteurs de recherche et réseaux sociaux
Une grande importance a été accordée à rendre les recettes conviviales dans les résultats des moteurs de recherche, ainsi qu'à partager des recettes sur les réseaux sociaux. Nous avons utilisé le module Drupal Metatag pour cela, avec une configuration selon les directives du client, incluant le nombre d'avis, la note moyenne de la recette et une photo adaptée aux moteurs de recherche et aux réseaux sociaux.

Favoris
C'est une fonctionnalité très populaire qui permet aux utilisateurs de créer leurs propres listes de recettes favorites. Pour partager la liste de recettes, ils ont la possibilité de cloner toute liste sur leur propre compte, envoyer un lien de la liste à une adresse e-mail spécifique et partager la liste sur Facebook. La fonctionnalité repose sur le module Flag et la partie visuelle sur une bibliothèque qui permet l'utilisation de la fonction glisser-déposer.

Autres commodités pour les utilisateurs
Pour offrir aux utilisateurs la meilleure expérience possible, nous avons introduit la possibilité de se connecter via votre compte Facebook.
Une autre fonctionnalité que nous avons préparée est un calculateur de cuisine. Grâce à lui, les utilisateurs peuvent trouver des informations de base sur les mesures et poids utilisés en cuisine et calculer les quantités d'ingrédients nécessaires.

Notes privées
Les utilisateurs peuvent ajouter leurs propres notes aux recettes pour les adapter encore davantage à leurs préférences. Cela rend Kwestia Smaku adapté tant aux débutants qu'aux fans de cuisine expérimentés.

Identification des appareils mobiles
Pour empêcher le site de recettes d'éteindre l'écran des appareils mobiles pendant la préparation des repas, nous avons introduit la possibilité de bloquer le rétroéclairage.

Support de sécurité
En tout temps, nous veillons à ce que le site ait la version actuelle du noyau Drupal et des modules. Lorsque des mises à jour de sécurité sont publiées, nous les implémentons immédiatement.
Comment gérer les sites à fort trafic dans Drupal ?
Grâce à l'optimisation du site, Kwestia Smaku peut continuer à se développer sans avoir à changer de serveurs ou étendre l'infrastructure serveur. La vitesse de fonctionnement est très satisfaisante, et les fonctionnalités adaptées sont suffisantes pour une utilisation claire et très facile du site.
Au cours du développement, nous avons rencontré plusieurs défis significatifs que nous avons dû surmonter. Tout le développement a été organisé de manière à ne pas interférer avec le fonctionnement du site de production et répondre aux attentes du client, malgré un trafic important. Les changements de production ont été publiés la nuit où le trafic était faible. Lors de la mise en œuvre des changements sur le site, nous avons travaillé avec le fournisseur d'hébergement pour garantir que les problèmes inattendus soient résolus rapidement, et le temps d'indisponibilité soit maintenu au minimum.
Si vous avez besoin d'aide pour gérer et implémenter des changements sur un site à fort trafic sous Drupal, voyez comment notre équipe de support Drupal peut vous soutenir.