Kafka, pierre angulaire des Architectures Fast Data ?

Kafka, pierre angulaire des Architectures Fast Data ?

Kafka, pierre angulaire des Architectures Fast Data ?

Dans les projets Big Data, le Data Streaming s’impose de plus en plus comme un nouvel impératif. Bonne nouvelle, c’est aussi le terrain de jeu de prédilection de Kafka.


Big Data ou Big Mess ?

Comment éviter que le Big Data ne devienne un « Big Mess » ? C’est pour répondre à cette question qu’en 2009 les équipes de LinkedIn, confrontées à des problématiques d’intégration de données auxquelles les outils disponibles ne répondaient pas, élaborent un nouveau bus de messages distribué : Kafka.

Placé en 2011 sous l’égide de la fondation Apache, ce broker de messages connaît depuis une adoption croissante. Pour une raison essentielle : Kafka est dans la pratique bien plus qu’un bus. Et sa nature profonde en fait une brique de choix pour outiller les projets Big Data et, plus précisément, les scénarios qui recourent au Data Streaming. Explications.

Apache Kafka, bien plus qu’un bus

Quand les équipes de LinkedIn se penchent sur le cahier des charges de leur bus idéal, c’est notamment par comparaison avec les limites des solutions existantes. Voilà pourquoi elles se fixent notamment comme objectif de concevoir un bus qui :

  • Garantit le découplage entre producteurs de données et consommateurs
  • Supporte des consommateurs multiples
  • Permet une forte scalabilité horizontale via une Architecture distribuée
  • Met en œuvre la persistance des données

Et c’est bien ce que permet Kafka aujourd’hui. La solution se distingue par sa capacité à gérer des débits très élevés de messages, ce que les consultants Nexworld ont pu vérifier lors de différentes évaluations.

Caractéristique clé : la persistance .
Autre spécificité, avec Kafka les messages ne disparaissent pas aussitôt qu’ils sont consommés mais persistent dans des « topics » auxquels sont abonnés des consommateurs. Cette persistance est une caractéristique clé. Confluent, co-fondé par l’équipe à l’origine de Kafka et qui développe des solutions et services complémentaires, revendique ce positionnement haut et fort : « Kafka est basé sur une abstraction d’un commit log distribué (…) et a rapidement évolué du broker de messages vers une plateforme de streaming à part entière ».

Data Streaming, le terrain de prédilection de Kafka

Et, de fait, les usages actuels de Kafka confirment ce positionnement. Dans une étude menée l’an passé (350 organisations interrogées dans 47 pays), si 50% des interrogés mentionnent « le messaging » parmi les tâches confiées à Kafka, 66% évoquent le « streaming process ». Parmi les cas d’usages, se détachent les data pipelines (81% de mentions), les Microservices (50%), ou encore la supervision temps réel (43%).

Cas d’usage les plus courants pour Apache Kafka (350 organisations interrogées dans 47 pays)

Parce que le Data Streaming désigne des données issues de sources variées et (surtout) générées de manière continue il est souvent associé à l’internet des objets (IoT). Dans la pratique, les traitements de ces données diffusées en continu se rencontrent dans bien d’autres cas d’usage : détection de fraudes dans le secteur de la finance, achats temps réel dans celui de la publicité digitale, supervision de la sécurité informatique. En fait, le Data Streaming s’impose dès qu’il s’agit de penser non plus « Big Data » mais « Fast Data », autrement dit, dès que la question de la vélocité des données prend le dessus.

Le temps réel, la nouvelle quête

« Le traitement temps réel de la donnée, c’est la quête des nouvelles plateformes Data, confirme Guillaume Drot, consultant Nexworld spécialiste des Architectures Big/Fast Data . Et Kafka permet de mettre en œuvre ce streaming pour traiter des événements au fil de l’eau, donc pour bâtir une chaîne de traitement en continu. L’Architecture hautement scalable s’avère particulièrement bien adaptée à ces usages ».

Un « commit log » avant tout

Attention, Kafka n’est pas pour autant une baguette magique. « C’est un commit log, souligne Guillaume Drot, qui délègue plus de responsabilité aux applications qui consomment des messages. Il revient par exemple à ces applications de gérer des mécanismes d’accusé de réception là où d’autres brokers les intègrent plus nativement. »

