Pourquoi ?
Pour plusieurs raisons, aussi bien professionnellement personnelles, que techniques.
-
Pour mettre en application toutes les compétences Data acquises chez Oktopus S.A., puis chez Edda Luxembourg S.A. après notre fusion.
-
Pour montrer les compétences Infra/DevOps que j’ai et que je n’ai jamais appliquées professionnellement dans une mission.
-
Pour servir de démonstration et formation sur tous les outils présentés.
Comme dit, la plateforme dans cette série d’articles sert de démonstration, avec le minimum de configuration, pour montrer qu’on peut développer sur sa machine avant de déployer sur un environnement de dev/test/qual/prod.
Un autre article, après cette série, montrera une plateforme data sécurisée, avec une gestion de droits d’accès centralisée.
Comment ?
En parlant d’outils, je vais présenter et utiliser les technos suivantes :
-
PostgreSQL, base de données classique et performante
-
Minio, Stockage objet qui remplace Amazon S3 on premise
-
Cert-manager pour émettre automatiquement des certificats SSL, Trust-manager pour distribuer automatiquement la chaîne de confiance
-
Traefik, reverse-proxy à configuration dynamique
-
Un registre d’images conteneurs, utile pour quelques outils
-
Airbyte, pour l’ingestion de données depuis des sources disparates, pour tester cet outil
-
Nessie, pour le métastore des données Iceberg
-
Trino, pour le moteur de requêtes
-
Dagster, pour l’orchestration de pipelines de dataset
-
OpenMetadata, pour avoir un catalogue de données
-
Superset, pour réaliser des dashboard
On voit ainsi que le choix s’est porté sur
-
l’utilisation de conteneurs et de cluster kubernetes, pour faciliter le déploiement et la scalabilité des applications
-
des outils open-source, ou semi open-source, pour garantir la flexibilité et l’évolutivité
-
l’utilisation de lakehouse, pour séparer le stockage et les ressources de calcul et ainsi ameliorer les performances et la scalabilité des charges de travail analytiques
Cas d’usage
Pour présenter cette plateforme, j’ai deux exercices différents de cas d’utilisations. Le premier consistera à récupérer les données de films depuis IMDb, à l’aide de fichiers CSV disponibles librement.
Le second utilisera des données structurées stockant le statut des stations de recharge de véhicules électriques de la marque Chargy au Luxembourg. Je stocke des instantanés toutes les 5 minutes depuis un an et demi. Les données Postgres que je fournis ne couvrent qu’un mois, car l’ensemble du jeu de données est trop volumineux pour être inclus dans une image Docker accessible au public.
Allons-y !
-
1ère partie, l’Infra