Airflow - SmartData by Ntico

Smart Engineering : Airflow ? Ça brasse du vent ?


Introduction

Non, Airflow ne brasse pas le vent mais plutôt des données !
Airflow est une plateforme servant à écrire, planifier et monitorer des flux de données programmatiquement.

Ils sont représentés sous la forme de DAGs (Directed Acyclic Graph).

Airflow a été créé par AirBnB en 2015 par Maxime Beauchemin. Le projet OpenSource a déjà fait l’objet de plus de 13 000 forks et affiche plus de 35 000 stars. Près de 2900 contributeurs font évoluer le produit le rendant utilisable par un nombre important d’entreprises en OSS sous Licence Apache.

Airflow est également disponible en Saas via la société Astronomer ou encore en PaaS sur les plateformes Google Composer et Amazon MWAA.

Ses principaux concurrents

Pourquoi l’utiliser ?

Airflow est très souvent utilisé pour opérer des workloads très gourmands en temps de traitement tels que les entrainement de modèles de machine learning.

Ce produit convient très bien au séquencement des traitements de données en permettant de chaîner les tâches entre elles au sein de workflows que vous pourrez ensuite planifier ou déclencher sur évènement.

Enfin il peut également jouer le rôle d’ELT principalement grâce à ses nombreux opérateurs.

Comment ça marche ?

Afin d’appréhender au mieux l’architecture technique et fonctionnelle de l’outil, il est nécessaire de partager un peu de vocabulaire. Voici donc les principaux termes qui composent le paysage technique d’Airflow :

Scheduler

Il est chargé de déclencher les DAG ainsi que les tâches en fonction de leur calendrier et de leurs dépendances. Pour ce faire, il surveille les tâches et lance les tâches dépendantes en aval une fois que les tâches en amont sont terminées. C’est ainsi qu’il soumet les tâches à un executor.

Worker

Ce sont les machines où les tâches sont exécutées. Cela peut être sur la même machine/nœud où le planificateur s’exécute, si l’on utilise des exécuteurs à nœud unique ou une machine/nœud dédiée si l’on utilise des exécuteurs à nœuds multiples.

Metadata Base

C’est la base de données qui stocke les états des flux de travail, la durée d’exécution, les emplacements des journaux, etc. Cette base de données stocke également des informations concernant les utilisateurs, les rôles, les connexions, les variables, etc.

Repo Dags

C’est le Repository où Airflow stocke tout le code des DAG. Il est accessible au scheduler, au webserver et aux workers.

Executor

Un executor est la partie du scheduler qui traite et gère les tâches en cours d’exécution. Airflow fournit différents types d’executors, notamment les principaux :

– exécuteur local
– exécuteurs multi-nœuds : Celery Executor, Kubernetes Executor

WebServer

C’est ce service qui sert l’interface utilisateur permettant de visualiser, de contrôler et de surveiller tous les DAG. Cette interface permet de déclencher manuellement un DAG ou une tâche, d’effacer les exécutions du DAG, de visualiser les états et les journaux des tâches et de visualiser la durée d’exécution des tâches. Elle permet également de gérer les utilisateurs, les rôles et plusieurs autres configurations d’Airflow.

Repo logs

C’est le repository où Airflow stocke les logs de toutes les tâches terminées. L’adresse de chaque tâche exécutée est stockée dans la base de données des métadonnées. L’utilisateur peut alors visualiser les logs à partir de cet emplacement via l’interface utilisateur du webserver. Airflow peut également être configuré pour définir un répertoire de logs distant, par exemple s3 ou GCS.

Les différentes architectures

Maintenant que l’on sait de quoi nous parlons, arrêtons nous sur les différentes architectures que l’on peut mettre en place pour installer Airflow.

Architecture technique Executor mono noeud

Architecture technique Executor multi noeuds Celery

