1. Quelle était la problématique de départ ?

Nous avions besoin d’un framework simple pour traiter les données des membres et des entreprises Viadeo afin d’améliorer l’expérience utilisateur du site. Nous souhaitions extraire facilement les informations importantes du flot d’information quotidien. Par extension nous voulions en finir avec la profusion de framework Hadoop que nous utilisions pour réaliser ces traitements.

 

  1. Pourquoi avoir choisi cette techno ?

Spark se présente comme un framework rapide, polyglotte et générique reléguant Hadoop et toutes ses librairies en second plan.

Les programmes Spark écrits en Java, Scala ou Python peuvent aussi bien traiter des lots de données conséquents par batch que par streaming avec des temps de calcul très rapides puisque toutes les opérations se font en mémoire.

Il paraissait envisageable d’étendre ce framework pour qu’il s’adapte parfaitement aux besoins de Viadeo, d’industrialiser son utilisation du développement à l’exécution. La spécialisation a ses bénéfices.

 

  1. Quel a été ton ressenti face à ce framework ?

Débuter en Spark est plutôt déroutant. La lecture du code n’est pas toujours aisée à la manière d’une expression régulière écrite dans un script Perl dont on ne serait pas l’auteur.

Les programmes sont distribués et exécutés sur plusieurs machines. Lorsqu’un programme est défaillant, il faut descendre de couche en couche pour trouver les raisons de la panne : la donnée en entrée est-elle cohérente ? Les agrégations sont-elles correctes ? Est-ce que les ressources du cluster ne sont pas accaparées par un autre programme ?

Mais au final le code s’éclaircit, les équipes progressent et nous avons déployé une belle palette de programmes. Que ce soit pour calculer des statistiques, analyser des logs, construire des indices de recherches ou l’arbre des connexions des membres Viadeo… tout s’écrit, se déploie et s’exécute de la même façon.

Nous avons récemment migré sur Amazon Web Services et nos programmes s’exécutent sur un cluster EMR. Nous utilisons des serveurs à la demande moins puissants, par choix, si bien que nous pouvons à présent nous concentrer sur l’optimisation de ces programmes pour améliorer les temps de traitement. Ce qui permet non seulement d’alléger la facture mais aussi, à petite échelle, notre impact énergétique. C’est nouveau et assez enthousiasmant !

 

  1. Comment as-tu appris cette techno ?

Je travaillais plutôt en Java sur un moteur de recherche avant d’arriver chez Viadeo.

De loin, Spark et Scala paraissaient à la fois flous et complexes. Quand il a fallu s’y mettre, j’ai récupéré des Raspberry Pi pour en faire une mini infrastructure « big data” : une base Mysql contenant les données de l’internet movie Database, un serveur Elasticsearch et un cluster Hadoop pour exécuter.   

Il a été ensuite assez facile de développer les premiers programmes Spark avec l’éditeur Intellij Idea qui intègre très bien Scala.

 

  1. Viadeo, pour toi c’est ?

Une infrastructure technique robuste et optimisée dans un souci d’éco-responsabilité.