Attention aux formats des messages

Résultat, selon les scénarios, des bonnes pratiques s’imposent pour garder la maîtrise des flux de messages gérés via Kafka. Pour exploiter par exemple le streaming de données dans le cadre d’Architectures Microservices, une grande rigueur s’impose dans la définition des formats des messages. Objectif : sélectionner des IDs qui, injectés dans les messages, enrichissent les informations techniques ou métiers. « La bonne nouvelle, commente Guillaume Drot, c’est que la plateforme permet une gestion centralisée de ces formats ».

Une « Single Source of Truth »

Au-delà de ces bonnes pratiques, de nombreuses librairies existent pour compléter l’outillage de Kafka. « Attention d’opter pour des librairies régulièrement maintenues et qui suivent au plus près les différentes évolutions de la plateforme », recommande Guillaume Drot. Des précautions à prendre pour tirer le meilleur parti de ce qui ressemble désormais plus à un système de stockage qu’à un bus. Avec une vocation clairement assumée : faire office de « Single Source of Truth » à l’ère du Big (et Fast) Data.

Interview de Guillaume Drot

Interview de Guillaume Drot

Consultant Nexworld

DÉCOUVREZ COMMENT NOTRE CABINET ACCOMPAGNERA LA TRANSFORMATION DE VOTRE ENTREPRISE

Les consultants Nexworld mettent leur expertise aux services des entreprises qui veulent accélérer leur transformation numérique. Nexworld propose des séminaires adaptés aux besoins et au SI existant de votre entreprise.

Architecture Fast Data : par où commencer ?

Ce n’est plus un secret pour personne, les données sont aujourd’hui porteuses d’un potentiel incroyable avec une quantité toujours plus importante d’année en année. Pourtant, même si les entreprises sont conscientes des masses de données qu’elles ont à leur disposition, la question de savoir comment les exploiter peine toujours à être traitée.

Architecture Fast Data : par où commencer ?

Ce n’est plus un secret pour personne, les données sont aujourd’hui porteuses d’un potentiel incroyable avec une quantité toujours plus importante d’année en année. Pourtant, même si les entreprises sont conscientes des masses de données qu’elles ont à leur disposition, la question de savoir comment les exploiter peine toujours à être traitée.

Kafka, pierre angulaire des Architectures Fast Data ?

Comment éviter que le Big Data ne devienne un « Big Mess » ? C’est pour répondre à cette question qu’en 2009 les équipes de LinkedIn, confrontées à des problématiques d’intégration de données auxquelles les outils disponibles ne répondaient pas, élaborent un nouveau bus de messages distribué : Kafka.

Big Data : Splunk versus la Suite Elastic

Big Data : Splunk versus la Suite Elastic

Big Data : Splunk versus la Suite Elastic

Avec l’arrivée du Big Data et l’explosion des volumes de données, il est devenu essentiel de savoir exploiter ces données pour en extraire de la valeur. Deux outils se disputent aujourd’hui la place de leader dans le domaine : Splunk (le propriétaire) et la Suite Elastic (l’open source).

Le Graal : disposer d’une vue unifiée des données

Bien souvent les entreprises disposent d’une grande quantité de données mais ne savent pas comment les exploiter efficacement.

Et pour cause : les données sont dispersées dans le SI, suivant une répartition en silos. Autrement dit, des données provenant de divisions et d’outils distincts sont stockées et traitées distinctement sans communication entre chaque silo. Résultat, les données sont également analysées indépendamment de façon décorrélée les unes des autres. Il est alors difficile de détecter des événements survenant de manière globale. Et même si l’on dispose d’une visualisation unifiée des données de son SI, aucun outil ne permet de mettre automatiquement en évidence des événements corrélés.

En outre, l’émergence des données non structurées apporte un nouveau challenge d’un point de vue analytique. Les outils d’analyse doivent être capables de lire ces dernières et de pouvoir en extraire le contenu de façon automatique.

Il est donc primordial d’avoir une vision unifiée et intelligente de ses données, pour les analyser efficacement et générer de la valeur. Les outils tels que Splunk et la Suite Elastic (anciennement ELK) répondent à ces problématiques.

Comment Splunk et la suite Elastic valorisent

vos données ?

