Apache Kafka, c’est quoi ?

Apache Kafka, c’est quoi ?

Le Framework Kafka a été développé initialement en 2011 chez LinkedIn puis mis à disposition par la fondation Apache depuis 2014. L’éditeur Confluent distribue également ce Framework en lui ajoutant des fonctionnalités intéressantes au sein de sa plateforme.

Qu'apporte le framework Kafka lancé par Apache ?

Kafka peut être défini de façon schématique comme un outil de diffusion de messages destinés à être lus par quiconque intéressé. Avec ce Framework, l’émetteur du message publie ce dernier dans un Broker sans savoir exactement qui va être intéressé par sa lecture. En plus du message originel, l’émetteur va ajouter des propriétés caractérisant ce message au moment de sa publication de façon à le typer. Chaque composant désirant lire des messages s’abonne au Broker en lui indiquant quels types de messages l’intéressent. Ainsi, dès qu’un nouveau message est publié par quiconque dans le Broker avec une typologie particulière, seuls les abonnés ayant souscrits à ce type de message seront notifiés de son arrivée, sans savoir qui l’a posté.

Kafka est donc une plateforme de distribution de messages – d’évènements, ou de logs selon la sémantique que l’on veut donner à l’information publiée – en temps réel, scalable et extrêmement fiable. Apache a constitué ce Framework afin qu’il puisse traiter des millions de messages par seconde en garantissant qu’aucun d’entre eux n’est perdu. L’ensemble des messages sont persistés sur disques dans des fichiers (principe de rétention). Leur suppression n’est effective qu’après l’écoulement d’un délai (par défaut 7 jour) ou si ces fichiers excèdent une taille donnée (1 Go par défaut). Le point essentiel est que la lecture d’un message ne le retire pas du Broker : il peut être lu à volonté par un même abonné ou généralement par plusieurs abonnés.

Apache Kafka peut à ce titre être considéré comme un système hybride entre une messagerie et une base de données.

Les composants de Kafka plus en détail

Faisons un zoom sur les constituants essentiels d’Apache Kafka pour bien fixer les idées.

Le cluster : le cœur du fonctionnement de Kafka

La mise en œuvre d’un serveur Kafka se fait par l’intermédiaire d’un cluster qui va regrouper les composants techniques essentiels, les Brokers. Le Broker est l’élément central par lequel vont transiter tous les messages depuis leur publication jusqu’à leur persistance sur disque, en passant par leur distribution vers les consommateurs. Afin de rendre le plus robuste possible un serveur Kafka, ce Broker est redondé par l’intermédiaire d’un autre Broker, voire plusieurs. Le Broker principal est nommé leader, les autres sont les réplicas. Les producteurs se connectent sur le leader pour publier leurs messages.

En plus de ces Brokers existe également un Broker Controller dont le rôle est d’assumer la gestion technique du cluster dans son ensemble et d’effectuer son monitoring. Chaque cluster Kafka contient donc au moins 3 Brokers : le leader, un réplica et le Controller.

Les messages et Topics

Un message contient la donnée, quelle qu’elle soit, qui va être envoyée par les producteurs dans le Broker. Il est intéressant de noter qu’un producteur peut envoyer des messages par batch, on parlera alors de groupe de messages. Chaque message envoyé concerne un Topic particulier qui a pour vocation de caractériser le message, et ainsi cibler les consommateurs concernés par ce dernier. Kafka autorise une gestion très fine de ces Topics en les découpant en partitions pour une gestion fine de leur redondance et de leur performance. Mais ceci est une autre histoire…

Les producteurs et les consommateurs

Ils n’ont plus de secret pour vous maintenant : un producteur écrit un message dans le Broker concernant un Topic en particulier. Chaque consommateur s’abonne au Broker pour les messages liés aux Topics qui les intéressent. Et lorsque qu’un message est posté, tous les consommateurs concernés par le Topic du message sont notifiés. Pour rappel, la lecture d’un message ne l’enlève pas du Broker, c’est la politique de rétention qui gère la durée de vie des messages au sein du serveur Kafka.

Dans la version Kafka de l’éditeur Confluent, un moteur de requêtes ksqlDB est également présent offrant ainsi aux producteurs et aux consommateurs une interface simple pour toute la manipulation des données dans le Broker. Un formalisme proche du langage SQL est ainsi disponible avec toutes les facilités afférentes.

