Projets

Leroy Merlin gère son catalogue de façon fluide grâce à une base orientée documents

Leroy Merlin gère son catalogue de façon fluide grâce à une base orientée documents
Emmanuel Dieval, ingénieur software Adeo : « Le site Leroy Merlin reçoit jusqu'à 35 millions de visites par mois. »

Leroy Merlin (groupe Adeo) s'appuie sur le moteur de base de données MongoDB Atlas pour mettre à jour son catalogue au fil de l'eau et gérer les filtres de façon dynamique.

PublicitéA l'occasion de la conférence MongoDB.local, le 14 janvier 2020 à Paris, le groupe Adeo, maison mère de l'enseigne Leroy Merlin, a partagé son expérience autour de MongoDB Atlas, version cloud de la base de données orientée documents.

Selon le baromètre Médiamétrie, le site de Leroy Merlin fait régulièrement partie des 15 sites de e-commerce les plus visités en France. En moyenne, il reçoit 35 millions de visites mensuelles, le record actuel étant à 14 millions de visiteurs uniques en un mois. Afin d'offrir une expérience de navigation améliorée aux internautes, le groupe Adeo a décidé il y a un peu plus d'un an de moderniser son site, notamment en remplaçant le moteur de base de données. « Avec l'ancien système, il fallait attendre 24 heures avant que les mises à jour sur l'offre produit soient visibles, le temps d'effectuer les traitements batch », explique Emmanuel Dieval, ingénieur software chez Adeo. Le changement de plateforme avait pour objectif de réduire ces délais, afin d'accélérer le time-to-market. Il s'agissait également d'optimiser le calcul des filtres utilisés pour rechercher des produits dans le catalogue. Sur un catalogue riche d'environ 430 000 références, ce calcul représente en effet des enjeux importants en termes de performances.

Afin de répondre à ces enjeux, le groupe Adeo a lancé un projet dénommé Opus, avec une équipe de 25 personnes chargée de la refonte du site. Pour répondre aux fluctuations en termes de charge, l'équipe voulait impérativement disposer d'un socle flexible, capable de se mettre à l'échelle facilement. Pour cela, elle a opté pour la base de données orientée documents dans le cloud MongoDB Atlas, afin de gérer le catalogue. Celle-ci est hébergée sur Google Cloud Platform (GCP), avec la plateforme Google App Engine pour gérer le déploiement. Pour le développement, l'équipe a retenu les frameworks JavaScript Node.js, Nest et Fastify, ainsi que le langage TypeScript.

Des performances stables grâce à l'auto-dimensionnement

Le site retourne actuellement environ 74 millions de documents chaque jour, et près d'un million de documents sont mis à jour quotidiennement, au fil de l'eau. En production, Adeo a choisi de déployer des clusters de cinq noeuds afin d'assurer une haute disponibilité. « L'écriture dans la base a un impact important sur la taille de notre cluster MongoDB », observe l'ingénieur software. Afin de garantir un niveau de service stable, l'entreprise s'appuie en production sur les fonctionnalités d'auto-dimensionnement de MongoDB Atlas et de GCP.

Pour suivre les performances, l'équipe utilise les métriques fournies par MongoDB, qui affiche notamment l'usage des disques, de la mémoire ou des CPU. Elle s'appuie également sur BlazeMeter pour réaliser des tests sur les différentes configurations, ainsi que sur la solution de monitoring Datadog pour surveiller l'ensemble de la production.

PublicitéParalléliser le calcul des filtres

Afin de permettre aux visiteurs d'effectuer des recherches dans le catalogue de façon contextualisée et dynamique, l'équipe utilise des filtres, calculés en temps réel pour prendre en compte les modifications du catalogue. « Il peut y en avoir jusqu'à 15-20 pour une famille de produits », précise l'ingénieur logiciel. L'entreprise s'appuie pour cela sur les pipelines d'agrégation de MongoDB, qui permettent de paralléliser les calculs. « Nous travaillons en mode agile, en nous appuyant notamment sur Scrum et Kanban, avec beaucoup de développement en binômes (pair programming) », témoigne Emmanuel Dieval. L'équipe a également mis en oeuvre une démarche DevOps globale, tous les développeurs étant capables d'assurer le run et faisant des astreintes sur la production. « Un développeur doit aujourd'hui avoir une visibilité sur ce qui se passe après avoir poussé son code, c'est essentiel », insiste Emmanuel Dieval.

Les solutions MongoDB sont aujourd'hui largement déployées au sein du groupe Adeo. L'entreprise mène actuellement 165 projets sur MongoDB Atlas, dont 50 sont en production. Elle recense également 100 projets sur la version on-premise du SGBD. Depuis le démarrage du projet Opus, l'équipe est passée de la version 4.0 de MongoDB à la version 4.2. « La montée de version s'est faite en une minute, de façon transparente, et nous avons rapidement observé des gains de performance », se réjouit l'ingénieur logiciel.

Partager cet article

Commentaire

Avatar
Envoyer
Ecrire un commentaire...

INFORMATION

Vous devez être connecté à votre compte CIO pour poster un commentaire.

Cliquez ici pour vous connecter
Pas encore inscrit ? s'inscrire

    Publicité

    Abonnez-vous à la newsletter CIO

    Recevez notre newsletter tous les lundis et jeudis