Big Data chez Criteo Conference CIO 18 04 2013 Paris

May 15, 2013
LE BIG DATA AU SERVICE DE LA CONNAISSANCE CLIENT Intervention de Julien Simon, Vice-Président de Criteo en charge de l'ingénierie.

Transcript

Bonjour à tous et à toutes. Merci à CIO de me donner l'opportunité de vous parler. Tout le monde doit avoir un niveau de glycémie un peu bas, donc je vais m'astreindre à respecter mes 20 minutes. Je suis Julien Simon, vice-président engineering de Criteo. Je m'occupe notamment de l'infrastructure. Le modèle de Criteo est beaucoup plus simple que ce que laisse penser ce slide. En fait, Criteo, pour le compte de ses clients, qui sont les grands sites e-commerce et les grandes marques dans le monde, livre des bannières publicitaires personnalisées en temps réel sur des millions de sites web. Si je voulais exagérer un peu, je dirais sur tout Internet. Aujourd'hui, nous avons plus de 3000 clients dans le monde, dans 35 pays. Nous avons donc une présence globale. Si vous devez retenir une seule chose du modèle de Criteo, c'est que nous aimons le risque. La façon dont fonctionne notre plateforme, c'est d'acheter de l'espace publicitaire au volume et de le vendre à la performance. Pour être très clair, et pour essayer de ne pas utiliser trop de jargon, nous achetons sur un modèle CPM, un coût pour 1000 impressions. Nous achetons cet espace sur littéralement tout Internet. Au moment de l'affichage, au moment où nous avons la possibilité d'afficher une bannière à un internaute, nous choisissons ce que nous pensons être non seulement la meilleure campagne mais la meilleure bannière et les meilleurs produits. Nous ne gagnons notre vie que si cette bannière génère un clic. Ce choix de prendre le risque pour le compte de nos clients nous oblige à avoir une technologie la plus intelligente possible. Les deux points clés pour nous, c'est être capable de prédire le clic. Ce que j'entends par là, c'est de sélectionner en temps réel la campagne dont nous pensons qu'elle a le plus de chances de générer un clic. Une fois que nous avons choisi cette campagne, nous intégrons dans la bannière les produits dont nous pensons qu'ils ont le plus d'intérêt pour l'internaute en question. Tout ce que nous faisons, c'est optimiser ces deux facteurs, la prédiction de clic et la recommandation de produit. Pour faire cela, il nous faut des données. Pour être concret, voici de quoi nous parlons. Voici notre jeu standard de bannières. Nous sommes capables de proposer à un de nos clients des bannières de toute forme, de toute taille, avec différents nombres de produits, différents types d'animations, etc. Il ne s'agit pas d'un jeu de bannières statique construit par des équipes graphiques. C'est vraiment la plateforme Criteo qui est capable de générer, disons, 300 et quelques bannières différentes en fonction du contexte d'appel. J'ai déjà parlé plusieurs fois de personnalisation en temps réel. De quoi je parle ? Je ne parle pas uniquement de décider si nous allons vous afficher une paire de chaussures, un chemisier pour femmes ou un ballon de foot. Cela fait partie du problème, mais ce que nous faisons va bien au-delà. Nous choisissons à la volée l'intégralité des éléments qui composent la bannière. Il y a la couleur de fond, potentiellement le slogan, un bouton, la couleur de l'ensemble, la disposition des produits, le nombre de produits, le type d'animation, la durée de l'animation, etc. Cela signifie qu'à partir d'un appel sur notre plateforme, nous sommes capables de décliner un nombre très important de bannières à partir d'un jeu de composants comme celui-ci. Toutes ces décisions sont prises en temps réel. Nous avons des bannières génériques à l'intérieur desquelles nous prenons un tas de décisions et construisons en très peu de temps, en moins de 10 millisecondes, l'ensemble de ces décisions. Évidemment, comme nous les prenons au moment de l'affichage, il ne s'agit pas de mettre 8 secondes à les prendre. Sinon, la bannière dans le navigateur s'affiche extrêmement lentement et une bannière lente ne génère jamais de clic. Quelle est la clé de tout cela ? Comment prenons-nous ces décisions ? Nous prenons ces décisions à partir d'un ensemble de données anonymes reçues par notre plateforme, qui peuvent venir des sites annonceurs au fil des sessions de navigation des utilisateurs. Nous recevons des informations sur les produits vus, les produits cliqués, etc. Il y a des données qui viennent des sites éditeurs, où nous affichons les bannières, comme le fait que sur un affichage nous avons choisi telle campagne avec tel produit, s'il y a eu un clic, sur quel produit, etc. Nous avons aussi des flux de données qui viennent de nos clients annonceurs et des sites sur lesquels nous affichons. Il y a des paramètres que nous pouvons fabriquer nous-mêmes à partir des données mentionnées, comme la météo, le trafic routier, etc. Ce qui est important dans notre plateforme, c'est la capacité à utiliser ces données, appelées variables, à en utiliser de plus en plus, à les combiner, à voir quelles combinaisons ont du sens et à en tester beaucoup, car il n'y a rien de vraiment intuitif. Nous faisons énormément d'AB tests sur une partie de la population et regardons ce qui marche, ce qui ne marche pas. Depuis 2011 et même avant, nous continuons d'introduire de nouvelles variables dans notre moteur de prédiction, de les tester et de voir ce qui fonctionne. Parfois, nous abandonnons certaines pistes, d'autres fois, nous les pérennisons. L'expérimentation et la variété des données que nous voulons utiliser sont des facteurs très importants pour nous. Nous parlons toujours des 3 V du Big Data : la variété, la vélocité et le volume. Nous avons plus de 3000 clients dans 35 pays et affichons sur des millions de sites web. Les volumes sont donc significatifs. Nous recevons plus de 30 milliards de requêtes HTTP par jour. Si Criteo était un site web ou un site marchand, ce serait un très gros site marchand. Nous avons une volumétrie très importante, ce qui nous permet de livrer plus d'un milliard de bannières par jour dans nos 35 ou 37 marchés, en Europe, sur le continent nord-américain, sud-américain, en Asie. En trafic peak, en particulier le soir, nous atteignons plus de 500 000 requêtes HTTP par seconde et livrons plus de 25 000 bannières par seconde. Pour faire tout cela, nous avons sept data centers, trois en Europe, deux aux États-Unis et deux au Japon. Nous avons ces data centers régionaux pour être au plus près de nos internautes, de nos clients, de nos marchés, et réduire la latence et le temps de livraison. Nous avons plusieurs data centers par zone pour des raisons de haute disponibilité et de tolérance aux pannes, car tous nos sites sont actifs et capables de prendre la main automatiquement si leur homologue tombe en panne. Tout cela est géré en interne, avec notre matériel, nos équipes d'admin, notre politique réseau, etc. Nous n'utilisons pas de CDN, de cloud ou de services similaires. Nous pensons que c'est le seul moyen de garantir un bon SLA et d'avoir une vraie maîtrise de notre technologie. Nous avons une disponibilité qui est plutôt bonne. C'est un point d'entrée et de sortie du système. Le point d'entrée, c'est le trafic rentrant, car chaque requête reçue par la plateforme est loguée, car elle contient une information utile. Cela peut être un produit vu par un utilisateur, une bannière cliquée, d'autres types d'événements. Le point de sortie, c'est le traitement, l'agrégation, le stockage et la restitution de ces données. Tout cela commence et se termine par l'infrastructure. Avec les chiffres que j'ai mentionnés, nous arrivons à des volumétries relativement importantes. Notre objectif est de recevoir, agréger, indexer, requêter toutes ces données tous les jours, 24 heures sur 24. Chez nous, c'est 20 téraoctets supplémentaires chaque jour. C'est 30 milliards de requêtes, une ligne de log par requête, un peu moins d'un kilo octet par ligne. Cela fait 20 téraoctets par jour. Comment faisons-nous ? Nous faisons un grand saut technologique vers ce que nous appelons le HPC. Nous n'aimons pas tellement le terme Big Data, car pour nous, ce qui nous a amené à adopter des technologies dites Big Data, c'est avant tout la volonté de résoudre des problèmes techniques et pas une approche marketing. C'était une nécessité. Nous avons déployé en production certaines de ces technologies depuis deux ans maintenant, notamment tout l'arsenal des technologies de type NoSQL avec Hadoop, MongoDB, Couchbase, des choses plus récentes comme Storm pour du traitement quasi temps réel, et Kafka, un framework de LinkedIn. Nous testons beaucoup de choses, même des versions 0.1, et n'hésitons pas à les mettre en production. Toutes ces technologies sont en production et constituent le socle de notre infrastructure et de notre technologie. Notre situation est un peu comme celle d'un astronaute dans sa capsule. La capsule est montée très vite, nous n'étions pas totalement préparés, mais nous avons sauté. Le succès de la société a engendré une croissance extrêmement forte de notre volumétrie, plus de clients, plus de pays, plus de produits, plus d'applications, avec des sauts énormes. Quand nous avons lancé le Japon, il y a eu un énorme saut de volumétrie. Quand nous avons ajouté de gros clients aux États-Unis, il y a eu un autre énorme saut. Ce n'est pas une croissance linéaire, mais une croissance avec des effets de seuil. Les applications existantes, conçues de manière traditionnelle, ont commencé à tirer la langue face à une volumétrie en très forte augmentation. Quand nous étions à quelques dizaines de gigas par jour, cela allait. Puis nous avons dépassé les 100 gigas, puis plusieurs centaines de gigas, et nous avons vu arriver le téraoctet par jour. Quand une tâche qui doit tourner toutes les 24 heures commence à prendre 23h58, on s'inquiète. Quand elle prend 26 heures, c'est un peu chaud. Quand elle prend 36 heures, il est urgent de faire quelque chose. Nous avons donc fait un déploiement express d'un cluster Hadoop en juin 2011. Nous avons lancé en production et acheté les livres pour voir comment cela fonctionnait vraiment. Nous ne nous en sommes pas trop mal sortis, nous sommes toujours là. Ce premier cluster avait une volumétrie de 2 pétaoctets, soit 2000 téraoctets. Nous pensions être tranquilles longtemps, mais nous avons dû réécrire nos applicatifs du monde traditionnel vers le monde Big Data, former les équipes sur ces nouvelles compétences, et apprendre les techniques NoSQL. Nous avons eu une double utilisation en production pour agréger les données venant du web et pour nos algorithmes de prédiction, de recommandation, etc., ainsi que pour de la business intelligence plus classique, comme l'analyse de trafic et l'optimisation de campagne. Malgré les lancements techniques un peu rugueux, nous avons vu un ROI indiscutable, avec un taux de clics 7 à 8 fois supérieur à celui de l'industrie et un taux de conversion élevé. Cela a permis de traiter de plus gros volumes de données, plus vite et plus souvent, avec des données plus fraîches et plus pertinentes, et des marges d'erreur plus faibles. Nos KPI ont donc nettement augmenté. Aujourd'hui, cette plateforme est totalement intégrée dans l'ensemble de nos projets. Il n'y a pas un projet R&D qui démarre chez Criteo sans une dimension de traitement de données, d'agrégation, etc. C'est au cœur de notre plateforme. Nous avons une synergie très forte entre les deux parties de la plateforme, et les deux sont aussi importantes l'une que l'autre. Il y a quelques semaines, nous avons commencé à mettre en production un nouveau cluster, un deuxième, dans un autre data center, avec un ticket d'entrée à 6 pétaoctets, car les deux pétaoctets étaient déjà ric-rac. La barre des 10 pétaoctets sera franchie à l'été. C'est vraiment le nerf de la guerre pour nous. Tout cela est super, c'est de la techno, des racks dans les data centers, des gros châssis, du bruit, de l'air chaud, c'est génial. Cela coûte cher, mais tout le monde sait qu'il n'y a rien qui marche sans les bonnes personnes. Pourquoi sommes-nous capables de faire des paris technologiques un peu insensés ? Pourquoi sommes-nous capables de dire, bon, allons-y, refondons totalement l'architecture et l'infrastructure de Criteo et faisons-le en quelques mois ? Nous le faisons parce que nous sommes une boîte techno et que nous sommes plus de 700 aujourd'hui chez Criteo dans le monde, dont plus de 300 ingénieurs. C'est une partie importante de la société qui est constituée d'effectifs techniques, allant des data scientists et docteurs en informatique théorique aux technologistes, ingénieurs de développement front office et back office, équipe infrastructure, admin systems, administrateurs de bases de données, etc. Nous avons à la fois une équipe importante et toutes les compétences. Nous sommes maîtres de notre destin et capables de faire ces choix technologiques.

Tags

CriteoPublicité en ligneBig DataInfrastructure technologiquePrédiction de clics