Migrer des environnements vers Cloud Composer 3 (script de migration)

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Cette page explique comment migrer des DAG, des données et une configuration de votre environnement Cloud Composer 2 existant vers un nouvel environnement Cloud Composer 3 à l'aide du script de migration.

De À Méthode Guide
Cloud Composer 2 Cloud Composer 3 Coté à côté, à l'aide du script de migration Ce guide
Cloud Composer 2 Cloud Composer 3 Côte à côte, à l'aide d'instantanés Guide de migration des instantanés
Cloud Composer 1, Airflow 2 Cloud Composer 3 Côte à côte, à l'aide d'instantanés Guide de migration des instantanés
Cloud Composer 1, Airflow 2 Cloud Composer 2 Côte à côte, à l'aide d'instantanés Guide de migration des instantanés
Cloud Composer 1, Airflow 2 Cloud Composer 2 Transfert manuel côte à côte Guide de migration manuelle
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Côte à côte, à l'aide d'instantanés Guide de migration des instantanés
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Transfert manuel côte à côte Guide de migration manuelle
Cloud Composer 1, Airflow 1 Cloud Composer 1, Airflow 2 Transfert manuel côte à côte Guide de migration manuelle

À propos du script de migration

Le script de migration est un script Python pour les migrations côte à côte qui automatise le processus de migration de Cloud Composer 2 vers Cloud Composer 3. Il utilise des instantanés d'environnement pour transférer la configuration de l'environnement vers le nouvel environnement.

Le script effectue les actions suivantes:

  1. Obtient la configuration de l'environnement Cloud Composer 2.

  2. Crée un environnement Cloud Composer 3 dont la configuration correspond à la configuration obtenue.

    Étant donné que les environnements Cloud Composer 3 ont une architecture différente, certains paramètres peuvent être ajustés pour tenir compte des différences. Vous pouvez également ajuster la plupart des paramètres de l'environnement ultérieurement.

  3. Suspend tous les DAG de l'environnement Cloud Composer 2 un par un. Seuls les DAG qui ont été réactivés dans l'environnement Cloud Composer 2 seront réactivés plus tard.

  4. Enregistre un instantané de l'environnement Cloud Composer 2 source. L'instantané est enregistré dans l'emplacement par défaut des instantanés, le bucket de l'environnement Cloud Composer 2.

  5. Charge l'instantané dans l'environnement Cloud Composer 3.

    Le script ne vérifie pas la compatibilité des packages PyPI personnalisés, des variables d'environnement et des remplacements d'options de configuration Airflow avec l'environnement Cloud Composer 3.

    En cas de conflit, la migration échoue après la création de l'environnement Cloud Composer 3, lors du chargement de l'instantané. Dans ce cas, vous pouvez ajuster la configuration de votre environnement Cloud Composer 2 pour résoudre le conflit, ou migrer sans le script de migration et ignorer le chargement des packages PyPI personnalisés, des variables d'environnement ou des remplacements de configuration Airflow lorsque vous chargez l'instantané.

  6. Réactive les DAG dans l'environnement Cloud Composer 3. Si certains DAG étaient déjà mis en veille avant l'exécution du script, ils resteront en veille.

Le script présente les limites suivantes:

  • Le script crée toujours un environnement Cloud Composer 3. Il n'est pas possible de charger l'instantané dans un environnement Cloud Composer 3 existant. Pour ce faire, vous pouvez migrer à l'aide d'instantanés, sans utiliser le script de migration.

  • Le script ne crée un environnement Cloud Composer 3 que dans la même région et le même projet que l'environnement Cloud Composer 2.

  • Vous ne pouvez charger des instantanés que dans la même version d'Airflow ou une version ultérieure. Par exemple, vous ne pouvez pas charger un instantané d'Airflow 2.10.2 vers Airflow 2.9.3.

  • Seuls les environnements Cloud Composer 2 peuvent être migrés avec le script de migration.

Avant de commencer

  • Étant donné que le script de migration crée un environnement, puis enregistre et charge un instantané, le processus de migration peut prendre plus d'une heure.

  • Le script utilise des instantanés. Les instantanés sont acceptés

  • dans Cloud Composer 2 version 2.0.9 et versions ultérieures.

  • Votre compte nécessite un rôle IAM permettant de créer des environnements, d'enregistrer des instantanés et de les charger.

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

