Plan de vol pour : Pipeline de données automatisé (ADP)

Ce Propulseur a été créé et la documentation rédigée par Intelius

Les Propulseurs de l’ATIR sont des jeux structurés de ressources en nuage, documentation incluse, illustrant une technologie émergente. Offerts gratuitement, ils ont été conçus par des entreprises canadiennes d’expérience qui ont élaboré des produits ou des services au moyen de la technologie en question et ont accepté de partager leur savoir.

Prêt à décoller?

Voici ce que vous trouverez dans ce Plan de vol.

Aperçu

Qu’est-ce qu’un pipeline de données automatisé?

Comme son nom le laisse entendre, le pipeline de données automatisé (ADP) est une solution complète qui automatise l’ingestion, la transformation, le stockage et la présentation des données sur une plateforme évolutive. Dans ce Propulseur, nous vous montrerons comment combiner des outils de source ouverte pour créer un ADP. La Solution type utilise deux sortes de données pour en effectuer la démonstration :

  • les cours du marché;
  • les informations boursières.

Les principaux outils employés par le Propulseur sont Airflow et Kafka d’Apache, et MySQL. La solution est déployée sur une grappe Kubernetes d’un seul nœud, créée avec la technique décrite dans le Propulseur de l’ATIR intitulé « Automatisation de l’orchestration en nuage avec Kubernetes ».

Quelle est son utilité pour l’entreprise?

Voici ce qu’autorise cette solution.

  • Elle automatise l’ingestion, le traitement, le stockage et la présentation des données.
  • La licence d’exploitation ne coûte rien, car les outils du Propulseur viennent tous d’une source ouverte.
  • Elle n’est pas assujettie à un nuage, donc on peut l’utiliser sur diverses plateformes d’infonuagique.
  • Elle met en place une application dont l’architecture repose sur des microservices réunis de façon lâche, chaque service pouvant être déployé, maintenu et testé indépendamment les uns des autres.
  • Elle s’adapte à différents modèles d’entreprise.

L’avantage du Propulseur est qu’il permet de choisir et d’intégrer un éventail d’outils de source ouverte afin d’obtenir une solution complète, fiable, adaptable et évolutive pour gérer des données en temps réel, ou presque.

Pourquoi choisir cette technologie et pas une autre?

Le plus souvent, une organisation embauchera des architectes (spécialisés dans les données ou les entreprises) pour concevoir et développer une telle architecture, puis confiera l’élaboration des services requis à une équipe de développement. Actuellement, créer le cadre d’un ADP prendra plusieurs mois et coûtera des milliers de dollars quand on part de zéro.

La Solution type du Propulseur adopte une approche générale qui convient à la plupart des projets courants de gestion des données. Elle aidera l’entreprise à démarrer rapidement, car elle disposera d’un point de départ et pourra modifier la solution en fonction de ses propres besoins.

Les outils de la Solution type peuvent être téléchargés gratuitement et d’autres Propulseurs en utilisent la majorité. Ce Propulseur permet de sélectionner et d’intégrer ces mêmes outils pour aboutir à une solution complète fiable, adaptable et évolutive qui autorise la gestion des données en temps réel, ou quasi réel.

Pratiques exemplaires

Il existe d’autres guides utiles, officiels ou pas, sur l’utilisation des autres outils de la Solution type dans un milieu de production.

  • Une seule instance du serveur MySQL a été configurée dans la Solution type. Pour les plateformes de production, nous préconisons le déploiement d’une grappe innoDB. Suivez les instructions dans la documentation officielle de MySQL.
  • Par ailleurs, pour gérer la grappe innoDB de MySQL, nous recommandons d’installer l’opérateur MySQL que vous trouverez dans le dépôt https://github.com/mysql/mysql-operator. Pour utiliser MySQL dans un milieu de production, vous pourriez aussi envisager recourir à un service géré de système de gestion de base de données en nuage comme AWS RDS ou Azure Database.
  • Enfin, la Solution type crée une grappe Kubernetes d’un seul nœud. Or, vous pourriez devoir en bâtir une de plusieurs nœuds afin de passer à un système plus important. Pour les meilleures pratiques sur la plateforme Kubernetes, lisez la partie correspondante du Plan de vol : Automatisation de l’orchestration en nuage avec Kubernetes.

Trucs et hics

