Itinéraire de consultant : découvrez un projet Data Engineering

Quel est le quotidien de nos consultants en mission ? Quels sont les challenges techniques qu’ils doivent relever et quelles solutions sont apportées ? Derrière une mise en production réussie, un déploiement ou un Proof of Concept, il y a des consultants, une équipe, des technologies et beaucoup d’expertise et d’intelligence collective ! Cette série d’articles vise à vous dévoiler l’envers du décor, à travers le témoignage de nos consultants.

Passionné par Big Data et le Data Engineering depuis très longtemps, Sathiya a réalisé son premier projet Hadoop en 2011 dans le cadre de son Master. Dans le cadre de son doctorat, sa thèse avait pour sujet « Adapting replicated data consistency based on the application profile with high degree of elasticity ». Il travaille aujourd’hui à la construction d’un datalake avec Spark et Kafka, et partage ici son retour d’expérience sur le projet.

 

 

Peux-tu présenter le projet sur lequel tu travailles actuellement ?

Je travaille au sein d’une équipe Big Data/Data Science, qui fournit des services à l’ensemble des autres départements, et nous construisons un Datalake qui agrège des données issues de différentes sources, et notamment des capteurs IoT. L’objectif est de récupérer ces données, et de les traiter en temps réel (stream processing), afin de les fournir aux différentes équipes et services qui consomment ces données. Ces services consomment les données en les requêtant via des API, et nous travaillons donc également sur les API entrée et sortie. Il nous reste encore beaucoup à faire en termes de Data Engineering entre les deux endpoints In et Out afin de respecter notre SLA (Service level agreement).

Quels sont les challenges que tu rencontres ?

Nous travaillons sur des technologies qui sont très récentes donc il faut composer avec les bugs et apprendre à avancer sans support officiel. Nous avons aussi des problèmes de compatibilité entre les différentes technologies et leurs versions, par exemple comment connecter Spark avec Kafka, avec des contraintes de sécurité spécifiques à l’environnement du client parce que nous traitons des données sensibles. Plus généralement, nous travaillons sur des technologies Open Source pour pouvoir les adapter aux besoins du client qui possède ses propres datacenters.

Comment as-tu répondu à cette contrainte ?

La seule solution était de développer un connecteur sur mesure, et donc pour le construire je me suis plongé dans le code source de Spark et de Kafka. Cela a pris pas mal de temps, puis j’ai développé le connecteur que j’ai ensuite soumis à la validation de la communauté Open Source. Pour passer en production, c’est une étape indispensable. Ce connecteur a finalement validé la contrainte posée par le département sécurité, qui a suivi son développement de très près.

Quels tests sont faits avant le passage en production ?

Avant de passer en production, nous avons fait beaucoup de simulations et de test, notamment des tests de performance avec Gatling. Les simulations nous permettent d’assurer qu’il n’y a aucune perte de données, et de minimiser le nombre de doublons dans Kafka… cela demande un réglage fin entre la vitesse des données et la sortie.

Tu travailles depuis longtemps sur le sujet du Big Data, qu’est-ce qui t’intéresse dans ce sujet? Quels sont les challenges ?

Je vais faire référence à un article que j’ai écrit il y a quelque temps “L’ère de l’explosion des données”. Aujourd’hui, le Big Data est partout, et nous en bénéficions dans notre vie quotidienne, que l’on en soit conscients ou pas. Prenez par exemple Facebook, même si vous n’aimez pas les réseaux sociaux, que vous n’avez pas de temps à y consacrer, il est difficile de fermer une page Facebook juste après l’avoir ouverte. Qui que vous soyez, quels que soient vos goûts, Facebook est capable de vous attirer immédiatement grâce au système de recommandation en temps réel, qui est fonctionne grâce à l’analyse de données en masse, le Big Data.

Quels sont les challenges des métiers du Big Data ?

Le Big Data est partout et les challenges sont nombreux. Imaginez un monde où la “première voiture” est inventée, qu’il n’y a pas de code de la route et que personne n’a appris à conduire. Le challenge du Big Data, c’est la même chose que celui de la première voiture. Il n’y a pas de règles, et personne ne sait comment l’utiliser correctement, dans le sens où il n’y a pas de standards.

Tu développes également en Scala, qu’est-ce qui t’a séduit dans ce langage ?

Les différents langages de programmation sont construits pour des gens avec des backgrounds différents, chacun est spécialisé de façon à répondre à des besoins spécifiques. J’ai un background Java, et j’ai longtemps dit que Java est le langage du Big Data, et c’est le cas actuellement, mais je ne suis pas sûr que cela dure, même si la communauté Java essaie de maintenir cette tendance. Depuis deux ans et demi je code en Scala, et j’adore ce langage ! Scala est un langage très expressif qui permet de développer exactement ce que l’on veut. Par exemple, ce qui prend 100 lignes de code en Java peut être écrit en moins de 20 lignes avec Scala. Scala est une combinaison de langage fonctionnel et impératif, donc on ne risque pas de manquer de moyens d’exprimer ce que l’on veut faire. Enfin, ce que personnellement je préfère dans Scala, c’est ce qu’on appelle “Syntactic Sugars”, je vous invite à vous renseigner sur ce sujet sur Internet !

Commentaires :

A lire également sur le sujet :