Plateforme de Données Souveraine & Modulaire pour PME
Une architecture "Cloud-Native" complète, conforme RGPD, déployable en Suisse (Infomaniak) ou en local.
SwissDataStack est une solution "clé en main" conçue pour répondre aux défis des PME européennes :
souveraineté des données, conformité RGPD et maîtrise des coûts.
Ce projet démontre la capacité à concevoir, déployer et orchestrer une infrastructure de données moderne sans dépendre de services managés coûteux ou de données externes fragiles.
-
Souveraineté & Conformité : Architecture conçue pour un hébergement 100% suisse (Infomaniak), garantissant que les données ne quittent jamais le territoire national (RGPD strict).
-
Autonomie de Démo (Zero-Dependency) : Intègre un générateur de données synthétiques intelligent. Plus besoin de chercher des API publiques ou de demander des extractions clients pour tester un pipeline. Vous contrôlez le volume, la fréquence et les anomalies.
-
Portabilité Totale : Développé avec Docker Compose pour fonctionner en local (coût 0 CHF pour le dev/test), le code est immédiatement transférable sur un cluster Kubernetes (KaaS) en production.
-
Qualité de Donnée Intégrée : Prépare le terrain pour des audits automatisés et des tests de qualité (dbt ready) dès l'ingestion.
La solution suit une approche modulaire standard du marché (Modern Data Stack) :
Orchestration : Apache Airflow pour planifier et surveiller les pipelines ETL/ELT.
Stockage : PostgreSQL pour la persistance des données structurées et les métadonnées Airflow.
Génération de Données : Script Python (Pandas/Faker) conteneurisé pour simuler des flux de ventes réalistes.
Visualisation : Grafana pour le monitoring technique et les tableaux de bord métier.
Infrastructure : * Développement : Docker Compose (Local). * Production : Prêt pour déploiement sur Infomaniak Public Cloud (Kubernetes/Terraform).
(Note : L'architecture inclut également des emplacements réservés pour dbt (transformation) et Metabase (BI métier) dans la structure du projet.)
SwissDataStack/
├── orchestration/airflow/ # DAGs, plugins et config Airflow
├── data_generator/ # Scripts Python de génération de données (Faker)
├── visualization/ # Dashboards Grafana exportés
├── infra/terraform/ # Code IaC pour déploiement Cloud (Infomaniak)
├── docker-compose.yml # Orchestration locale de toute la stack
└── README.md # Ce fichier
## Démarrage Rapide (Local & Gratuit)
Ce projet est conçu pour être lancé en moins de 5 minutes sur votre machine, sans frais cloud.
1. Prérequis
Docker Desktop installé et en cours d'exécution.
Git (pour cloner le projet).
2. Lancer la Stack
Ouvrez un terminal dans le dossier racine du projet et exécutez :
bash
Copier
docker-compose up --build
Le premier lancement peut prendre quelques minutes pour télécharger les images.
3. Initialiser la Base de Données (Airflow)
Ouvrez un nouveau terminal et lancez l'initialisation (nécessaire uniquement au premier démarrage) :
bash
Copier
# Initialisation de la DB Airflow
docker-compose run --rm airflow-webserver airflow db init
# Création de l'utilisateur admin (si non automatique)
docker-compose exec airflow-webserver airflow users create \
--username admin --firstname Admin --lastname User \
--role Admin --email admin@swissdatastack.local --password admin
4. Générer les Données de Démo
Pour alimenter les tableaux de bord, lancez le générateur une première fois :
bash
Copier
docker-compose up data-generator
Message attendu : "Succès : 50 lignes insérées dans 'sales_demo'."
## Accès aux Services
Une fois la stack lancée, accédez aux interfaces suivantes :
Service URL Identifiants Rôle
Airflow http://localhost:8080 admin / admin Orchestration & Pipelines
Grafana http://localhost:3000 admin / admin Visualisation & Dashboards
Postgres localhost:5432 airflow / airflow Base de données brute
Configuration Source de Données Grafana :
Host: postgres:5432
Database: airflow
User/Pass: airflow / airflow
## Déploiement en Production (Cloud Suisse)
Pour passer de ce POC local à une infrastructure de production conforme RGPD chez Infomaniak :
Rendez-vous sur le Manager Infomaniak > Public Cloud.
Utilisez le code Terraform fourni dans le dossier infra/terraform/ (en cours de finalisation pour le provider OpenStack).
Déployez le script cloud-init.yaml fourni pour configurer automatiquement les instances lors de leur création.
Basculez les variables d'environnement pour pointer vers la nouvelle infrastructure.
Cette approche garantit que le code testé localement est strictement identique à celui exécuté en production (principe "Build once, deploy anywhere").
## Cas d'Usage & Perspectives
Ce projet sert de fondation pour :
Audit de Qualité : Intégration future de tests dbt pour détecter automatiquement les anomalies (doublons, nulls) dans les données générées.
Reporting Automatisé : Extension des DAGs Airflow pour exporter des rapports PDF hebdomadaires.
Connecteurs Réels : Remplacement du générateur synthétique par des connecteurs vers des ERP ou CRM réels (SAP, Salesforce, etc.).
## Auteur
Philippe Kirstetter-Fender
Data Engineer
Basé en France (Ouvert aux opportunités internationales)
Projet réalisé dans une optique de montée en compétence sur les architectures Cloud-Native, l'orchestration de données et la conformité européenne.