Architecture technique Executor multi noeuds Kubernetes

  • Dag : Décrit la façon dont est orchestrée une série de tâches qui forme un flux.
  • Dag Run : C’est une instance d’un DAG fonctionnant à un moment donné.
  • Operator : Décrit une tâche à exécuter de façon atomique.
    • operator : une action à effectuer (shell, call api, python)
    • transfer : un spécifique pour transférer des données (bq to gcs operator)
    • sensor : déclencheur sur event (fichier sur s3)
  • Task : Représente un opérateur paramétrisé
  • Task Instance : C’est une instance d’une tâche exécutée à un moment donné avec un paramétrage précis.
  • X-Com : Canal d’échange d’informations entre tâches sous forme de Key-Value.

Échantillon des opérateurs disponibles

Avantages et inconvénients

Langage de programmation

L’un des avantages mais aussi des plus gros inconvénients de Airflow est son langage de programmation, Python.
En effet, cela permet de disposer de beaucoup de profils tech sur le marché et d’accroître la productivité. Il est également possible d’introduire des logiques de programmation telles que la création de Dags dynamique en fonction des besoins. Mais cela engendre aussi des problématiques de maintenance du produit de façon générale et entraîne souvent des soucis de dépendances.

Scalabilité

L’autre point ambivalent de la solution est sa scalabilité.
Depuis la version 2 du produit, tous les services sont scalables horizontalement, rendant le produit hautement disponible et normalement tolérant aux fautes. Cependant il est difficile de gérer efficacement cette scalabilité sans exploser les coûts au niveau de la consommation des ressources de Compute.

Communauté

La communauté qui s’active autour du produit est un atout également, ne laissant jamais ses utilisateurs sans réponse aux nombreuses questions qu’ils peuvent se poser au détour de la learning curve assez importante qu’ils doivent acquitter pour être opérationnels sur des projets de production à l’échelle.

Le nombre d’opérateurs disponibles contribue également aux avantages du produit.

Développement

En revanche, l’impossibilité de développer directement depuis le frontend de la solution peut devenir assez rédhibitoire en fonction de la cible utilisateur que vous devez adresser, de même que l’absence de gestion d’un quelconque versionning des Dags sans un bon Source Code Manager en back.

Sécurité

Enfin, dès lors que l’on souhaite mutualiser une instance de Airflow sur plusieurs périmètres fonctionnels avec des utilisateurs en provenance de domaines différents, il devient très compliqué de sécuriser les opérations et les accès aux ressources.

Retex de nos interventions Clients Grands Comptes

Deux de nos clients ayant tenté l’aventure du traitement de données à l’échelle mondiale avec Airflow en mode Event Driven se sont frottés à différents problèmes

  • Complexité des tâches simples : La création de workflows sans standardisation est une tâche fastidieuse.Cela peut créer beaucoup de bruit et ralentir les projets.
  • Problèmes de fiabilité : Airflow s’est avéré peu fiable, les tâches échouant souvent à cause de l’orchestrateur lui-même plutôt que d’erreurs dans le code. Ces problèmes de fiabilité peuvent faire perdre beaucoup de temps, réduisant ainsi la productivité globale.
  • Sécurité : La gestion des RBAC ainsi que des utilisateurs n’aide pas à sécuriser la plateforme de façon globale, rendant son utilisation difficilement mutualisable dans un contexte multi pays, multi projets, multi utilisateurs.
  • Longs délais de traitement : Dans certains cas, la durée des flux de données orchestrés par Airflow était vingt fois plus longue qu’avec d’autres outils de flux. Airflow nécessite une quantité importante de ressources CPU et de mémoire pour gérer des charges de travail même modérées, ce qui entraîne une augmentation des coûts d’infrastructure et des goulots d’étranglement potentiels au niveau des performances.

En faisant en sorte de standardiser les développements au travers de la mise à disposition de Dags pré-développés ne nécessitant plus que du paramétrage, nous avons pu gommer une partie de ces irritants et en tirer quelques bénéfices :

  • Homogénéisation des développements : onboarding plus rapide des nouveaux développeurs
  • Respect des règles d’architecture
  • Respect des règles de qualité de données
  • Recentrage des développeurs sur le fonctionnel
  • Amélioration du TimeToMarket
  • Facilitation du Run

Cependant, cela ne nous a pas permis de contrebalancer totalement les pain points décrits plus haut, nous obligeant à trouver d’autres solutions.

