📊 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 [tool.poetry.group.airflow.dependencies]

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

  • airflow-scheduler.Dockerfile et airflow-webserver.Dockerfile, fichier de configuration docker executer dans tous les environnements

  • docker-compose.yml orchestre les dockers en envronnemnt de dĂ©veloppement

  • ./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 CleverCloud

Mise à jour du scheduler et du webserver sur CleverCloud¶

Airflow tourne sur CleverCloud sur un ensemble de serveur par environnement et utilise les services suivant:

  • -airflow-webserver (instance docker): interface d’airflow

  • -airflow-scheduler (instance docker): scheduler d’airflow, fait tourner les dags car on est configurĂ© en LocalExecutor

  • -airflow-s3 : S3 pour stocker les logs et les dags

  • -airflow-postgres : base de donnĂ©es nĂ©cessaire au fonctionnelment d’airflow

Les répertoires s3 sont en cours de migration vers la plateforme Scaleway

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¶

En plus des variables d’environnement nĂ©cessaire pour configurer Airflow, les variables d’environnemnt suivantes doivent-ĂȘtre configurĂ©es sur le docker scheduler de chaque environnement dans CleverCloud.

Un exemple à adapter selon l’environnement est disponible sur le fichier .env.templates

Gestion des logs¶

Pour que les logs du scheduler soient stockĂ©s sur S3, les instances CleverCloud 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

Configuration d'une connexion Ă  Cellar (stockage s3 de clevercloud) dans Airflow

Attention Ă  ajouter le paramĂštre endpoint_url pour le stockage Cellar de CleverCloud