Migrer des environnements vers Cloud Composer 2 (à partir d'Airflow 1) à l'aide d'instantanés

Cloud Composer 1 | Cloud Composer 2

Cette page explique comment transférer des DAG, des données et une configuration de vos environnements Cloud Composer 1, Airflow 1 existants vers Cloud Composer 2, Airflow 2.

Ce guide de migration utilise la fonctionnalité Instantanés, qui est l'aperçu.

Autres guides de migration

De Vers Méthode Guide
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Comparaison côte à côte avec des instantanés Guide de migration (instantanés)
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Comparaison côte à côte avec des instantanés Ce guide (instantanés)
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Transfert manuel côte à côte Guide de migration manuel
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Transfert manuel côte à côte Guide de migration manuel
Airflow 1 Airflow 2 Transfert manuel côte à côte Guide de migration manuel

Avant de commencer

  • Les instantanés sont compatibles avec Cloud Composer 2.0.9 et les versions ultérieures. Cloud Composer 1 permet d'enregistrer les instantanés d'environnement dans la version 1.18.5.

  • Cloud Composer prend en charge la migration côte à côte de Cloud Composer 1 vers Cloud Composer 2. Il n'est pas possible de passer de Cloud Composer 1 à Cloud Composer 2 en place.

  • Consultez la liste des différences entre Cloud Composer 1 et Cloud Composer 2.

  • 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 dépasse 20 Go, réduisez la taille de la base de données Airflow.

  • Comme Cloud Composer 2 utilise Airflow 2, la migration implique de basculer vos DAG et votre configuration d'environnement vers Airflow 2. Consultez le guide de migration d'Airflow 1 vers Airflow 2 pour en savoir plus sur les modifications destructives entre Airflow 1 et Airflow 2 dans Cloud Composer.

  • Dans ce guide, vous allez combiner la migration vers Airflow 2 et la migration vers Cloud Composer 2 en une seule procédure de migration. De cette manière, vous n'avez pas besoin de migrer vers un environnement Cloud Composer 1 avec Airflow 2 avant de migrer vers Cloud Composer 2.

Étape 1 : Passer à Airflow 1.10.15

Si votre environnement utilise une version Airflow antérieure à 1.10.15, mettez-le à niveau vers une version Cloud Composer qui utilise Airflow 1.10.15 et est compatible avec les instantanés.

Étape 2 : Vérifier la compatibilité avec Airflow 2

Pour vérifier les conflits potentiels avec Airflow 2, utilisez les scripts de vérification de mise à jour fournis par Airflow dans votre environnement Airflow 1.10.15 existant.

gcloud

  1. Exécutez les vérifications de mise à niveau via la commande gcloud composer environments run. Certaines vérifications de mise à niveau pertinentes pour la version Airflow 1.10.15 autonome ne sont pas pertinentes pour Cloud Composer. La commande suivante exclut ces vérifications.

    gcloud composer environments run \
        COMPOSER_1_ENV  \
        --location=COMPOSER_1_LOCATION \
        upgrade_check \
        -- --ignore VersionCheckRule --ignore LoggingConfigurationRule \
        --ignore PodTemplateFileRule --ignore SendGridEmailerMovedRule
    

    Remplacez :

    • COMPOSER_1_ENV par le nom de votre environnement Airflow 1.10.15.
    • COMPOSER_1_LOCATION par la région où se trouve l'environnement.
  2. Vérifiez le résultat de la commande. Les scripts de vérification des mises à jour signalent des problèmes potentiels de compatibilité dans les environnements existants.

  3. Apportez d'autres modifications aux DAG, comme décrit dans la section sur la mise à jour des DAG du guide de mise à niveau vers Airflow 2.0 et versions ultérieures.

Étape 3: Assurez-vous que vos DAG sont prêts pour Airflow 2

Avant de transférer des DAG vers votre environnement Cloud Composer 2, assurez-vous que:

  1. Les scripts de vérification de mise à jour de vos DAG s'exécutent correctement et il n'y a plus de problèmes de compatibilité.

  2. Vos DAG utilisent des instructions d'importation correctes.

    Par exemple, la nouvelle instruction d'importation pour BigQueryCreateDataTransferOperator peut se présenter comme suit :

    from airflow.providers.google.cloud.operators.bigquery_dts \
        import BigQueryCreateDataTransferOperator
    
  3. Vos DAG sont mis à jour pour Airflow 2. Cette modification est compatible avec Airflow 1.10.14 et versions ultérieures.

Étape 4: Mettez en veille les DAG dans votre environnement Cloud Composer 1

Pour éviter l'exécution de pods en double, mettez en veille tous les DAG de votre environnement Cloud Composer 1 avant d'enregistrer son instantané.

Vous pouvez utiliser l'une des options suivantes:

  • Dans l'interface Web Airflow, accédez aux DAG et mettez en veille manuellement tous les DAG.

  • Utilisez le script composer_dags pour suspendre tous les DAG:

    python3 composer_dags.py --environment COMPOSER_1_ENV \
      --project PROJECT_ID \
      --location COMPOSER_1_LOCATION \
      --operation pause
    

    Remplacez :

    • COMPOSER_1_ENV par le nom de votre environnement Cloud Composer 1.
    • PROJECT_ID par l'ID du projet.
    • COMPOSER_1_LOCATION par la région où se trouve l'environnement.

Étape 5: Enregistrez l'instantané de votre environnement Cloud Composer 1

Console

Créez un instantané de votre environnement:

  1. Dans Google Cloud Console, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement Cloud Composer 1. La page Environment details (Détails sur l'environnement) s'ouvre.

  3. Cliquez sur Créer un instantané.

  4. Dans la boîte de dialogue Create snapshot (Créer un instantané), cliquez sur Submit (Envoyer). Dans ce guide, vous allez enregistrer l'instantané dans le bucket de l'environnement Cloud Composer 1, mais vous pouvez sélectionner un autre emplacement si vous le souhaitez.

  5. Attendez que Cloud Composer crée l'instantané.

gcloud

  1. Obtenez votre URI de bucket Cloud Composer 1 et l'URI du bucket :

    1. Exécutez la commande suivante :

      gcloud composer environments describe COMPOSER_1_ENV \
          --location COMPOSER_1_LOCATION \
           --format="value(config.dagGcsPrefix)"
      

      Remplacez :

      • COMPOSER_1_ENV par le nom de votre environnement Cloud Composer 1.
      • COMPOSER_1_LOCATION par la région dans laquelle se trouve l'environnement.
    2. Dans le résultat, supprimez le dossier /dags. Le résultat correspond à l'URI de votre environnement Cloud Composer 1.

      Par exemple, remplacez gs://us-central1-example-916807e1-bucket/dags par gs://us-central1-example-916807e1-bucket.

  2. Créez un instantané de votre environnement Cloud Composer 1:

    gcloud beta composer environments snapshots save \
      COMPOSER_1_ENV \
      --location COMPOSER_1_LOCATION \
      -–snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"
    

    Remplacez :

    • COMPOSER_1_ENV par le nom de votre environnement Cloud Composer 1.
    • COMPOSER_1_LOCATION par la région où se trouve l'environnement Cloud Composer 1.
    • COMPOSER_1_SNAPSHOTS_FOLDER par l'URI de votre environnement Cloud Composer 1. Dans ce guide, vous enregistrez l'instantané dans le bucket de l'environnement Cloud Composer 1, 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é.

Étape 5: Créez un environnement Cloud Composer 2

Créez un environnement Cloud Composer 2. Vous pouvez vous servir d'un préréglage d'environnement adapté aux besoins attendus, puis procéder à un scaling et à un optimisation de votre environnement.

Vous n'avez pas besoin de spécifier de remplacements de configuration ni de variables d'environnement, car vous les remplacerez plus tard lors du chargement de l'instantané de votre environnement Cloud Composer 1.

Certaines options de configuration d'Airflow 1 utilisent un nom et une section différents dans Airflow 2. Pour en savoir plus, consultez la section Modifications de configuration.

Étape 6: Chargez l'instantané dans votre environnement Cloud Composer 2

Console

Pour charger l'instantané dans votre environnement Cloud Composer 2, procédez comme suit:

  1. Dans Google Cloud Console, accédez à la page Environnements.

    Accéder à la page Environnements

  2. Dans la liste des environnements, cliquez sur le nom de votre environnement Cloud Composer 2. La page Environment details (Détails sur l'environnement) s'ouvre.

  3. Cliquez sur Load snapshot (Charger l'instantané).

  4. Dans la boîte de dialogue Load snapshot (Charger l'instantané), cliquez sur Browse (Parcourir).

  5. Sélectionnez le dossier contenant l'instantané. Si vous utilisez l'emplacement par défaut pour ce guide, ce dossier se trouve dans le bucket de votre environnement Cloud Composer 1, et son nom correspond à l'horodatage de l'opération d'enregistrement de l'instantané. Par exemple, us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2022-01-05T18-59-00.

  6. Cliquez sur Load (Charger), puis attendez que Cloud Composer charge l'instantané.

gcloud

Chargez l'instantané de votre environnement Cloud Composer 1 dans votre environnement Cloud Composer 2:

gcloud beta composer environments snapshots load \
  COMPOSER_2_ENV \
  --location COMPOSER_2_LOCATION \
  -–snapshot-path "SNAPSHOT_PATH"

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.
  • SNAPSHOT_PATH par l'URI de votre bucket Cloud Composer 1, suivi du chemin d'accès à l'instantané. Par exemple, gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.

Étape 7: Réactiver les DAG dans l'environnement Cloud Composer 2

Vous pouvez utiliser l'une des options suivantes:

  • Dans l'interface Web Airflow, accédez aux DAG et réactivez manuellement les DAG un par un.

  • Utilisez le script composer_dags pour réactiver tous les DAG:

      python3 composer_dags.py --environment COMPOSER_2_ENV \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      --operation unpause
    

    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.

Étape 8: Recherchez les erreurs de DAG

  1. Dans l'interface Web Airflow, accédez aux DAG et recherchez les erreurs de syntaxe des DAG signalés.

  2. Vérifiez que les exécutions de DAG sont planifiées au bon moment.

  3. Attendez que les exécutions du DAG se produisent dans l'environnement Cloud Composer 2 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 1. Si vous le faites, un DAG s'exécutera à la même heure et à la même date dans votre environnement Cloud Composer 1.

  4. Si un DAG spécifique échoue, essayez de résoudre les problèmes liés au DAG jusqu'à ce qu'il s'exécute correctement dans Cloud Composer 2.

Étape 9 : Surveiller votre environnement Cloud Composer 2

Une fois que vous avez transféré tous les DAG et la configuration vers l'environnement Cloud Composer 2, 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 2 s'exécute sans problème pendant une période suffisante, envisagez de supprimer l'environnement Cloud Composer 1.

Étapes suivantes