LeBonCoin
Big Data : Pourquoi LeBonCoin a préféré Spark à Hadoop
Poids lourd du Web français, LeBonCoin s’est lancé en 2014 dans la modernisation de son architecture Big Data. Plutôt que de choisir Hadoop, la solution la plus en vogue du moment, son CDO a préféré attendre qu’Apache Spark soit suffisamment mature pour y porter ses données.
Tous les français connaissent le site LeBonCoin.fr. Ils sont plus d'un sur deux à utiliser ce site pour vendre un peu de tout, depuis la layette de bébé jusqu'à des appartements, en passant par les voitures ou les libres. Chaque jour le site recueille près d'un million de nouvelles annonces, avec un stock de l'ordre de 28 millions d'annonces consultables en permanence.
Au final, LeBonCoin enregistre une audience de 7 milliards de pages vues chaque mois, ce qui représente une moyenne de 2.000 recherches par seconde. Le site se classe juste derrière Google et Facebook en termes d'audience, mais il est classé numéro 1 sur la durée des visites, qui durent en moyenne entre 16 et 18 minutes.
Alors qu’il s’apprête à quitter LeBonCoin pour rejoindre Engie, Aissa Belaid, le Chief Data Officer du site depuis 2013, est revenu lors de la dernière édition du salon Cloud Computing World Expo sur la mise en place de l’architecture Big Data qui motorise le site.
« Quand je suis entré au BonCoin, c'était encore une startup. Nous avons du nous adapter au quotidien au succès du site et délivrer le meilleurs service aux internautes. J'ai créé les 6 équipes qui gèrent aujourd'hui l'activité », se souvient-il. Alors que le champion français héberge lui-même ses serveurs Web, après plusieurs mois de réflexion, Aissa Belaid décide de constituer son infrastructure Big Data dans le Cloud, tout comme Spotify, mais sur Amazon Web Services.
« En 2014, nous avons posé nos stylos pendant 6 mois afin de nous donner le temps de la réflexion. Contrairement à beaucoup de personnes, nous ne nous sommes pas posés la question de la Data en partant de la problématique de la volumétrie des données. Nous avons tourné la question un peu différemment en nous demandant comment ne plus jamais nous poser cette question. Comment faire pour que, d'ici 24 mois, cette question du volume ne se pose pas à nouveau. »
C’est le fruit de cette réflexion qui a poussé Leboncoin à opter pour le Cloud public.
Hadoop, une solution jugée trop complexe
Si les données devaient être stockées dans le Cloud, restait à trouver une solution Big Data pour stocker le flux ininterrompu de données généré par le site. En 2014, une solution semble s’imposer d’elle-même, Hadoop.
Aissa Belaid, CDO, LeBonCoin.fr
Néanmoins, Aissa Belaid va repousser la technologie qui est devenue emblématique du Big Data. « Quand nous avons initiée notre réflexion, nous avons regardé ce qui existait à l'époque. Tout le monde parlait alors d'Hadoop. Or nous avons jugé cette solution très compliquée. Nous ne sommes ni Google ni Facebook et nous ne pouvions nous appuyer sur une armada d’ingénieurs pour maintenir et optimiser notre plateforme Big Data. Hadoop est incontestablement une solution très utile pour traiter de gros volumes de données, mais il y a d'autres moyens de le faire plus simplement »
Plutôt que de mettre en place un premier cluster Hadoop, l’équipe d’Aissa Belaid a préféré étudier les différentes solutions alternatives qui émergeaient dans l’écosystème Big Data. « Nous avons détecté deux pépites qui commençaient à faire parler d'elles dans l'underground Big Data, des pépites qui s'appelaient Spark et Kafka. Nous avons décidé d'axer toute notre stratégie Big Data autour de ces deux solutions et c'est ce qui nous permet aujourd'hui de faire du temps réel avec Spark en version Streaming et Kafka comme bus de message. C'est une architecture qui nous permet d'avoir un throughput très élevé et de fonctionner en flux tendu sur la captation de données. »
LeBonCoin a patienté et attendu que des versions stables d'Apache Spark soient disponibles afin de mener son déploiement. Et si Spark joue aujourd'hui le rôle d’ETL temps réel pour stocker les données déversées par la production, le CDO a fait– comme Mister-Auto - le choix de Redshift, le Data Warehouse as a Service d’Amazon Web Services afin de stocker les données de manière pérenne.
La souplesse, vrai gain du Cloud public
En préférant une infrastructure Big Data hébergée dans le Cloud public à des solutions plus traditionnelles de Data Warehouse comme IBM Vertica ou Teradata, Aissa Belaid a résolu le problème de la montée inexorable de la volumétrie des données stockées.
Pour autant, LeBonCoin a-t-il fait une bonne opération financière en choisissant AWS ?
Le CDO se montre plus réservé sur cette question : « Le gain financier apporté par le Cloud est nul, il est même peut-être un peu plus cher que ce qu’il est possible d'obtenir en interne. Le Cloud fait gagner de l'argent, mais autrement. Il fait gagner de l'argent sur la flexibilité, sur cette capacité à se tromper qu'il procure. On peut se tromper vite et refaire très vite. »
Le responsable évoque un exemple concret, celui de la mise en place d’une DMP (Data Management Platform). L’équipe d’Aissa Belaid a rapidement monté un Proof of Concept (PoC) afin d’essayer la solution développée en interne. « Nous l'avons mené en juillet/août. Nous n'avons pas jugé le résultat concluant alors nous avons tout jeté pour mieux recommencer. Le stockage Cloud ne coute pas cher et si le CPU coute un peu plus, la liberté qu’apporte le Cloud ne se retrouve nulle part ailleurs. Au total, hormis les heures ingénieurs, ce PoC nous a couté 1 200 € en stockage et en traitement. C'est rien ! Avec le Cloud, tester des choses ne coute vraiment pas grand chose. »
Si le CDO souligne le faible prix du stockage des données sur Amazon Web Services, celui-ci pointe du doigt celui des ressources EC2 qui représentent pour lui le poste de cout le plus élevé de son architecture.
Aissa Belaid, CD, LeBonCoin
« C'est sur le volet "compute" où on se prend un coup de bambou car le modèle économique est complexe. Il faut se méfier des effets de seuil. La plus grosse erreur que l'on peut faire, c'est de vouloir basculer 40 machines VMware sur Amazon ou Microsoft sous forme d'instance. C'est le coup de massue, autant garder ses machines en interne. »
Pour Aissa Belaid, pour porter une application dans le Cloud, il faut la repenser pour exploiter aux mieux les ressources offertes par le fournisseur. Il estime qu'il faut "vaporiser" l'application pour la rendre ultra-scalable. Il évoque notamment le service AWS Lambda qui permet d'exécuter des fonctions Python chargées sur le PaaS d’Amazon sans qu'il soit nécessaire de provisionner d'instances. Le fournisseur se chargeant totalement de l'attribution des ressources de traitement et des montées en charge avec un service facturé au million de requête. Une approche "serverless" qui intéresse beaucoup le désormais « ancien » CDO du Boncoin.fr.