Vous rencontrez les mêmes problématiques ? La meilleure alternative qui permet de traiter tous les points énoncés se trouve juste ici 👉 kestra.io


Les IA Génératives - SmartData by Ntico

Smart Innovation : les IA Génératives


Introduction

Fin Avril, Sébastien et la communauté SmartInnovation vous ont proposé d’explorer les dessous des IA génératives (GenAI) dans un premier volet consacré aux images. Le but était d’expliquer, et d’implémenter, des modèles permettant de générer de nouvelles informations observables à partir de représentations latentes.

Définition

L’IA générative inclut tout système de génération de données synthétiques, originales, proposant des motifs et des structures similaires à des données d’entraînement.

Il existe aujourd’hui des modèles pour générer des images, des textes, des vidéos, de la musique, ou bien de nouvelles molécules thérapeutiques.

Nous avons en préambule vulgarisé le rôle du hasard et de l’espace latent (représentation compacte des données) dans la génération de nouvelles données, en proposant une comparaison avec le rôle de l’ADN dans la morphogénèse d’un organisme.

Des modèles génératifs

Nous nous sommes ensuite intéressés à la définition et l’implémentation de 3 modèles génératifs :

– les auto encodeurs conventionnels
– les auto encodeurs variationnels
– les réseaux génératifs antagonistes (GAN)

Les auto encodeurs conventionnels

Les auto encodeurs sont un type de réseau de neurones dont le but est de reconstruire une image donnée avec comme contrainte une représentation intermédiaire de plus petite dimensions.

Cependant, les auto encodeurs ne proposent pas une représentation simple de l’espace latent. Il est donc difficile de l’échantillonner pour générer des nouvelles données.

Les auto encodeurs variationnels

Les auto encodeurs variationnels sont des modèles probabilistes qui fournissent des distributions latentes plus compactes, adaptées à la génération de nouvelles informations.

Les réseaux génératifs antagonistes (GAN)

Finalement, les GAN sont une des plus grandes innovations des 10 dernières années. Deux réseaux de neurones s’affrontent dans un jeu à somme nulle : un générateur G qui joue le rôle de ‘faussaire’ et dont le but est de créer des informations crédibles, et le discriminateur D qui joue le rôle d’expert dont le but est de distinguer les fausses informations des données réelles.

Mise en pratique chez Ntico

Après une analyse du pseudo-code d’un GAN et une implémentation en Java/Python, nous avons fait la démonstration d’une application interne de DeepFake, en temps réel, sur plusieurs collaborateurs Ntico.

Une fois l’apprentissage terminé, nous avons montré qu’il existait une arithmétique vectorielle dans les espaces latents permettant de réaliser des interpolations et extrapolations sémantiques sur des données.

Deep Fake

x

Arithmétique vectorielle

Conclusion

Nous avons vu comment certains modèles à base de réseaux de neurones profonds permettaient de créer de nouvelles informations (images) à partir d’un ensemble d’apprentissage.

Il est important de noter que de tels modèles ne sont pas de simples perroquets stochastiques. Ils sont capables d’apprendre les éléments structurants d’un type d’informations, et de créer de nouveaux éléments observables inédits respectant les mêmes structures.

En ce sens, les IA génératives s’inspirent des données réelles sans en faire des copies exactes.

Chez Ntico Logistics, les modèles génératifs sont créés pour générer des données synthétiques utilisables dans la simulation de processus logistiques (picking).

Une autre application prometteuse pourrait être la création de campagnes marketing contextualisées. En utilisant des photos d’un prompt et des images réelles de produits, les IA génératives peuvent être exploitées pour générer des visuels publicitaires attrayants et personnalisés.


Piloter son infrastructure plus intelligemment et efficacement - SmartData by Ntico

Piloter son infrastructure plus intelligemment et efficacement

Application à un projet interne : Locxia

