Pour ses outils décisionnels, et pour alimenter son moteur de machine learning destiné à servir des volumes considérables de recommandations, Criteo a besoin d’une plateforme analytique puissante et fiable, sur une infrastructure solide. Fortement tourné vers l’open source, Justin Coffey (en photo ci-dessus), Senior Staff Development Lead, Scalability Analytics, a pourtant fait le choix d'une solution propriétaire, qui « continue de se situer largement en tête sur la fiabilité, la performance, et la facilité de déploiement ».

Les chiffres frôlent le vertige... Créé en 2005, Criteo est devenu le leader mondial du marketing à la performance, capable d’analyser les ventes de ses clients et de comprendre les comportements des consommateurs en ligne pour alimenter son moteur de recommandations. Dans les chiffres, cela se traduit par 2.400.000 requêtes http à la seconde et 3 milliards de bannières servies chaque jour. Et dans l’informatique, il faut pas moins de deux clusters Hadoop cumulant 90 Po (qui seront portés à 200 Po d’ici la fin 2017) pour assurer le stockage des données, et 20.000 serveurs pour faire tourner l’ensemble. Derrière ces chiffres se cache la plus grosse solution de Big Data en Europe, après le CERN.

Historiquement, l’entreprise s’est tournée vers les outils open, avec aujourd’hui une centaine d’ingénieurs qui travaillent sur l’efficacité de son moteur de machine learning destiné à servir ses clients. Depuis sa naissance, elle affiche un réel savoir-faire en ce domaine, avec l’efficacité dans la capacité à faire évoluer (scaler) son infrastructure, tout en apportant la souplesse à un prix jugé imbattable. Et pourtant, dans ce mode ouvert, Criteo a fait le choix d’adopter la plateforme analytique HPE Vertica, pour accélérer l’accès aux données reposant sur plus de 200 serveurs de HPE et les analytiques. Pourquoi choisir une solution propriétaire dans un environnement qui privilégie l’open source ?

Pragmatisme, open source et Vertica

La réponse tient dans le pragmatisme de Criteo, comme nous l’a expliqué Justin Coffey, le Senior Staff Development Lead, Scalability Analytics de l’entreprise, et qui pourrait se résumer très simplement : on ne change pas une équipe qui gagne ! Cette équipe réunit les compétences de Criteo à la solution analytique Vertica sur serveurs HPE. Une équipe dont la mission est d’alimenter les analyses et le décisionnel des métiers internes comme des clients. Une mission qui, avec le temps et la croissance de Criteo, a rendu nécessaire de spécialiser le service dans un contexte publicitaire qui devient de plus en plus flou, et de se focaliser sur la performance de l’affichage des publicités pour satisfaire les taux de conversion. Pour cela, le métier analytique de Criteo s’exprime dans la compréhension du fonctionnement de la base de données, afin de faire des choses que celle-ci ne peut savoir, via l’exploitation de l’une des forces de la solution, qui repose sur un moteur d’optimisation et d’exécution rapide et efficace pour fabriquer des query (interrogations), sans dépasser les limites du risque de saturation, car le machine learning est très gourmand en ressources. La solution est également considérée comme un moteur de stockage rapide, qui permet de suivre ce qui se passe dans le moteur.

« Le plus important pour nous, c’est le ROI, nous a confié Justin Coffey. D’ailleurs, nous sommes mesurés par nos clients par la conversion ». ROI, retour sur investissement, l’expression est lancée. Pourtant, historiquement Criteo est peu challengé sur l’utilisation de ses ressources, ce qui engendre que ses équipes n’ont pas réellement la culture d’étudier finement le ROI de ses systèmes. « Il faut trouver la juste performance ». Concrètement, le travail d’analyses exploratoires sur les problématiques de performance nécessite d’aller directement vers la matière première, la donnée. En revanche, le rythme de la réflexion est une bonne réponse pour supporter le travail itératif. Cela se traduit par une réponse à apporter à une requête qui ne nécessite pas de s’exprimer en milliseconde, mais d’une seconde à 30 secondes.

C’est pourquoi, empreint de pragmatisme, Criteo a adopté la solution analytique HPE Vertica, qui selon Justin Coffey a le mérite d’offrir une grande souplesse de déploiement pour un prix abordable. Nous pourrions objecter que la solution retenue tourne sur un système équipé de disques durs et n’est pas optimisée pour fonctionner en mémoire. « Le in-memory, c’est bien quand il n’y a pas besoin d’échanger des données entre plusieurs serveurs dans un cluster. Le goulot d’étranglement, c’est toujours le réseau. Avec notre base de données importante, qui est capable d’encaisser beaucoup de données sans perdre en performance, la réponse est très rapide ». Côté Big Data, Criteo réserve Map Reduce à Hadoop. Et pour Vertica, retenu également pour son format d’exécution au-dessus d’un moteur de colonage, le pôle a choisi de déployer des cycles uniquement Hive. Ils sont certes plus lents, et ils nécessitent de mettre en place des PoC (Proof of Concept) pour trouver la juste performance, mais ils répondent aux besoins moindres liés à l’usage de la solution. En fait, pour bien comprendre le mode de fonctionnement de Criteo sur les temps de réponse, Justin Coffey nous explique que l’ETL (Extract-Transforme-Load) est destiné à compléter un graphe de transformation des données avec un SLA de 4 heures. « Il n’est pas là pour répondre à une question spécifique en quelques secondes. Si c’est 5 secondes, c’est OK, si c’est entre 5 et 10 secondes, ça va ! ».

Comment Criteo va-t-il rester dans la course ?

Malgré ses recherches pour accélérer les traitements sur Hadoop, Criteo continue d’affirmer sa fidélité à la solution. « Vertica continue de se situer largement en tête sur la fiabilité, la performance, et la facilité de déploiement », tient à affirmer Justin Coffey. Et ses équipes de développeurs et d’analystes continuent de développer autour de la plateforme. Par exemple, pour attaquer la base, prendre les données, et les faire tourner dans des analytiques métiers sur un ordinateur portable au sein des entités Criteo déployées dans le monde en utilisant notamment Tableau, un logiciel de BI intuitif permettant de visualiser tous types de données. « Pour savoir se placer dans la course, il faut commencer par savoir d’où l’on part. Nous restons vigilants et nous mesurons en permanence la performance face aux concurrents, afin d’améliorer les points de faiblesse. Il va être compliqué de nous rattraper, que ce soit par les algorithmes, par la volumétrie des données, ou par la capacité à l’analyser ». Criteo est progressivement en train de s’élargir sur le multicanal, de lancer une initiative Google Shopping, et de faire rentrer les marques dans les sites d’e-commerce, en phase avec le métier de la recommandation. Un sacré programme où Vertica continuera longtemps d’y trouver sa place.