Splunk et la Suite Elastic proposent principalement une réponse aux mêmes besoins, et peuvent donc être considérés comme des concurrents (même s’ils fonctionnent différemment, et que Splunk se veut plus complet).

Leur but premier est de transformer les données (notamment les logs de tous types) pour apporter une visibilité en temps réel et produire de l’intelligence opérationnelle. Avec, à la clé, un large panel d’usages.

Leurs fonctionnalités de base permettent de collecter les données (depuis de nombreux types de source), de les stocker de façon centralisée, de les analyser et de restituer visuellement ces informations en temps réel sous forme de dashboards personnalisables.

Les deux solutions s’accompagnent évidemment de nombreuses fonctionnalités supplémentaires (sécurité, alerting, monitoring, enrichissement des données, Machine Learning, etc…).

Suite Elastic, une solution très modulaire

La Suite Elastic se caractérise, comme son nom l’indique, par sa conception modulaire. Elle propose l’utilisation conjointe et complémentaire de 4 outils partageant le même éditeur (Elastic) :

  • Beats,
  • Logstash,
  • Elasticsearch,
  • Kibana

Ces 4 solutions sont open source et gratuites.

A noter que chaque outil est autonome dans sa fonction et peut être utilisé indépendamment des autres. Il est donc possible selon ses besoins de se passer d’un élément de la Suite ou de le remplacer par un autre outil de son choix.

Beats est un agent installé sur chaque machine, qui collecte localement les données et les transfère à Logstash. Il offre des fonctions inhérentes au transfert de données comme le load balancing, le transfert par lots, de façon synchrone/asynchrone, etc.

Logstash prend en charge le formatage et l’enrichissement des données. Il peut être considéré comme un ETL (Extract Transform Load). Il reçoit des données de sources variées envoyées par Beats, y applique diverses transformations, et les transfère à Elasticsearch. Ces transformations peuvent être par exemple un parsing de données pour identifier leur contenu (détection des dates, adresses IP, ports, URLs etc.), une localisation géographique à partir d’une IP, l’anonymisation d’une partie des données, une standardisation du format, etc… Logstash étant open source, il est possible de développer ses propres filtres – de fait, ses possibilités sont en constante évolution.

Elasticsearch constitue le cœur de la Suite Elastic. C’est un moteur de recherche et d’analyse distribuée, qui stocke les données de manière centralisée. Basé sur la bibliothèque Apache Lucene, et utilisant une base de données orientée documents, Elasticsearch peut effectuer des recherches sur des données structurées ou non-structurées, explorer des tendances, identifier des modèles dans les données, le tout en temps réel (de l’ordre de la seconde). Les interactions avec Elasticsearch se font via des API REST, et Elastic adresse ses clients dans divers langages. Il est également possible de l’interfacer avec Hadoop (stockage sur Hadoop et recherche avec Elasticsearch).

Kibana est l’interface graphique permettant de visualiser les données stockées et analysées par Elasticsearch. L’interface est user-friendly et les divers graphiques sont présentés sous forme de dashboards personnalisables.

Enfin, Elastic propose un pack d’extension sous le nom d’X-Pack qui apporte un certain nombre de fonctionnalités (dont certaines peuvent être considérées comme essentielles) sous la forme d’outils. Il en existe 6 actuellement : sécurité, monitoring, alerting, reporting, analyse orientée graphes et Machine Learning. Contrairement au reste de la Suite Elastic, ces extensions sont payantes, de même que le support.

Splunk : des agents, un index et des solutions Premium

Splunk, au même titre que la suite Elastic, utilise des agents légers installés sur chaque machine, qui transmettent les données pour les stocker dans un index central. Index dans lequel les données, qui peuvent être structurées ou non structurées, pourront être recherchées rapidement. A noter que Splunk est une solution tout-en-un, et non une association de plusieurs briques indépendantes et autonomes comme c’est le cas pour la suite Elastic (la version SaaS est donc fonctionnelle immédiatement avec un minimum de paramétrage. Il est possible de l’essayer gratuitement).

Mais Splunk ne se limite plus à un simple outil d’exploration des logs, comme il l’était à ses débuts. Il permet de corréler les données, de détecter automatiquement des patterns, et associe ces mécanismes à des fonctionnalités de Machine Learning. En découlent des capacités d’apprentissage, de déduction et de prédiction. Splunk procure de quoi de détecter des tendances, prédire une défaillance future, envoyer des alertes de manière anticipée…