Kafka pour faire quoi ?

Le champ des possibles est assez vaste, et il serait fastidieux de dresser la liste exhaustive des cas d’usage pour lesquels Kafka se positionne correctement. Sa capacité à traiter sous la forme de flux des millions de messages par seconde peut s’appliquer à de nombreux domaines. Citons quelques exemples.

En tant que producteur, toute sorte d’application peut aller écrire des messages sur un serveur Kafka. En particulier les services ou micro services collectant des données venant du terrain par le biais de capteurs (appareils connectés, matériel médical, lignes de montage), des WebServices interrogeant des Data Center pour diffuser des évènements essentiels pour un domaine métier (finance, assurances, e-commerce), des services générant des logs de supervision, etc.

Du coté des consommateurs, tout applicatif intéressé par l’ingestion de données à la volée et/ou volumineuse est candidat : bases de données devant persister les données intéressantes, applicatif élaborant des rapports/synthèses, BigData, plateformes de traitement ETL, et bien sur tout type d’application métier et temps-réel.

Pour finir, quelques exemples de sociétés ayant mis en œuvre Kafka pour traiter en temps-réel les données en masse qui constituent leur cœur de métier (messages, notations, avis…) : Twitter, Netflix, Paypal, LinkedIn, Tinder, Uber.

Nous vous proposons des solutions autour de l’ingénierie logicielle : systèmes d’information, systèmes embarqués, édition logiciels… Découvrez nos expertises sans plus attendre !

Reconnaissance vocale de locuteurs : Comment, pourquoi

La reconnaissance vocale de locuteurs : comment et pourquoi

Reconnaitre une personne par sa voix est de plus en plus un enjeu fort en matière d’authentification des personnes à des fins de vérification et de sécurité. La reconnaissance de locuteurs est un sous-ensemble de la reconnaissance vocale qui, par le deep learning en lieu et place des méthodes statistiques, progresse très fortement.

Reconnaissance dépendante ou indépendante

Il existe deux types de reconnaissance de locuteur : soit par la reconnaissance dépendante du texte (Text-dependant speaker recognition), soit par la reconnaissance indépendante du texte (Text-independant speaker recognition). Dans le premier cas, l’algorithme est entrainé par des phrases pré établies et dites par un panel de locuteurs à reconnaitre. Dans le second cas, il n’y a pas d’entrainement sur une phrase spécifique, ce qui rend la méthode sans doute moins efficace.

Identification ou authentification vocale

La majorité des solutions développées en reconnaissance de locuteurs ont une objectif d’authentification, c’est-à-dire vérifier avec un niveau de doute minimal qu’une personne est bien celle qui a enregistré sa voix pour vérification. Cela répond aux besoin des entreprises de minimiser les risques de fraude (usurpation d’identité notamment) vis-à-vis de leurs clients. Maintenant ces solutions ne permettent pas reconnaitre la personne, parmi un groupe de locuteurs, qui nous a principalement adressé la parole. Dans ce cas, il s’agit de mettre en place un algorithme d’identification. L’approche est d’autant plus complexe si plusieurs personnes (locuteurs) parlent en même temps, auquel cas la méthode d’authentification vocale doit intégrer le principe de diarisation, c’est-à-dire une segmentation de l’enregistrement vocal de sorte d’obtenir des segments vocaux ne contenant si possible qu’un seul locuteur.

Python, Pyannote et DeepSpeaker

Il existe aujourd’hui une offre commerciale de solutions de reconnaissance de locuteurs (Microsoft Azure, Oxford Wave Research Vocalize …). Cela reste un domaine pour lequel beaucoup de travaux de recherche sont en cours. Pacte Novation s’est essayé à la construction d’un logiciel en s’appuyant sur le langage Python, la librairie Panda pour la gestion des données, la librairie Tensorflow de Google avec une surcouche Keras pour la construction du réseau de neurones, Pyannote.audio pour la diarisation des locuteurs et enfin DeepSpeaker, un système d’intégration de haut-parleurs neuronaux. Après 6 mois d’effort, l’algorithme de d’authentification vocale est efficace à 73%.

Nous vous proposons des solutions autour du système d’information, système expert, embarqué et édition de logiciels,  nous permettant de répondre à la plupart des exigences du marché. 