Dans le cadre de Locxia, notre plateforme de données géospatiales sur-mesure, nous proposons à nos clients l’accès à 500+ indicateurs sur l’ensemble de la France métropolitaine : bâtiments (surfaces, matériaux, consommations, besoins en rénovation), végétation, piscines, risques, météorologie, fiscalité, pollution, connaissance du territoire, etc.. L’infrastructure qui soutient ce projet doit notamment répondre à plusieurs exigences :

  • Une capacité de stockage significative

(volume variable en couche d’atterrissage + 2 To en couche de travail + 1 To en couche d’exposition ≈ 3.5 To)

  • Ponctuellement, une capacité de traitement élevée

(dans le cas de l’intégration d’un nouveau jeu de données, d’un calcul d’indicateurs agrégés, calculs géomatiques (analyse géographique), etc.)

Chez Ntico, notre objectif est de maîtriser une infrastructure dynamique qui répond à ces exigences tout en optimisant le coût de revient et en réduisant le gaspillage.

  • AWS IAM

Nous avons défini 2 rôles (un en lecture et un en écriture) sur les ressources taggées ‘locxia’. Le rôle d’écriture nous permet, via AWS CLI / Terraform, de créer une instance RDS en choisissant la taille allouée pour le stockage, la classe d’instance, le moteur de base de données, etc..


  • AWS CloudWatch associé à Grafana : 

Nous offre une visibilité en temps réel via le rôle de lecture sur les métriques (et les coûts !) des ressources taggées ‘locxia’. La commande correspondante est get-metric-data (permet de récupérer des données de métriques plus détaillées et flexibles que get-metric-statistics), mais il est également possible d’utiliser le mode stream vers S3. Cette combinaison nous permet de surveiller la performance du système (charge de travail du CPU, espace de stockage libre, utilisation du SWAP, opérations de lecture / d’écriture par seconde), tout en maîtrisant nos coûts et en évitant l’exploitation inutile de ressources.


  • Un orchestrateur nous permet d’orchestrer l’ensemble de ces processus : 

Il se charge notamment de :

  • transférer les métriques CloudWatch vers la base de données à un rythme spécifique défini en paramètre pour consommation par Grafana
  • créer / modifier / supprimer les instances selon les paramètres stockés dans la base
  • collecter les métriques définies par service et par tâche (le rythme de surveillance d’un bucket S3 au repos n’est pas forcément le même que celui d’un EC2 en plein travail)
  • transférer les données entre les différents services (de base à base, depuis l’extérieur vers S3, etc..)

Pour conclure : en intégrant de manière cohérente Terraform, Grafana, AWS IAM et AWS CloudWatch, nous assurons à Locxia une infrastructure automatisée, sécurisée, surveillée en temps réel et flexible. Cette approche permet à Locxia de répondre efficacement aux exigences de traitement et de stockage de données géospatiales, tout en optimisant les coûts associés et en évitant le gâchis de ressource.


Formation Data Rock Stars x SmartData - Ntico

SMARTDATA BY NTICO

Formation Data Rock Stars !


L’année se termine en beauté pour la communauté SmartData by Ntico ! 🙌

Ce mois de décembre marque la fin d’une période de formation dispensée par notre Partenaire DATAROCKSTARS dont le programme a été travaillé de façon collaborative avec nos équipes ! 🔝

L’occasion pour les membres de la communauté de travailler sur plusieurs axes au travers de sessions théoriques mais surtout de Labs de mise en situation ! 👨‍💻

Des participants actifs et impliqués 💪 des formateurs experts et engageants ✨ c’est ce qui nous permet de vous proposer des solutions innovantes dans l’accompagnement de vos projets Data !

Retrouvez l’article ICI ! 🚀


MeetUp Data Lille - SmartData

SMARTDATA

La communauté SmartData était présente au Meet Up Data Lille !


Début novembre, Ntico était présent dans le décor somptueux de la Chambre de Commerce et d’Industrie Grand Lille, accueilli par externatic et CleverConnect, dans le cadre d’un Meetup organisé par Data Lille 🚀

Une occasion parfaite pour Cloé et Florian de mettre en avant une partie des travaux de recherche réalisés pour le développement de notre solution LoCXia ! 🔝

Le sujet de la consolidation et l’analyse de données Open Source grâce au Deep Learning pour la détection de piscines 🏊 a beaucoup intéressé l’auditoire 🙌

