Le Français Criteo, spécialiste de l'affichage de bannières publicitaires à la performance sur le web, doit sa très forte croissance (+70% en 2014 avec 745 M€ de chiffre d'affaires) à ses efforts R&D conséquents dans l'optimisation de ses algorithmes et à ses investissements non moins considérables dans la standardisation de son infrastructure informatique au niveau mondial. Pour soutenir cette croissance, il s'apprête notamment à étendre l'important cluster Hadoop sur base Cloudera (mais sans le support) avec MapReduce et bientôt Yarn qu'il a déployé à Amsterdam - et qui est déjà, avec ses 1 200 noeuds et ses 39 Po de stockage en ligne le plus gros opéré en Europe - en ouvrant un 2ème datacenter en France, sur le site d'Equinix à Pantin. Pour l'instant, celui-ci n'est encore qu'en préproduction. Cette extension du cluster d'Amsterdam comporte actuellement deux pods totalisant 640 serveurs fournis par le constructeur chinois Huawai, chacune des machines offrant une puissance deux fois supérieure à celles du premier cluster, avec une consommation électrique inférieure de 20%. La capacité de stockage atteint 61 Po bruts. Le site de Pantin permet de voir beaucoup plus grand. Une fois à l'échelle, le projet comportera plus de 5 000 serveurs pour une puissance de 2 megawatts.
Le framework Hadoop, conçu pour traiter les big data, est en ce moment le terrain de jeu préféré de la R&D de Criteo et « c'est grâce à ces ressources que l'on arrive à développer l'activité à ce point », nous a expliqué ce matin à Pantin Matthieu Blumberg, responsable des infrastructures d'hébergement au niveau mondial. Pour maintenir l'avantage compétitif qu'elle a acquis, la société française créée il y a 10 ans ne cesse, de façon générale, de faire progresser son infrastructure globale. Il est vrai qu'en quelques années, la machine s'est emballée, rappelle Matthieu Blumberg. « Nous avions 300 serveurs en 2011 et nous en avons presque 15 000 aujourd'hui répartis dans 7 datacenters. C'est 50 fois plus en quatre ans et cela oblige à être très forts sur l'industrialisation et l'automatisation dans le déploiement. Nous avons déployé 1 500 serveurs de plus au premier trimestre. En six mois, notre infrastructure a progressé de 40% et c'est grâce à la standardisation que nous effectuons sur celle-ci que nous pouvons lui ajouter de la capacité en continu ». Hors Europe, les datacenters sont situés à Sunnyvale, New York, Hong-Kong et Tokyo.
15 millions de prédictions par seconde
Le modèle économique et l'activité de Criteo reposent sur son moteur de traitement qui analyse le comportement des internautes sur les sites marchands. Sur les 50 milliards de données qu'il récupère ainsi chaque jour, des algorithmes d'apprentissage machine construisent des modèles de prédiction et de recommandation qui vont déterminer quelle est la bannière publicitaire la plus appropriée à afficher à un internaute à un instant t et avec quelle rentabilité, nous a expliqué Dan Teodosiu, vice-président exécutif, responsable de la R&D chez Criteo. « Nous faisons environ 15 millions de prédictions par seconde et une fois que l'on prédit qu'un internaute est rentable pour un affichage, on lui affiche une bannière ». Il reste à décider quelle bannière publicitaire lui afficher en fonction des recommandations de l'algorithme. « Nous en affichons à peu près 3 milliards par jour », indique Dan Teodosiu. Parmi les concurrents de l'éditeur figurent des sociétés comme Rocketfuel, Triggit, Sociomantic, le Français Nextperformance ou encore Google.
Les clients de Criteo sont les sites marchands qui lui achètent des espaces publicitaires que la société française acquiert elle-même aux enchères sur le marché du RTB (real-time bidding). Dire que ce marché est extrêmement dynamique est un euphémisme. Il oblige les acheteurs tels que Criteo à répondre aux enchères en moins de 100 ms. Si les temps de réponse sont trop élevés, ils sont blacklistés de la plateforme RTB. Ce sont ces exigences implacables qui ont conduit Criteo à développer son infrastructure en propre, sans passer par les opérateurs de cloud. « Cela nous permet de définir de manière très stratégique les emplacements de nos datacenters pour pouvoir répondre en dessous des 100 ms. Nous sommes donc très sélectif sur la manière dont nous les choisissons ». Criteo sélectionne en particulier des sites qui offrent une très bonne connectivité vers de nombreux opérateurs, notamment pour rejoindre des points de peering. Equinix répond justement à ces critères
A Pantin, Criteo a déployé 4 pods et en a déjà équipé deux, chacun comportant 16 racks de 320 serveurs Huawei. (crédit : LMI)
Le cluster traite 9 Po de données par jour
Dans ce contexte, la contribution d'Hadoop à la marge de Criteo est énorme, selon Matthieu Blumberg qui estime que la croissance de la société vient des efforts R&D et notamment de l'investissement réalisé dans l'infrastructure, supervisée par une équipe de 24 personnes (la société compte 1 500 salariés dans le monde, dont 700 en France). Pour l'instant, c'est toujours le cluster Hadoop d'Amsterdam qui est seul en production. Le projet de son extension, désormais effectuée à Pantin, remonte à l'an dernier. « Nous allions être à court de place. Nous rapatrions à peu près 26 To de données par jour dans Hadoop pour effectuer des traitements sur les 50 milliards d'événements collectés chaque jour du comportement des internautes, acheminés par nos backbones réseau jusqu'au cluster ». Pour faire ses 15 millions de prédictions par seconde et ses recommandations, le cluster traite à peu près 9 Po de données par jour. Il exploite la distribution Hadoop de Cloudera (CDH4) avec MapReduce. Les ingénieurs sont également en train d'installer le gestionnaire Yarn qui permettra aux équipes de développer elles-mêmes leurs algorithmes. Pour réaliser son projet d'extension, Criteo a conçu un design spécifique pour le raccordement de son réseau (plus d'un millier de ports 40 Gbps) et a choisi de travailler avec trois fournisseurs (Dell, Juniper et Arista) pour ne pas se verrouiller avec un seul. Nous reviendrons sur le projet dans un prochain article.
Commentaire