Domotique, IOT : découvrez les dernières tendances pour une société toujours plus moderne

Domotique, IOT : découvrez les dernières tendances pour une société toujours plus moderne

L’avancée permanente de notre mode de vie et de nos habitudes de consommation ne cesse de faire naître en nous de nouveaux besoins. Afin de satisfaire ceux-ci, nous développons chaque jour de nouvelles solutions intelligentes qui s’adaptent parfaitement à nos réalités.

La domotique : pour des maisons toujours plus ergonomiques

Cela ne vous a sans doute pas échappé : les maisons connectées et contrôlables à distance, le contrôle intelligent de la consommation électrique, les alertes de présence au domicile, l’extinction automatique de l’éclairage, le verrouillage automatique des portes, etc. Ces termes ne vous sont plus étrangers. Vous les avez probablement déjà expérimentés chez un parent, un ami ou en avez déjà entendu parler. Toutes ces tâches, autrefois faites manuellement, sont aujourd’hui complètement automatisées grâce à la domotique. Et ce, dans le but de vous apporter le maximum de contrôle (sécurité et gestion de la consommation énergétique notamment) et de facilité (confort) grâce à la technologie.

Le IoT ou le monde des objets connectés

Si le terme iot ne vous évoque rien, c’est probablement parce qu’il est un anglicisme signifiant littéralement « Internet des Objets ». Ce terme regroupe l’ensemble de nos objets du quotidien que nous connectons à Internet. Vous l’aurez compris, cela va de la plus petite enceinte connectée aux caméras de surveillance dans les rues. Et cela dans le but d’optimiser et de faciliter le traitement des informations entre machines avec le minimum d’interventions humaines. Ainsi, les machines communiquant entre elles prennent des décisions permettant d’améliorer notre quotidien. Cela est particulièrement utile dans les industries et dans les grandes chaînes de production où l’automatisation de processus apporte un gain de temps considérable.

IoT et Big Data : une relation forte

Saviez-vous que chaque fois que vous interagissez avec du matériel connecté, vous générez des données ? Effectuer une recherche sur Internet, aller sur un réseau social, écouter de la musique sont autant de moyens aujourd’hui de générer des données. Autant vous le dire, nous produisons des quantités colossales de données chaque jour. Ce sont ces données produites qu’on désigne par le terme « big data ». L’analyse et le traitement de ces données est un enjeu majeur de technologie.

Quel est le processus de transformation digitale en France ?

Quel est le processus de transformation digitale en France ?

Environ 86% des Français utilisent internet en 2021. Cela témoigne de son rôle clé dans le fonctionnement de la société. Face à ce constat implacable, les entreprises ont dû prendre le tournant du numérique. Néanmoins, ce processus de transformation digitale connaît des fortunes diverses. Comment le décrire ?

Un processus enclenché qui se développe à grande vitesse

La transformation digitale est une réalité et une tendance marquée. Chaque année, des milliers d’entreprises débarquent sur la toile pour conquérir de nouveaux clients. Elles tentent ainsi de séduire une partie des acheteurs en ligne qui sont près de 40 millions en France. De même, près de 40 millions de Français sont présents sur les réseaux sociaux.

Un Français passe en moyenne plus de 2h40 par jour sur internet et près d’une heure 40 sur les réseaux sociaux. Youtube est le réseau social le plus utilisé, suivi de près par Facebook puis par Instagram. En ce sens, avoir une forte présence sur internet pour une entreprise est une nécessité. Cela lui permet de s’exposer à un public large et nombreux et de booster ses ventes. De plus, elle peut promouvoir ses produits sur les réseaux sociaux.

Une transformation digitale inégale

Toutefois, tout le monde n’est pas touché autant par cette forte tendance. En 2020, moins d’un tiers des TPE considéraient en faire partie. Une très large majorité des PME (environ 70%) déclarent ne pas avoir d’outils digitaux efficaces. Les ETI, quant à elles, sont beaucoup plus incluses dans cette tendance. Elles sont plus de 4 sur 5 à être engagées dans ce processus. Cela leur bénéficie puisqu’elles voient leurs chiffres s’envoler et gagnent en visibilité ainsi qu’en efficacité opérationnelle.

On le constate, la transformation digitale gagne du terrain. Néanmoins, elle concerne plus les grandes que les petites et moyennes entreprises.