Les coulisses informatiques de Criteo Un cluster de 2000 cœurs capable de traiter des pétaoctets de données

Sur l'ensemble de son cluster Hadoop, Criteo stocke 2 Po de données de travail temporaire environ. Au total, la plate-forme compte 2000 cœurs CPU, avec donc 1 To de données stockées par cœur. "C'est ce ratio qu'il faut essayé d'identifier", explique Julien Simon, vice-président ingénierie de Criteo. Depuis le déploiement de cette nouvelle architecture dans le courant de l'été 2011, les résultats sont là. "Un traitement qui pouvait nous demander par exemple 24 heures auparavant, ne nécessite plus que 2 heures", constate Julien Simon.

le cluster hadoop de criteo est constitué de serveurs intel x86 dotés de
Le cluster Hadoop de Criteo est constitué de serveurs Intel x86 dotés de systèmes Linux. "Des machines standard pour éviter d'être dépendant d'un constructeur particulier." © Criteo

La principale problématique d'un tel cluster ? "L'extrême complexité" du système. "Les questions sont nombreuses. Quels serveurs machines adopter, sachant que les constructeurs sont encore globalement peu matures en matière de Hight Performance Computing ? Comment les dimensionne-t-on ?", égraine-t-on chez Criteo. La topologie matérielle du cluster est considérée comme un facteur clé de succès. Mieux vaudrait dans tous les cas disposer de configurations serveurs très homogènes. Ce qui permettrait de garantir un niveau de latence proche entre les nœuds, un trafic fluide, et ainsi éviter les congestions.

Le traitement de données en masse sur une telle architecture distribuée implique aussi des flux importants en entrée et sortie des serveurs, et par conséquent nécessite une infrastructure réseau robuste, adaptée au niveau de trafic ciblé. Au total, un tel projet demande donc des compétences importantes en infrastructure, aussi bien système que réseau.

Les pertes de données ne sont pas à exclure totalement

"L'objectif est de tendre vers une solution de calcul qui soit redimensionnable et sécurisée, dans l'optique d'éviter la chute de nœud ou une panne de disque, et les pertes de données qui en découlent. Le tout compte-tenu des budgets que nous nous sommes fixés", analyse Julien Simon. "Mais vu l'immense complexité de la plate-forme, les pertes de données ne sont pas à exclure."

Au-delà des questions d'architecture matérielle et réseau, la prise en main de l'intelligence logicielle Open Source fournie par Hadoop ne représenterait pas l'aspect le plus plus difficile du chantier. Il s'agit ici de définir des scripts permettant d'appliquer aux jeux de données les traitements voulus en s'adossant à MapReduce. Cet algorithme de calcul distribué, livré avec Hadoop, découpe un problème en sous-problèmes, ce qui lui permet ensuite d'en répartir le calcul en cascade sur une multitude de nœuds. Les calculs pris en charge par chaque nœud étant ensuite réconciliés pour aboutir à la résolution finale du problème.