Comment ManoMano surveille son SI en pleine transformation
ManoMano est le créateur d’une place de marché d’achat en ligne de produits de bricolage, de rénovation et de jardinage. Dans le cadre de sa croissance, l’entreprise revoie l’ensemble de son architecture IT et a adopté la plateforme de DataDog pour la surveiller.
ManoMano est une place de marché en ligne française dédiée au bricolage, au jardinage et à la rénovation. Fondée en 2012, l’entreprise a rapidement pris de la voilure. L’obtention de levées de fond successives (près de 311 millions d’euros au total) lui a permis de s’attaquer au marché européen. Aujourd’hui, elle dispose d’un site web en Espagne, au Royaume-Uni, en Italie, en Allemagne et en France. En 2019, ManoMano a réalisé un volume d’affaires de 620 millions d’euros pour près de 3,5 millions clients actifs. L’entreprise revend les produits de 1 000 marques.
Cette croissance repose en grande partie sur le maintien de son architecture IT. Les sites web de ManoMano génèrent environ 50 millions de sessions uniques par mois. Pratiquement la moitié des 450 employés s’attellent à la gestion d’un back-end, d’un front-end et de quelques dizaines de microservices. Il s’agit de s’assurer que les visiteurs des sites profitent d’une expérience fluide 24 heures sur 24 7 jours sur 7, tandis que les marques et revendeurs veulent pouvoir gérer les stocks affichés ainsi que les commandes passées. En cas de problèmes, l’expérience des consommateurs et des vendeurs est directement impactée. De facto, l’activité économique de la « scale-up » peut en pâtir.
Clément Hussenot est SRE (Site Reliability Engineer) chez ManoMano. Il fait partie d’un département composé d’une vingtaine de personnes aux opérations. Il gère le monitoring, l’observabilité et gère les incidents en production avec trois autres collaborateurs.
Jusqu’à l’année dernière, l’infrastructure sur laquelle reposaient les sites de ManoMano était infogérée par Equinix en France. « Cette équipe responsable des opérations n’existait pas », précise Clément Hussenot.
Un SI rénové de la tête au pied
C’est dans le cadre d’une migration vers AWS que la jeune entreprise a constitué ce pôle « Ops ». « Nous avions une quarantaine de machines virtuelles chez cet infogérant. Nous sommes passés sur AWS en adoptant une logique d’immutabilité, de builds et en privilégiant des VM éphémères », explique le SRE.
ManoMano a préparé une migration de masse qui a duré trois mois. Ses équipes techniques ont migré d’une base de données MySQL infogérée, vers Aurora d’AWS hébergé en France. « Un mois après, nous avons basculé en deux nuits toutes les applications reposant sur deux monolithes et une quarantaine de microservices ». Cette deuxième phase a été suivie par une semaine de patch.
« Actuellement, nous avons près de 1 000 hôtes virtuels sur EC2 qui comprennent les trois environnements (développement, test, production) que les développeurs vont franchir pour réussir à mettre une application en production ».
Afin de suivre les performances et maintenir l’architecture en production, ManoMano avait besoin d’une solution capable de surveiller la migration, puis les conséquences cette croissance. En effet, les développeurs ont la possibilité de faire du développement multi branche, ce qui augmente naturellement le volume de ressources nécessaires.
Clément HussenotManoMano
« Nous avions également besoin de cohérence entre les différents environnements applicatifs. Quand les développeurs les franchissaient, ils ne se connectaient pas tous aux mêmes outils pour observer leurs applications. Parfois, ils avaient besoin de reporter leurs tableaux de bord de l’environnement de développement, de test, puis à la production. Ces étapes étaient chronophages », considère Clément Hussenot.
Auparavant, les collaborateurs chargés de l’ingénierie utilisaient New Relic pour collecter les traces et les APM. « Pour le reste, nous avions des solutions open source comme Prometheus et toute la stack Elastic » détaille le SRE. Son équipe souhaitait également gérer plus facilement les accès et mieux contrôler l’observabilité et de monitoring depuis une seule solution.
« Nous voulions changer de perspectives. Avec les outils précédemment en place nous étions capables de voir certaines choses, mais certainement que nous n’avions pas accès à d’autres informations importantes. Changer d’outil permet d’évaluer les métriques de manière différente », considère le SRE. « Le but était d’obtenir une vision très large de ce qu’il se passe dans le SI avec différents axes, afin de comprendre comment se comportent les applications ».
L’équipe SRE de ManoMano a donc évalué deux solutions SaaS pendant trois mois avant la migration vers AWS : Dynatrace et Datadog. C’est la seconde qui a été retenue. Elle s’est également posé la question du choix de l’open source. Clément Hussenot estime que l’option SaaS permet de ne pas dépendre du SI en cas de pannes ou de ralentissements. Le SRE avait eu la possibilité de tester la solution de DataDog en 2015 et a apprécié son évolution.
ManoMano, un exemple de centralisation de l’observabilité
En septembre 2019, ManoMano commence la configuration de la plateforme et de la gestion des rôles pour que les collaborateurs puissent accéder à la suite de DataDog. Ensuite, l’équipe de Clément Hussenot a migré l’ensemble des logs hébergés sur l’infrastructure infogérée vers DataDog.
Il a fallu créer des pipelines d’ingestion et comme souvent gérer la qualité et le volume des logs. « Nous avons créé un ensemble de règles pour mieux structurer nos logs en JSON ». ManoMano collecte pas moins de 3 milliards de logs par mois, mais n’utilise pas l’agent conçu par DataDog. L’entreprise utilise le collecteur open source fluentbit pour ensuite les envoyer sur la plateforme d’observabilité via un cluster AWS.
Puis, l’équipe a reporté les sondes StatusCake de type Blackbox vers la plateforme. « Depuis les serveurs de Francfort et de Londres de DataDog nous testons les sites de ManoMano sur les domaines .fr, .it, .uk pour obtenir toujours la même bonne réponse dans un délai court », illustre-t-il. Clément Hussenot les considère importantes parce qu’elles déclenchent les astreintes et la gestion des incidents pour les équipes.
Au lieu de placer l’ensemble des sondes sur les serveurs qui hébergent le site français, le SRE les a placées uniformément sur chacun des domaines. « Cela nous a permis de comprendre que notre site espagnol était beaucoup plus lent », explique notre interlocuteur. « Autre exemple, nous avons un incident avec un prestataire qui s’occupe de notre moteur de recherche. Ses certificats sont uniquement tombés en France alors que les autres domaines n’étaient pas touchés ».
Dans un même temps, ManoMano a élaboré l’observabilité de sa base de données après migration. Selon le SRE, son équipe a pu constater des problèmes de répliques avec Aurora causés par une incompatibilité entre la version du SGBD dans le cloud et les données migrées. Il a également orchestré la migration et la surveillance du système de messagerie RabbitMQ. L’équipe a mis en place des alertes en provenance des logs renvoyées sur les téléphones d’astreintes et/ou sur des canaux Slack dédiés pour les développeurs ou les opérateurs. Par ailleurs, les responsables des opérations ont ajouté des marqueurs sur les graphes affichés au sein de la plateforme de DataDog.
Pour les APM liés aux applications codées en PHP, en Java ou encore en Python, l’équipe opération a développé un ensemble de SDK. « Pour les traces, DataDog propose d’utiliser le standard OpenTracing, ce qui nous permet de ne peut pas être verrouillé auprès de l’éditeur », estime Clément Hussenot. Parallèlement, la cellule « Ops » a ouvert l’accès à la plateforme de DataDog aux autres développeurs et ingénieurs de ManoMano, plus de 200 personnes.
Les équipes situées à Paris, Bordeaux et Barcelone peuvent consulter des moniteurs (une trentaine au total) qui affichent des tableaux de bord pour renseigner les différentes équipes de la santé des sites et des applications en temps réel. Ces écrans affichent les temps d’arrêt de service sur le mois, les SLO, SLA, SLI, et d’autres informations générales. Au cours de cette période de déploiement et premières utilisations, ManoMano a décommissionné les solutions d’observabilité employées auparavant. L’opération a pris environ trois mois.
Vers le code profiling et l’observabilité des containers
« Finalement nous avons peu fait appel au support de DataDog. Nous avons beaucoup lu la documentation qui est bien faite et qui nous permet de répondre aux questions de l’ingénierie », estime le SRE. « Nous avons réduit notre effort de documentation ».
Par ailleurs, une partie des informations obtenues à l’aide de DataDog est transmise à l’équipe SEO pour obtenir des réponses sur les performances des pages Web. Le département sécurité utilise aussi la plateforme pour surveiller le pare-feu applicatif et les logs d’audit sur les comptes Google des collaborateurs.
Clément Hussenot estime qu’il y a encore des projets à venir. Il veut tester l’outil de code profiling en bêta chez DataDog sur l’application écrite en Java qui gère la logistique sur les sites de ManoMano. « C’est l’une des grandes tendances pour 2020 ».
Ce n’est pas tout. ManoMano a débuté l’adoption de containers Docker. Les responsables techniques ont choisi le service managé d’AWS ECS pour containeriser certains services, huit pour l’instant. Là encore DataDog sert à surveiller la qualité des containers et des images avec une vue dédiée. « Nous allons découper nos monolithes au fur et à mesure pour passer à une architecture uniquement basée sur des microservices ».
Ce choix explique en partie la raison de la dernière levée de fonds de 125 millions d’euros effectuée par ManoMano en janvier 2020. L’entreprise va recruter 100 collaborateurs métiers et 100 ingénieurs/développeurs qui rejoindront les équipes divisées suivant les composantes des parcours client et revendeur. Ils déploieront des microservices containerisés pour assurer la disponibilité des fonctionnalités sur les sites (catalogue de produits, recherche, paiement, ajout de produits au back-office, etc.).