Animation échecs - Ntico

ANIMATION ÉCHECS

Animation échecs chez Ntico !


Depuis plusieurs années maintenant, nous sommes sponsors de l’Open International de Blitz ! ♟

À cette occasion, les membres de l’association Lille Métropole Chess viennent partager leurs connaissances afin d’initier les débutants, de faire progresser les amateurs, et d’aider les experts à perfectionner leur stratégie ! ✅

Une belle expérience pour nos #CollabAuTop, qui ont pris beaucoup de plaisir à jouer 😁

Un grand merci à Oriane et Augustin pour leur implication et leur expertise ! 🙌


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


Playlist Nziiiiiico

Fête de la musique - Ntico

FÊTE DE LA MUSIQUE

La fête de la musique by Ntico !


Quoi de mieux que la fête de la musique pour profiter de ce début d’été ? ☀️🎶

La musique nous réunit, favorise les échanges et le bien-être au travail 😄

👉 L’occasion pour nos #CollabsAuTop de partager leurs morceaux préférés et de créer notre playlist Nziiiiiiico 🎧

Et comme on adore partager et qu’on sait qu’elle va vous mettre de bonne humeur, voici le lien vers notre playlist : https://lnkd.in/e4jEtext 🎸🎹🪇


Devfest - Ntico

DEVFEST

Ntico a participé au Devfest !


Les 6 et 7 juin derniers, quatre collaborateurs Ntico ont eu la chance de participer au Devfest : un salon dédié aux développeurs. 😄

Ils ont pu assister à de nombreuses conférences, notamment sur l’évolution de l’API, sur l’optimisation du logiciel Typescript ou encore sur l’empreinte environnementale et la technologie. 🧑‍🏫

👉 Le récap de ces deux journées, et le retour de nos collaborateurs sont disponibles sur notre LinkedIn en cliquant sur ce lien

Une expérience riche en apprentissage, en partage et en bonne humeur ! 🚀




Assises de la Féminisation des Métiers Numériques - Ntico

PARTENARIAT LA MÊLÉE

Assises Régionales de la Féminisation des Métiers et Filières Numériques en Occitanie !


Une journée pour présenter nos métiers, partager notre expérience, nos initiatives et nos opportunités professionnelles ! 🙌

Mais aussi, et surtout, rencontrer des femmes qui souhaitent se lancer dans le domaine du numérique, échanger des idées, et se tenir informés des nombreuses initiatives régionales, pour contribuer activement à la féminisation de nos métiers ! ✅

Chez Ntico, c’est au quotidien que nous menons des actions pour améliorer la parité et l’accès à la formation des femmes dans le numérique. Car ce n’est pas une découverte… Les femmes sont encore trop peu représentées et les filles largement minoritaires dans ces filières.

Une journée riche en échanges et partage, et un pas de plus vers la parité/mixité ! 🚀


Intégrations Avril - Ntico

Intégrations Avril

Bienvenue !


On vous l’a annoncé il y a quelques semaines maintenant, Ntico Operation devient le partenaire stratégique régional exclusif de SMA Technologies !

Ntico reprend donc l’ensemble des activités SMA et… ses collaborateurs ! 🚀
Vos interlocuteurs restent les mêmes, mais ils font désormais partie des #CollabAuTop Ntico ! 🤗

L’occasion de rencontrer les équipes Ntico Operation à Lille, de passer un moment de convivialité, au bar à fléchettes Helter Skelter !

Nous leur souhaitons la bienvenue dans l’expérience humaine unique Ntico ! 👋🔝


1 job, 1 unité logique de traitement - OpCon Service Center

TIP'S

1 job = 1 unité logique de traitement


Qui dit communauté, dit partage ! 🚀

Alors, Ntico vous propose un nouveau format, dans lequel vous retrouverez :

💡 Des astuces d’experts pour exploiter pleinement les fonctionnalités d’OpCon.
🤝 Des bonnes pratiques à mettre en place pour optimiser votre utilisation de l’outil
🚫 Des erreurs courantes à éviter qui peuvent ralentir votre travail.

On commence avec « 1 job = 1 unité logique de traitement » ! ✅

📢 Partagez vos retours d’expériences en commentaire ou contactez nos experts !


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.


Intégrations à Montpellier - Ntico

INTÉGRATIONS NTICO

Bienvenue à nos nouveaux talents !


Des résolutions pour 2024… à part changer de vie pro ?! 🚀

C’est la décision de nos 4 nouveaux talents qui découvrent depuis quelques jours l’expérience humaine unique Ntico 😁 :

– Elodie & Gilles nous rejoignent en tant qu’Analyste d’Exploitation ⚙️
– Anna, en tant que Services Delivery Manager 👨‍💻
– Vincent en tant que Développeur 📲

Ils renforcent notre équipe à Montpellier et notre dynamisme pour l’année à venir ! 💪 Nous leur souhaitons la bienvenue et plein de réussite ! 🔝

Ntico recrute toujours sur profil, à Lille, Orléans et Montpellier ! 🙌