Architecture Lambda, Kappa ou Datalake : comment les exploiter ?

Architectures lambda kappa datalake

Webinar DevOps le 27 mai 2021 avec Cyres, Gitlab et Amazic

 

Dans le domaine des Big Data il existe des problématiques auxquelles aucune technologie, utilisée seule, ne peut apporter de réponse globale. Ainsi, le choix d’une technologie et l’usage qui en sera fait sera en général soumis à deux questions préalables : l’outil est-il évolutif ? Existe-il une courbe d’apprentissage liée à l’expérience de cette technologie, qui permette une réduction des temps de production, dans le temps ?
Des architectures big data, comme l’architecture Lambda par exemple, ont donc été conçues pour résoudre des problématiques parfois complexes nécessitant l’intervention de plusieurs technologies. Ces architectures pourraient être comparées aux design patterns dans les langages objets. Les design patterns permettant de répondre à des enjeux liés à la conception d’un programme pouvant garantir la réutilisation et la pérennité du code.

Nous allons donc détailler ici le mode de fonctionnement de trois architectures big data répondant à des besoins de traitement, de sauvegarde et/ou d’analyse de donnée :

  • Architecture Datalake
  • Architecture Lambda
  • Architecture Kappa

Transformation et raffinement des données : le Datalake

Le Datalake (ou lac de données) est une architecture apparue avec les technologies Big Data, permettant le stockage de gros volumes de données.
Le Datalake offre aux entreprises un système de stockage permettant d’accueillir tous types de données (brutes ou non) qu’elles soient structurées, semi-structurées et/ou non structurées. Cette architecture big data permet ainsi une transformation et un raffinement rapide des données stockées, que le volume traité soit important ou non. Celle-ci pourrait être défini en un mot : adaptable.

Bien que n’étant pas le seul, Hadoop reste le framework de référence le plus utilisé pour la construction d’un Datalake.

Pour rappel Hadoop est composé de quatre modules :

  • HDFS
  • Common
  • YARN
  • MapReduce

 

Les données peuvent provenir de multiples sources comme des logs, des services web, etc. Les différents systèmes d’ingestion consommeront les données pour ensuite les insérer dans le Datalake (HDFS). Une fois que les données sont enregistrées, les systèmes d’interrogations pourront alors interroger le Datalake.

 

datalake architecture big data

 

L’architecture Lambda offre des vues complètes sur l’ensemble des données

L’architecture Lambda a été imaginée afin de faire simultanément du traitement de type batch (traitement par block de données) et du traitement en temps réel (de manière continu). Contrairement au Datalake qui sert essentiellement au stockage, l’architecture Lambda permet de fusionner le traitement par bloc de données (batch) et les nouvelles données entrées (temps réel).

L’architecture Lambda se découpe en 3 couches :

  • Couche batch (Batch Layer) :
    • Stockage de l’ensemble des données
    • Traitements massifs et réguliers
    • La fréquence des traitements ne doit pas être trop importante afin de minimiser les tâches de fusion des résultats pour constituer les vues
  • Couche temps réel (Speed Layer) :
    • Traite tout type de donnée reçu en temps réel
    • Calcul des vues incrémentales qui vont compléter les vues batch afin de fournir des données plus récentes
    • Suppression des vues temps réel obsolètes (postérieures à un traitement batch)
  • Couche de service (Serving Layer) :
    • Permet de stocker et d’exposer aux clients les vues créées par les couches batch et temps réel
    • Adapté à tous types de bases NoSQL

 

L’architecture Lambda sera souvent utilisée pour obtenir une vision complète des données.

 

architecture lambda

 

 

Besoin de conseils autour de votre architecture Big Data ? Contactez-nous

 

Kappa : une architecture simplifiée et dédiée au traitement des données

L’architecture KAPPA a été pensée pour pallier la complexité de l’architecture Lambda. Elle repose sur le principe de fusion de la couche temps réel et batch, ce qui la rend moins complexe que l’architecture Lambda. Ne permettant pas le stockage de manière permanente, cette architecture est faite pour le traitement de donnée.

Kappa n’étant également pas liée à une seule technologie, vous pouvez y associer différents outils, comme le montre le schéma ci-dessous :

  • Stockage/temps réel : Kafka permet la sauvegarde des messages pour pouvoir ensuite les retraiter
  • Traitements : Storm, Spark
  • Couche de service : Cassandra, Hive, HBase, Outil maison, etc…

 

architecture kappa

 

 

Choisir l’architecture de données idéale n’est pas une chose aisée. Le Big Data ne déroge pas à cette règle.

Bien que les architectures se veulent suffisamment évolutives, il faut se poser les bonnes questions pour être en mesure de choisir la configuration et l’architecture Big Data adaptée. puisque comme évoquées ici, elles ne répondent pas toutes aux mêmes problématiques de traitement de données.

Pour répondre à certaines problématiques nous pouvons parfois « fusionner » plusieurs architectures et prendre par exemple une liaison entre le Datalake et Kappa afin d’obtenir un stockage performant, à moindre coût et faire du traitement de donnée. On notera également qu’il est possible de réaliser du stockage simple avec l’architecture Lambda mais cette dernière pourrait s’avérer être surdimensionnée par rapport au besoin réel.

 

Lire notre article sur l’industrialisation du Cloud au service de l’architecture Big Data