# Et si je construisais ma plateforme data ?

> Pourquoi et comment construire ma plateforme de données

- URL : https://blog.xreveillon.eu/fr-FR/blog/data-platform
- Date : 2025-07-23T16:00:00.000Z
- Langue : fr-FR

---

## 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.](https://edda.lu) 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 :

**Kubernetes:**

- [Kind](https://kind.sigs.k8s.io/), pour monter un cluster k8s de dév/démo
- [Helm](https://helm.sh/), pour déployer dans ce cluster des applications prépackagées
- [Helmfile](https://helmfile.readthedocs.io/en/latest/), pour stocker la configuration des releases Helm

**Infra:**

- [PostgreSQL](https://www.postgresql.org/), base de données classique et performante
- [Minio](https://www.min.io/), Stockage objet qui remplace Amazon S3 on premise
- [Cert-manager](https://cert-manager.io/) pour émettre automatiquement des certificats SSL, [Trust-manager](https://cert-manager.io/docs/trust/trust-manager/) pour distribuer automatiquement la chaîne de confiance
- [Traefik](https://traefik.io/), reverse-proxy à configuration dynamique
- Un registre d'images conteneurs, utile pour quelques outils

**Data:**

- [Airbyte](https://airbyte.com/), pour l'ingestion de données depuis des [sources disparates](https://airbyte.com/connectors), pour tester cet outil
- [Nessie](https://projectnessie.org/), pour le métastore des données Iceberg
- [Trino](https://trino.io/), pour le moteur de requêtes
- [Dagster](https://dagster.io/), pour l'orchestration de pipelines de dataset
- [OpenMetadata](https://open-metadata.org/), pour avoir un catalogue de données
- [Superset](https://superset.apache.org/), 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](https://www.imdb.com/), à l’aide de [fichiers CSV disponibles librement](https://developer.imdb.com/non-commercial-datasets/).

Le second utilisera des données structurées stockant le [statut des stations de recharge](https://data.public.lu/en/datasets/bornes-de-chargement-publiques-pour-voitures-electriques/) de véhicules électriques de la marque [Chargy](https://chargy.lu/) 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.


<figure>
  <a href="/images/blog/data-platform/data-platform-fr.drawio.svg"><img src="/images/blog/data-platform/data-platform-fr.drawio.svg" alt="Vision high-level de ma plateforme de données" /></a>
  <figcaption>Ma plateforme de données</figcaption>
</figure>


Allons-y !

**Liens vers les articles de la série:**

- 1ère partie, xref:../01-infra/index.adoc[l'Infra]
