đ 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 Airflowairflow-scheduler.Dockerfile
etairflow-webserver.Dockerfile
, fichier de configuration docker executer dans tous les environnementsdocker-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âorchestrateurdocker compose
(cf. docker-compose.yml)preprod
etprod
: 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
Attention Ă ajouter le paramĂštre endpoint_url pour le stockage Cellar de CleverCloud