Voici comment nous gérons pour notre équipe.
D'abord en termes de la convention d'affectation de noms, chacun de nos DAG nom de fichier correspond à la DAG Id à partir du contenu du groupe lui-même (y compris le groupe de disponibilité de la version). Ceci est utile car c'est finalement le groupe Id que vous voyez dans le flux d'Air de l'INTERFACE utilisateur afin que vous sachiez exactement lequel le fichier a été utilisé derrière chaque DAG.
Exemple pour un DAG comme ceci:
from airflow import DAG
from datetime import datetime, timedelta
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2017,12,05,23,59),
'email': ['me@mail.com'],
'email_on_failure': True
}
dag = DAG(
'my_nice_dag-v1.0.9', #update version whenever you change something
default_args=default_args,
schedule_interval="0,15,30,45 * * * *",
dagrun_timeout=timedelta(hours=24),
max_active_runs=1)
[...]
Le nom du fichier DAG serait: my_nice_dag-v1.0.9.py
- Tous nos DAG fichiers sont stockés dans un dépôt Git (entre autres choses)
- Chaque fois qu'une demande de fusion est réalisée dans notre branche master, notre Intégration Continue pipeline commence une nouvelle construction et paquets de nos DAG fichiers dans un zip (nous utilisons Atlassian Bambou, mais il y a d'autres solutions comme Jenkins, Cercle CI, Travis...)
- En Bambou, nous avons configuré un script de déploiement (shell) qui s'ouvre le paquet et place le groupe de fichiers sur le serveur de flux d'Air dans le /dags dossier.
- Nous avons l'habitude de déployer les DAGs en DEV pour les tests, puis à l'UAT et enfin PROD. Le déploiement se fait avec le clic d'un bouton en Bambou de l'INTERFACE utilisateur grâce au script shell mentionnés ci-dessus.
Avantages
- Parce que vous avez compris le groupe de disponibilité de la version dans le nom de votre fichier, la version précédente de votre DAG fichier n'est pas écrasé dans le groupe dossier de sorte que vous pouvez facilement revenir à elle
- Lorsque votre nouveau DAG fichier est chargé dans l'Air, vous pouvez le reconnaître à l'INTERFACE utilisateur grâce au numéro de version.
- Parce que votre DAG nom de fichier = DAG Id vous pouvez même améliorer le script de déploiement par l'ajout de certains flux d'Air de la ligne de commande pour basculer automatiquement SUR votre nouveau DAGs une fois qu'ils sont déployés.
- Parce que chaque version de la DAGs est historicisée dans Git, on peut toujours retour aux versions précédentes si nécessaire.