Et non, nous n’avons pas aidé le Ministère des Impôts, Google et Capgemini dans leur recherche de détection de fraude à la déclaration des installations d’agrément de jardin 😁🏡

LoCXia, ce n’est pas que de la détection de piscines ! 👇

Nous avons plutôt une double ambition :

✅ Guider les retailers dans leurs ciblages et dans la personnalisation de leurs campagnes marketing
✅ Accompanger les collectivités dans la connaissance de leur territoire et l’aménagement de ce dernier, en termes de revégétalisation et de rénovation énergétique.


Retex Airbyte et DBT - SmartData by Ntico

SMARTDATA BY NTICO

Retex Airbyte et DBT


Il y a quelques mois, la communauté SmartData by Ntico vous présentait deux outils open source pour simplifier le transport et la transformation de vos données : Airbyte et DBT ! 🙌

Afin de vous apporter un meilleur angle de vision sur ces solutions, nous avons mis en oeuvre deux cas d’usage concrets représentant des besoins assez classiques de la gestion de données en entreprise, dont voici les premiers résultats 🚀

Découvrez l’article !

Continuez à nous suivre pour découvrir la suite 👀


Données internes x externes - SmartData by Ntico

SMARTDATA BY NTICO

SmartAnalystics : Données internes x externes


Un peu de légèreté durant ces congés bien mérités ? 🤗

Nous vous avons préparé une analyse qui croise des données externes avec les données de notre ERP. Le résultat ? Un aperçu de la distribution des congés au sein de Ntico ! 🏖️

Une note estivale qui démontre les possibilités offertes par les outils de viz du marché ! Et devinez quoi ? Nous avons concocté un exemple de tableau de bord PowerBI, rapide comme l’éclair à créer ! ⚡

La leçon à tirer de cette plongée dans les données ? 😄✅ Il y a toujours du monde chez Ntico pour répondre à vos besoins, même pendant la période estivale ! 🔝💪

DÉCOUVREZ L’ARTICLE JUSTE ICI


Présentation de Dataiku - SmartData by Ntico

SMARTDATA BY NTICO

Présentation de Dataiku !


Révolutionnez votre approche de la data avec Dataiku, la plateforme incontournable en intelligence artificielle et science des données 🚀

Découvrez comment Dataiku ouvre de nouvelles perspectives pour exploiter le plein potentiel de vos données et prendre des décisions éclairées grâce à ses fonctionnalités avancées en IA et data science 💥

Anthony, Data Analyst chez Ntico, vous explique ce qu’est Dataiku et pourquoi il peut être intéressant de se tourner vers des outils no code en data science 🤔

Découvrez son article juste ICI !

Nos experts sont à votre disposition pour analyser votre situation et comprendre vos besoins ! 🙌


Photo de la première page de l'article SmartData.

Le data lineage - SmartData by Ntico

SMARTDATA BY NTICO

Le data lineage


Le Data lineage participe à une bonne gouvernance de la donnée ! 🤝

Ce mois-ci la communauté SmartData by Ntico vous propose de découvrir pourquoi le data lineage, comment et qui le met en place ! 🚀

👉 Découvrir l’article

 

 


Photos des collaborateurs Ntico en train de suivre la formation

Formation Data Rock Star - Ntico

SMARTDATA

Formation Data Rock Star !


Ça y est, c’est fait ✅

Le premier module de 3 jours du parcours de formation Smart Data by Ntico a eu lieu, animé à distance par Marouan et suivi dans nos trois agences ! 🚀

La construction de ce parcours de 7 jours, en collaboration avec DATAROCKSTARS, vise à donner, en plus des multiples compétences déjà éprouvées, un sens et une trajectoire technologique communs à l’ensemble des collaborateurs Data Scientists et Machine Learning Engineers de Ntico.

👉 Au programme : mise en oeuvre de projets DataScience, de l’identification des différents enjeux jusqu’à la mise à l’échelle en passant par les outils uptodate, les différents algos, cas d’usage et domaines fonctionnels du Machine Learning ! 🙌