En plus de ses fonctionnalités natives, Splunk fonctionne sur un modèle d’Apps (en quelque sorte, des templates préconfigurés spécifiquement pour un besoin) et d’add-ons. Ces Apps et add-ons peuvent être développés par Splunk, les partenaires, ainsi que par la communauté.

Enfin, Splunk propose trois Solutions Premium, payantes. Elles apportent des fonctionnalités beaucoup plus avancées, notamment  dans le domaine de la sécurité (comme de l’analyse de comportement) :

  • Splunk IT Service Intelligence: Monitoring avancé (avec Machine Learning et analyse d’événements)
  • Splunk Enterprise Security: SIEM (Security Information and Event Management) pour détecter les attaques externes/internes. SIEM fournit des informations en temps réel sur les réseaux, les terminaux, les accès, les logiciels malveillants, les vulnérabilités et les identités.
  • Splunk User Behavior Analytics (UBA): Basé sur Hadoop et l’utilisation du Machine Learning, il détecte des menaces internes par modélisation du comportement, analyse de groupes de pairs, corrélations, etc.

Splunk a obtenu plusieurs certifications, comme la certification Common Criteria (ISO 15408) qui atteste d’un très haut niveau de sécurité – la solution est d’ailleurs utilisée par des agences gouvernementales telles que la NSA.

Le tout est proposé au travers d’une interface user-friendly accessible depuis un navigateur web. Il faut cependant noter que les recherches sur les données se font à l’aide d’un langage propriétaire, le Splunk Search Processing Language (SPL).

« Tout-en-un » versus « Do It Yourself »

Il faut donc bien comprendre qu’il n’y a pas une solution meilleure que l’autre, dans l’absolu. Les solutions sont toutes deux viables et populaires dans le contexte actuel, et disposent l’une comme l’autre d’une bonne communauté. Chacune, de par ses spécificités, saura répondre à des besoins différents.

Par exemple, la Suite Elastic est accessible gratuitement, mais va mobiliser davantage de ressources pour son installation, sa configuration et son utilisation, en raison de son approche « do-it-yourself ». Alors que Splunk, au contraire, impose un prix d’entrée élevé, mais constitue une solution tout-en-un complète et mature qui sera prête rapidement et accessible à des profils moins techniques. Tout dépend donc de la complexité des besoins et des ressources humaines ou financières qu’on souhaite allouer.

Il faut donc avant tout bien qualifier ses besoins et contraintes, afin de choisir la solution la plus adaptée. Rien ne sert d’adopter une solution surpuissante pour répondre à un cas d’usage simple.

Sylvain MAZARD

Sylvain MAZARD

Consultant Nexworld

DÉCOUVREZ COMMENT NOTRE CABINET ACCOMPAGNERA LA TRANSFORMATION DE VOTRE ENTREPRISE

Les consultants Nexworld mettent leur expertise aux services des entreprises qui veulent accélérer leur transformation numérique. Nexworld propose des séminaires adaptés aux besoins et au SI existant de votre entreprise.

Architecture Fast Data : par où commencer ?

Ce n’est plus un secret pour personne, les données sont aujourd’hui porteuses d’un potentiel incroyable avec une quantité toujours plus importante d’année en année. Pourtant, même si les entreprises sont conscientes des masses de données qu’elles ont à leur disposition, la question de savoir comment les exploiter peine toujours à être traitée.

Architecture Fast Data : par où commencer ?

Ce n’est plus un secret pour personne, les données sont aujourd’hui porteuses d’un potentiel incroyable avec une quantité toujours plus importante d’année en année. Pourtant, même si les entreprises sont conscientes des masses de données qu’elles ont à leur disposition, la question de savoir comment les exploiter peine toujours à être traitée.

Kafka, pierre angulaire des Architectures Fast Data ?

Comment éviter que le Big Data ne devienne un « Big Mess » ? C’est pour répondre à cette question qu’en 2009 les équipes de LinkedIn, confrontées à des problématiques d’intégration de données auxquelles les outils disponibles ne répondaient pas, élaborent un nouveau bus de messages distribué : Kafka.