Le code de la Solution type peut être adapté aux besoins de l’entreprise.

  • Le service d’ingestion peut être modifié pour ingérer les données diffusées en direct (par exemple celles émises par des dispositifs de l’Internet des objets, celles de WebSocket, etc.).
  • On peut aussi adapter le service de traitement afin qu’il inclue le code servant à épurer les données, à les convertir dans un autre schéma, à le combiner à des jeux de données de référence, à effectuer des déductions, à intégrer des colonnes de calculs, etc.
  • Le service d’analyse peut être utilisé pour bâtir des modèles simples ou complexes d’apprentissage automatique ou d’apprentissage profond. Les modèles peuvent être formés autrement avec des données ingérées à froid, puis redéployés dans le nuage. Le service de traitement convoquera le modèle sauvegardé le plus récemment en temps réel pour prédire les données ingérées à chaud, donc les résultats en temps réel.

Ressources

Documentation

La liste que voici propose des liens menant à de la documentation qui vous en apprendra davantage sur les technologies utilisées par la Solution type. (Sauf indication contraire, la documentation est en anglais.)

DocumentRésumé
Documentation officielle d’Apache sur AirflowAirflow est une plateforme permettant de créer, d’ordonnancer et de surveiller les flux de tâches par programmation. Le document explique la configuration et les principes généraux à la base d’Airflow, plus précisément les graphes orientés acycliques (GOA) et leur exécution, les tâches, leur ordonnancement et l’exécuteur Celery.
Documentation d’Apache sur les tableaux Helm d’AirflowBien que plusieurs tableaux Helm permettent l’installation d’Airflow dans une grappe Kubernetes, le Propulseur utilise le tableau Helm officiel (lien vers le code source). Lisez « Parameters References » pour la liste des paramètres qui peuvent être configurés dans le fichier values.yaml du tableau Helm.
Documentation d’Apache sur KafkaDocumentation sur l’outil de diffusion en continu et de messagerie employé par le Propulseur.
Documentation et code source du tableau Helm pour Kafka d’Apache (créé par Bitnami)Dépôt GitHub contenant le code source du tableau Helm utilisé pour installer Kafka dans le Propulseur.
Documentation sur MySQLDocumentation officielle sur MySQL, le système de gestion de base de données retenu pour le Propulseur.
Documentation sur FastAPIDocumentation sur FastAPI, cadriciel contemporain à haute performance employé pour bâtir des API sur Python. Le Propulseur utilise FastAPI pour exposer l’API prévoyant les sentiments qu’engendrent les informations boursières et l’API des services intermédiaires.
Fichier README principal du Propulseur KAT de BigBitBusFichier principal et documentation sur les outils du Propulseur Automatisation de l’orchestration en nuage avec Kubernetes. On y trouvera aussi une brève introduction aux conteneurs et des principes importants sur Kubernetes.
Documentation officielle de KubernetesUn système de reference complet et bien organisé sur les principes et la configuration de Kubernetes.

 

Tutoriels

Le tableau qui suit propose quelques tutoriels utiles offrant des conseils pratiques sur les outils et les technologies qu’utilise le Propulseur. (Sauf indication contraire, les tutoriels sont en anglais).

TutorielRésumé
Tutoriel d’Apache sur AirflowApprenez comment définir un pipeline, instancier un GOA, définir des tâches et ordonnancer les GOA
Tutoriels officiels de KubernetesApprenez les rudiments sur les grappes de Kubernetes (plateforme d’orchestration de conteneurs)
Tutoriel Docker 101Apprenez les bases de la conteneurisation et de Docker en installant le tableau de bord de Docker et en suivant les premières leçons de ce tutoriel.
Tutoriel sur FastAPI – Introduction au mode d’emploiApprenez comment élaborer et exécuter des API Rest en Python.
Introduction à Kafka d’Apache: Fonctionnement de KafkaPlusieurs brèves vidéos qui vous apprendront comment fonctionne Kafka.

 

Soutien

Intelius Analytics a publié le code source de ce Propulseur dans un projet de source ouverte sur Github. Si vous relevez un bogue ou avez des suggestions pour l’améliorer, lancez une conversation dans le dépôt Git.

Vous pouvez aussi posez vos questions sur le canal Slack de l’ATIR ou les envoyer par courriel à [email protected].

Compris? Maintenant laissez-nous vous montrer comme nous avons déployé HLF dans le nuage de l’ATIR…

Solution type: Pipeline de données automatisé (ADP)

La Solution type est idéale pour une organisation à la recherche d’un cadriciel peu coûteux qui automatisera la gestion de ses données. Elle montre comment combiner des outils de source ouverte pour créer une architecture de microservices sur une plateforme évolutive qu’on pourra adapter aux besoins de l’organisation.

Il est possible d’y arriver sans se lancer dans le périple laborieux et onéreux qui consiste à élaborer un cadriciel précis en partant de rien, en faisant appel à des architectes ou ingénieurs de données chevronnés ou en recourant aux solutions SaaS coûteuses que proposent les distributeurs et les fournisseurs de services publics d’infonuagique.

Cliquez ici pour savoir comment mettre en place la Solution type ADP.