Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Cette page explique comment transférer des DAG, des données et une configuration de votre environnement Cloud Composer 2 existant vers Cloud Composer 3.
Avant de commencer
Ce guide de migration utilise des instantanés. Les instantanés sont compatibles avec Cloud Composer 2 version 2.0.9 et ultérieure.
Cloud Composer prend en charge la migration côte à côte de Cloud Composer 2 vers Cloud Composer 3. Il n'est pas possible de passer de Cloud Composer 2 à Cloud Composer 3 en place.
Consultez la liste des différences entre Cloud Composer 2 et Cloud Composer 3. Assurez-vous que votre environnement n'utilise pas de fonctionnalités qui ne sont pas encore disponibles dans Cloud Composer 3.
La taille maximale de la base de données Airflow compatible avec les instantanés est de 20 Go. Si la base de données de votre environnement occupe plus de 20 Go, réduisez sa taille.
Pour créer des instantanés, le nombre total d'objets dans les dossiers
/dags
,/plugins
et/data
du bucket de l'environnement doit être inférieur à 100 000.Si vous utilisez le mécanisme XCom pour transférer des fichiers, assurez-vous de l'utiliser conformément aux consignes d'Airflow. Le transfert de fichiers volumineux ou d'un grand nombre de fichiers à l'aide de XCom a un impact sur les performances de la base de données Airflow et peut entraîner des échecs lors du chargement d'instantanés ou de la mise à niveau de votre environnement. Pensez à utiliser des solutions alternatives telles que Cloud Storage pour transférer de grands volumes de données.
Vérifier que vos DAG sont compatibles avec Cloud Composer 3
Assurez-vous que vos DAG sont compatibles avec Cloud Composer 3 en suivant ces suggestions:
La liste des packages dans l'environnement Cloud Composer 3 peut être différente de celle de votre environnement Cloud Composer 2. Cela peut affecter la compatibilité de vos DAG avec Cloud Composer 3.
Cloud Composer charge les remplacements de configuration, les variables d'environnement et les packages PyPI à partir de l'instantané de votre environnement Cloud Composer 2 vers Cloud Composer 3 sans les modifier ni les ajuster pour la compatibilité. Si des packages PyPI personnalisés provoquent des conflits de dépendances, vous pouvez ignorer leur installation lorsque vous chargez l'instantané.
Dans Cloud Composer 3, le cluster de l'environnement se trouve dans le projet locataire. Assurez-vous que vos DAG sont compatibles avec ce changement. Plus précisément, les charges de travail
KubernetesPodOperator
sont désormais évolutives indépendamment de votre environnement, et il n'est pas possible d'utiliser des configurations d'affinité de pod.Dans Cloud Composer 3, vous ne pouvez pas accéder directement à la base de données Airflow. Assurez-vous que vos DAG sont compatibles avec ce changement.
Suspendre des DAG dans votre environnement Cloud Composer 2
Pour éviter les exécutions de DAG en double, suspendez tous les DAG de votre environnement Cloud Composer 2 avant d'enregistrer son instantané. Ignorez le DAG de surveillance de l'activité (airflow_monitoring
). Il est utilisé à des fins de surveillance et n'est pas inclus dans les instantanés de l'environnement.
Vous pouvez utiliser l'une des options suivantes pour suspendre des DAG:
Suspendez les DAG un par un dans la console Google Cloud:
Dans la console Google Cloud, accédez à la page Environnements.
Sélectionnez un environnement pour afficher ses détails.
Sur la page Détails de l'environnement, accédez à l'onglet DAG.
Cliquez sur le nom d'un DAG.
Sur la page Détails du DAG, cliquez sur Suspendre le DAG.
Dans l'interface Web Airflow, accédez à DAG et mettez tous les DAG en pause manuellement.
Utilisez le script composer_dags pour suspendre tous les DAG:
python3 composer_dags.py --environment COMPOSER_2_ENV \ --project PROJECT_ID \ --location COMPOSER_2_LOCATION \ --operation pause
Remplacez :
COMPOSER_2_ENV
par le nom de votre environnement Cloud Composer 2.PROJECT_ID
par l'ID du projet.COMPOSER_2_LOCATION
par la région où se trouve l'environnement.
Enregistrer un instantané de votre environnement Cloud Composer 2
Console
Créez un instantané de votre environnement:
Dans la console Google Cloud, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement Cloud Composer 2. La page Détails de l'environnement s'ouvre.
Cliquez sur Create snapshot (Créer un instantané).
Dans la boîte de dialogue Créer un instantané, cliquez sur Envoyer. Dans ce guide, vous enregistrez l'instantané dans le bucket de l'environnement Cloud Composer 2, mais vous pouvez sélectionner un autre emplacement si vous le souhaitez. Si vous spécifiez un emplacement personnalisé, les comptes de service des deux environnements doivent disposer d'autorisations de lecture et d'écriture pour l'emplacement spécifié.
Attendez que Cloud Composer crée l'instantané.
Une fois l'instantané créé, le message affiché affiche l'emplacement de l'instantané. Enregistrez ces informations pour les utiliser ultérieurement lorsque vous chargerez cet instantané dans l'environnement Cloud Composer 3.
Par exemple, l'emplacement de l'instantané peut ressembler à ceci :
gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12
.
gcloud
Créez un instantané de votre environnement Cloud Composer 2:
gcloud composer environments snapshots save \ COMPOSER_2_ENV \ --location COMPOSER_2_LOCATION
Remplacez :
COMPOSER_2_ENV
par le nom de votre environnement Cloud Composer 2.COMPOSER_2_LOCATION
par la région où se trouve l'environnement Cloud Composer 2.(Facultatif) Vous pouvez utiliser l'argument
--snapshot-location
pour spécifier un emplacement personnalisé où l'instantané de l'environnement doit être stocké.Dans ce guide, vous enregistrez l'instantané dans le bucket de l'environnement Cloud Composer 2, mais vous pouvez sélectionner un autre emplacement si vous le souhaitez. Si vous spécifiez un emplacement personnalisé, les comptes de service des deux environnements doivent disposer d'autorisations de lecture et d'écriture pour l'emplacement spécifié.
Une fois l'instantané créé, le message affiché affiche l'emplacement de l'instantané. Enregistrez ces informations pour les utiliser ultérieurement lorsque vous chargerez cet instantané dans l'environnement Cloud Composer 3.
Par exemple, l'emplacement de l'instantané peut ressembler à ceci :
gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12
.
Créer un environnement Cloud Composer 3
Créez un environnement Cloud Composer 3 en suivant les consignes suivantes:
Vous pouvez commencer avec la même configuration de limites de ressources que votre environnement Cloud Composer 2, puis procéder au scaling et à l'optimisation supplémentaires de la configuration.
Dans les environnements Cloud Composer 3, le processeur DAG Airflow s'exécute en tant que composant d'environnement distinct. Étant donné que le processeur DAG décharge l'analyse des DAG du planificateur, vous pouvez redistribuer les ressources précédemment allouées aux planificateurs Airflow. Vous pourrez le faire plus tard après avoir migré vers Cloud Composer 3 et surveillé les performances du planificateur et du processeur DAG.
Cloud Composer 3 offre une configuration réseau plus simple et plus fluide que Cloud Composer 2. Vous pouvez basculer entre la configuration de réseau IP public et privé, et associer et dissocier des réseaux VPC. Vous n'avez pas besoin de spécifier de plages d'adresses IP . Assurez-vous que la configuration réseau de votre environnement Cloud Composer 3 correspond à la configuration Cloud Composer 2 correspondante.
Vous n'avez pas besoin de spécifier des remplacements de configuration et des variables d'environnement, car vous les remplacerez plus tard lorsque vous chargerez l'instantané de votre environnement Cloud Composer 2.
Charger l'instantané dans votre environnement Cloud Composer 3
Console
Pour charger l'instantané dans votre environnement Cloud Composer 3:
Dans la console Google Cloud, accédez à la page Environnements.
Dans la liste des environnements, cliquez sur le nom de votre environnement Cloud Composer 3. La page Détails de l'environnement s'ouvre.
Cliquez sur Charger un instantané.
Dans la boîte de dialogue Charger un instantané, cliquez sur Parcourir.
Sélectionnez le dossier contenant l'instantané.
Si vous utilisez l'emplacement par défaut de ce guide, ce dossier se trouve dans le bucket de votre environnement Cloud Composer 2, dans le dossier
/snapshots
. Son nom correspond au code temporel de l'opération d'enregistrement de l'instantané. Le même emplacement s'affiche dans le message indiquant que l'instantané a été créé.Exemple :
us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12
.Cliquez sur Load (Charger) et attendez que Cloud Composer charge l'instantané.
gcloud
Chargez l'instantané de votre environnement Cloud Composer 2 dans votre environnement Cloud Composer 3:
gcloud composer environments snapshots load \
COMPOSER_3_ENV \
--location COMPOSER_3_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Remplacez :
COMPOSER_3_ENV
par le nom de votre environnement Cloud Composer 3.COMPOSER_3_LOCATION
par la région où se trouve l'environnement Cloud Composer 3.SNAPSHOT_PATH
par l'URI du bucket de votre environnement Cloud Composer 2, suivi du chemin d'accès à l'instantané. Le même emplacement s'affiche dans le message indiquant que l'instantané a été créé. Exemple :gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2024-05-15T15-23-12
.
Réactiver les DAG dans l'environnement Cloud Composer 3
Vous pouvez utiliser l'une des options suivantes:
Réactivez les DAG un par un dans la console Google Cloud:
Dans la console Google Cloud, accédez à la page Environnements.
Sélectionnez un environnement pour afficher ses détails.
Sur la page Détails de l'environnement, accédez à l'onglet DAG.
Cliquez sur le nom d'un DAG.
Sur la page Détails du DAG, cliquez sur Désactiver la mise en veille du DAG.
Dans l'interface Web d'Airflow, accédez à DAG et réactivez manuellement tous les DAG un par un.
Utilisez le script composer_dags pour réactiver tous les DAG:
python3 composer_dags.py --environment COMPOSER_3_ENV \ --project PROJECT_ID \ --location COMPOSER_3_LOCATION \ --operation unpause
Remplacez :
COMPOSER_3_ENV
par le nom de votre environnement Cloud Composer 3.PROJECT_ID
par l'ID du projet.COMPOSER_3_LOCATION
par la région où se trouve l'environnement.
Rechercher des erreurs de DAG
Dans l'interface Web Airflow, accédez aux DAG et recherchez les erreurs de syntaxe des DAG signalés.
Vérifiez que les exécutions du DAG sont planifiées aux bons horaires.
Attendez que les exécutions du DAG se produisent dans l'environnement Cloud Composer 3 et vérifiez si elles ont réussi. Si l'exécution du DAG a réussi, ne la réactivez pas dans l'environnement Cloud Composer 2. Si vous le faites, un DAG s'exécutera à la même heure et à la même date dans votre environnement Cloud Composer 2.
Si une exécution de DAG spécifique échoue, essayez de résoudre les problèmes liés au DAG jusqu'à ce que le DAG s'exécute avec succès dans Cloud Composer 3.
Surveiller votre environnement Cloud Composer 3
Une fois que vous avez transféré tous les DAG et la configuration vers l'environnement Cloud Composer 3, surveillez-les pour détecter les problèmes potentiels, les exécutions de DAG ayant échoué et l'état général de l'environnement.
Si l'environnement Cloud Composer 3 s'exécute sans problème pendant une période suffisante, envisagez de supprimer l'environnement Cloud Composer 2.
Étape suivante
- Découvrez comment résoudre les problèmes liés aux DAG.
- Résoudre les problèmes de création d'environnement