Migrer vers Cloud Composer 3

Cette section décrit le processus de migration à l'aide du script de migration.

Comparer Cloud Composer 2 et Cloud Composer 3

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 et que vous savez utiliser et configurer les fonctionnalités propres à Cloud Composer 3.

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.

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

Installer les dépendances du script

  • Le script nécessite Python 3.8 ou une version ultérieure.

  • Le script de migration utilise gcloud CLI et les utilitaires curl. Assurez-vous que les deux utilitaires sont installés sur votre ordinateur.

Télécharger le script

Téléchargez le script de migration (composer_migrate.py) à partir de son dépôt GitHub.

Autoriser dans gcloud CLI

Autoriser dans gcloud CLI:

gcloud auth login

Prévisualiser les paramètres du nouvel environnement

Vous pouvez prévisualiser les paramètres de l'environnement Cloud Composer 3 avant de migrer. Vous pouvez l'utiliser pour voir comment la configuration de l'environnement Cloud Composer 2 correspond à Cloud Composer 3.

Les remplacements d'options de configuration Airflow, les packages PyPI personnalisés et les variables d'environnement sont chargés à partir de l'instantané de l'environnement et ne s'affichent pas dans l'aperçu.

Développer

Exécutez la commande suivante :

python3 composer_migrate.py \
    --project PROJECT_ID \
    --location LOCATION \
    --source_environment COMPOSER_2_ENV \
    --target_environment COMPOSER_3_ENV \
    --target_airflow_version COMPOSER_3_AIRFLOW_VERSION \
    --dry_run

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet.
  • COMPOSER_2_ENV: nom de votre environnement Cloud Composer 2.
  • LOCATION: région où se trouve l'environnement Cloud Composer 2. L'environnement Cloud Composer 3 sera créé dans la même région.
  • COMPOSER_3_AIRFLOW_VERSION: version d'Airflow de l'environnement Cloud Composer 3. Cette version doit être la même ou ultérieure que celle de l'environnement Cloud Composer 2 et doit être l'une des versions disponibles dans Cloud Composer 3.

Exemple :

python3 composer_migrate.py \
    --project example-project \
    --location us-central1 \
    --source_environment example-composer-2-environment \
    --target_environment example-composer-3-environment \
    --target_airflow_version 2.10.2

Vérifier l'état de l'environnement

Assurez-vous que l'environnement Cloud Composer 2 que vous souhaitez migrer est en bon état.

Si votre environnement n'est pas sain, le processus de migration échouera après la création d'un environnement Cloud Composer 3, car il ne sera pas possible de créer un instantané.

Pour en savoir plus sur les méthodes permettant de vérifier l'état de l'environnement et de la base de données, consultez Utiliser le tableau de bord de surveillance.

Exécuter le script de migration

Exécutez la commande suivante :

python3 composer_migrate.py \
    --project PROJECT_ID \
    --location LOCATION \
    --source_environment COMPOSER_2_ENV \
    --target_environment COMPOSER_3_ENV \
    --target_airflow_version COMPOSER_3_AIRFLOW_VERSION

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet.
  • COMPOSER_2_ENV: nom de votre environnement Cloud Composer 2.
  • LOCATION: région où se trouve l'environnement Cloud Composer 2. L'environnement Cloud Composer 3 sera créé dans la même région.
  • COMPOSER_3_AIRFLOW_VERSION: version d'Airflow de l'environnement Cloud Composer 3. Cette version doit être la même ou ultérieure que celle de l'environnement Cloud Composer 2 et doit être l'une des versions disponibles dans Cloud Composer 3.

Rechercher des 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 du DAG sont planifiées aux bons horaires.

  3. 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.

  4. Si une exécution de DAG spécifique échoue, essayez de résoudre les problèmes liés au DAG jusqu'à ce qu'il s'exécute avec succès dans Cloud Composer 3.

Surveiller votre environnement Cloud Composer 3

Surveillez votre environnement Cloud Composer 3 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.

Étapes suivantes