📊 Plateforme de donnĂ©es¶

Ce projet contient l’environnement d’execution d’Airflow

Les fichiers qui concerne la plateforme data :

  • pyproject.toml dĂ©finition des dĂ©pendances dans la section [dependency-groups]

  • ./dags rĂ©pertoire dans lequels sont stockĂ©s tous les dags executĂ©s sur le cluster Airflow

  • data-platform/dags/airflow-scheduler.Dockerfile et data-platform/dags/airflow-webserver.Dockerfile, fichiers de configuration Docker exĂ©cutĂ©s dans tous les environnements

  • docker-compose.yml orchestre les conteneurs en environnement de dĂ©veloppement

  • data-platform/dags/tests rĂ©pertoire qui contient les tests des dags

Environnements¶

On distingue 3 environements:

  • development : airflow tourne localement en utilisant l’orchestrateur docker compose (cf. docker-compose.yml)

  • preprod et prod : Airflow tourne sur Scaleway

Mise à jour du scheduler et du webserver sur Scaleway¶

Airflow utilise l’offre CaaS (Container as a Service) de Scaleway, chaque environnement est dĂ©ployĂ© dans un namespace:

  • lvao-preprod

  • lvao-prod

Dans chaque environnement, 2 conteneurs sont déployés:

  • lvao-airflow-scheduler : scheduler d’airflow, orchestre et execute les dags car l’option LocalExecutor est active

  • lvao-airflow-webserver : interface d’airflow

Chaque environnement utilise sa propre base de données :

  • lvao-preprod-airflow

  • lvao-prod-airflow

et chaque environnement utilise son espace de stockage s3 :

  • lvao-preprod-airflow

  • lvao-prod-airflow

Déploiement et configuration¶

CI/CD¶

la platefome Data est déployée en preprod à chaque mise à jour de la branche main sur Github (cf. cd.yml)

Et en production Ă  chaque depot de tag de version (cf. cd_prod.yml)

De la mĂȘme maniĂšre que l’interface, cela permet de garder la cohĂ©rance entre l’application web et la plateforme data

Configuration du cluster Airflow¶

Variable d’environnement du cluster Airflow¶

Les variables d’environnement sont dĂ©ployĂ©es lors de l’exĂ©cution des recettes Terraform.

Un exemple à adapter selon l’environnement est disponible dans le fichier data-platform/dags/.env.template

Gestion des logs¶

Pour que les logs du scheduler soient stockĂ©s sur S3, les instances Scaleway sont lancĂ©s avec les variables d’environnement:

AIRFLOW__LOGGING__REMOTE_LOGGING=true
AIRFLOW__LOGGING__REMOTE_BASE_LOG_FOLDER=s3://qfdmo-airflow-logs
AIRFLOW__LOGGING__REMOTE_LOG_CONN_ID=s3logs
AIRFLOW__LOGGING__ENCRYPT_S3_LOGS=false

s3logs est une connection configurĂ© dans l’interface d’Airflow

Attention Ă  ajouter le paramĂštre endpoint_url pour le stockage S3 de Scaleway