Criteo, une architecture Big Data unique au monde Les logiciels les plus performants pour chaque couche de l'architecture

Etonnamment, Criteo n'a pas choisi de standardiser tous ces développements sur un langage unique, mais maintient volontairement une certaine diversité dans son système d'information. Nicolas Helleringer défend cette position : "chez Criteo, il n'y a pas de religion quant aux langages. Nous avons des gens qui font du Java, du Scala, du Python, du C#." Dans le monde du Big Data, le choix de C# peut paraître étonnant, d'autant que Criteo fait tourner ses algorithmes C# sur Hadoop : "Nous savons faire tourner des algorithmes C# sur Mono dans notre cluster. Peu de gens sont parvenus à réaliser un tel tour de force, et ça tourne très bien dans un environnement de production !"

C# : dans les gènes de l'entreprise, notamment pour l'algorithmique

actuellement la plateforme temps réel de criteo s'appuie sur une centaine de
Actuellement la plateforme temps réel de Criteo s'appuie sur une centaine de serveurs NoSQL Couchbase. © Criteo

Un choix qui est en quelque sorte historique puisque 2 des 3 fondateurs de Criteo sont des anciens de Microsoft Research. "C# a fait partie des gènes de l'entreprise, tout particulièrement sur le volet algorithmique. Nous faisons du machine learning tant en Java, Python, etc. Nous utilisons la meilleure technologie à l'endroit où nous en avons besoin", résume le responsable.

Pour réaliser ces implémentations, les architectes de Criteo choisissent donc les solutions qui seront les plus adaptées en fonction de chaque besoin. Les développeurs peuvent ainsi utiliser les API natives Hadoop pour certaines tâches comme des processus MapReduce version 2, ou encore des paradigmes comme Cascading pour la partie Business Intelligence.
En outre, les développeurs disposent d'un cluster Elastic Search à leur disposition pour naviguer dans les montagnes de données de logs générées par la plateforme Criteo. "Kafka, le système de streaming de log a été complètement intégré dans la chaîne de traitement de Criteo", précise Nicolas Helleringer. Enfin, pour le volet backoffice de son service, Criteo développe des applications web pour ses clients en couplant ASP.Net à Angular.js.