Présentation du versionnage de Managed Service pour Apache Airflow

Cette page décrit la gestion des versions Managed Service pour Apache Airflow et répertorie les différences entre les versions majeures de Managed Airflow.

Versions majeures de Managed Airflow

Managed Airflow comporte les versions majeures suivantes :

  • Managed Airflow (3e génération) : Cette version offre une configuration réseau simplifiée et masque les composants d'infrastructure, y compris le cluster et les dépendances de l'environnement, sur les autres services.

  • Managed Airflow (2e génération) : Dans cette version, le cluster de l'environnement évolue automatiquement pour répondre aux besoins en ressources.

  • Managed Airflow (ancienne génération 1) Le scaling manuel de l'environnement est activé. L'infrastructure est déployée dans vos projets et réseaux.

Comparaison des versions de Managed Airflow

Le tableau suivant répertorie les principales différences entre Managed Airflow (ancienne génération 1), Managed Airflow (génération 2) et Managed Airflow (génération 3).

Fonctionnalité Managed Airflow (ancienne génération 1) Managed Airflow (2e génération) Managed Airflow (3e génération)
Version de l'image composer-1.b.c-airflow-x.y.z composer-2.b.c-airflow-x.y.z composer-3-airflow-x.y.z-build.t
Versions d'Airflow Airflow 1.10* et Airflow 2 Airflow 2 Airflow 2, Airflow 3
Versions Python 3.8.12 3.11.8 (3.11.5 et 3.8.12 dans les versions antérieures) 3.11.8
Cluster de l'environnement Cluster Google Kubernetes Engine basé sur le routage ou VPC natif en mode standard Cluster Google Kubernetes Engine VPC natif en mode Autopilot Le cluster de l'environnement n'est pas déployé dans votre projet.
Scaling horizontal Permet d'ajuster le nombre de nœuds du cluster de l'environnement. Cela modifie le nombre de nœuds de calcul Airflow.
Peut ajuster le nombre de programmeurs Airflow.
Scaling automatique du nombre de nœuds de calcul Airflow, en fonction de la demande. Peut définir et modifier les limites supérieure et inférieure pour le nombre de nœuds de calcul.
Peut ajuster le nombre de programmeurs et de déclencheurs Airflow
Scaling automatique du nombre de nœuds de calcul Airflow, en fonction de la demande. Peut définir et modifier les limites supérieure et inférieure pour le nombre de nœuds de calcul.
Peut ajuster le nombre de programmeurs, de déclencheurs et de processeurs DAG Airflow
Scaling vertical Peut définir des types de machines pour les nœuds de cluster, le serveur Web Airflow et la base de données lors de la création d'un environnement. Peut modifier les types de machines du serveur Web et de la base de données Airflow. Peut définir et modifier la configuration des charges de travail : paramètres de processeur, de mémoire et d'espace de stockage pour les nœuds de calcul, les planificateurs et le serveur Web Airflow, ainsi que la taille de l'environnement. Peut définir et modifier la configuration des charges de travail : paramètres de processeur, de mémoire et d'espace de stockage pour les nœuds de calcul, les programmeurs, le serveur Web, les processeurs DAG et la taille de l'environnement Airflow.
Modèle tarifaire Modèle de tarification Managed Airflow (ancienne génération 1) Modèle de tarification Managed Airflow (2e génération) Modèle tarifaire Managed Airflow (3e génération)
Contrôle des accès Rôles Managed Airflow (ancienne génération 1) Rôles Managed Airflow. Utilise la fédération d'identité de charge de travail pour GKE et nécessite des autorisations supplémentaires pour le compte de l'agent de service Managed Airflow. Rôles Managed Airflow Utilise la fédération d'identité de charge de travail pour GKE. Aucune autorisation supplémentaire n'est requise.
Accès via la fédération des identités des employés Non compatible Compatible Compatible
Environnements très résilients Non compatible Compatible Compatible
Règles de conservation de la base de données Non compatible Pas encore disponible Compatible
Mise en réseau IP privée Appairages de VPC Private Service Connect Configuration réseau simplifiée. Vous pouvez passer d'une adresse IP publique à une adresse IP privée dans un environnement existant.
VPC Service Controls Compatible Compatible Compatible
Exécuteurs Airflow Exécuteur Celery Exécuteur Celery Exécuteur CeleryKubernetes
Déclencheur Airflow (opérateurs différables) Non compatible Compatible Compatible
Compte de service personnalisé pour KubernetesPodOperator Compatible Compatible Non compatible
CMEK Compatible Compatible Compatible
Contrôle des accès au serveur Web Compatible Compatible Compatible
Redémarrage du serveur Web Compatible Compatible Compatible
Plug-ins du serveur Web Compatible avec les environnements Airflow 1 avec sérialisation des DAG désactivée. Compatible Pris en charge : les plug-ins peuvent être désactivés et activés à la demande.
Plug-ins de programmation Non compatible Compatible Non compatible
Écouteurs Non compatible Compatible Écouteurs au niveau des tâches uniquement
TimeTables Intégrée uniquement Personnalisé et intégré Intégrée uniquement
Packages PyPI personnalisés du planificateur Non compatible Compatible Non compatible
Installer des plug-ins personnalisés Compatible Compatible Compatible
Opérations de maintenance Toutes les tâches peuvent être concernées. Les tâches qui prennent moins de 55 minutes à exécuter ne sont pas concernées. Les tâches qui s'exécutent en moins de 24 heures ne sont pas concernées.
Stocker des instantanés Compatible avec les versions Airflow 2.x et 1.10.15 Compatible Compatible
Charger des instantanés Non compatible Compatible Compatible
Instantanés programmés Non compatible Compatible Compatible
Bucket de l'environnement personnalisé Non compatible Compatible Compatible
Enregistrer les journaux de tâches Airflow uniquement dans Cloud Logging Non compatible Compatible Compatible
Intégration de la traçabilité des données Non compatible Compatible Compatible
Outil CLI de développement local Composer Non compatible Compatible Compatible

Comparaison des versions d'Airflow

Managed Airflow (3e génération) fournit des environnements avec Airflow 2 et Airflow 3.

Compatibilité avec les fonctionnalités Managed Airflow (3e génération)

Le tableau suivant récapitule les fonctionnalités Managed Airflow (génération 3) qui ne sont pas encore disponibles dans Airflow 3.

Fonctionnalité État Description
Mises à niveau vers Airflow 3 (instantanés) Pas encore compatible avec Airflow 3 Migration côte à côte des environnements Managed Airflow (3e génération) existants d'Airflow 2 vers Airflow 3 à l'aide d'instantanés.
Mises à niveau vers Airflow 3 (sur place) Pas encore compatible avec Airflow 3 Mises à niveau sur place des environnements Managed Airflow (3e génération) existants d'Airflow 2 vers Airflow 3 en spécifiant une version avec Airflow 3 lors d'une mise à niveau.
Compatibilité avec la fédération d'identité de personnel Pas encore compatible avec Airflow 3 Utiliser un fournisseur d'identité externe dans des environnements avec Airflow 3.

Problèmes connus dans Airflow 3

Les problèmes connus suivants ont été identifiés dans Airflow 3 :

  • Messages d'avertissement dans les journaux des charges de travail Airflow. Vous pouvez ignorer ces messages.
  • L'utilitaire airflowctl ne peut pas être facilement utilisé à partir d'environnements sans interface graphique tels que les nœuds de calcul Airflow dans Managed Airflow ou les conteneurs Docker. Il s'agit d'une limite de l'utilitaire. Pour en savoir plus sur cette limitation, consultez le problème 58230 dans le dépôt Airflow sur GitHub.

Compatibilité avec les fonctionnalités Airflow 3

Le tableau suivant répertorie les fonctionnalités d'Airflow 3 et leur compatibilité :

Fonctionnalité État
Interface utilisateur Airflow 3.0 Compatible
Gestion des versions des DAG Compatible
Remplissages (depuis l'UI Airflow) Compatible
Programmation basée sur les événements Compatible
Assets Compatible
Exécution de l'inférence et réglage des hyperparamètres Compatible
Outil de ligne de commande airflowctl Compatible
Bundles de DAG (autres que LocalDagBundle) Pas encore compatible avec Airflow 3
Edge Executor et tâches dans d'autres langages de programmation Pas encore compatible avec Airflow 3

Images Managed Service pour Apache Airflow

Pour exécuter Apache Airflow, Managed Airflow crée des images Docker qui regroupent des versions d'Airflow avec d'autres bibliothèques Python et fichiers binaires courants.

Les images Managed Airflow incluent des modifications d'Airflow propres à Managed Airflow et non adaptées au codebase Airflow en amont. Chaque image Managed Airflow contient des packages préinstallés ainsi que des modifications d'Airflow spécifiques à Managed Airflow.

Google publie régulièrement de nouvelles images Managed Airflow :

  • Dans Managed Airflow (3e génération), les images incluent de nouvelles versions des versions d'Airflow compatibles. Vous pouvez sélectionner la version et la compilation Airflow que vous souhaitez utiliser. Votre environnement bénéficie automatiquement des améliorations apportées à Managed Airflow.

  • Dans Airflow géré (2e génération) et Airflow géré (ancienne 1re génération), les images incluent des améliorations d'Airflow géré et de nouvelles versions des versions d'Airflow compatibles. Pour bénéficier des améliorations apportées à Managed Airflow, mettez à niveau votre environnement vers une version ultérieure de Managed Airflow.

Obsolescence de version et assistance

Composer 3

Google est compatible avec une version d'Airflow pendant un certain temps après sa publication :

  • 0 à 12 mois à compter de la date de disponibilité : les environnements Managed Airflow (génération 3) qui exécutent cette version d'Airflow sont compatibles.

  • 12 mois et plus à compter de la date de disponibilité : les environnements Managed Airflow (3e génération) qui exécutent ces versions ne sont plus compatibles.

    Une fois qu'une version d'Airflow n'est plus compatible, les environnements qui l'exécutent ne le sont plus non plus et sont entièrement gérés par l'utilisateur.

Les environnements fonctionnent avec les versions Airflow compatibles et non compatibles de la manière suivante :

  • Vous pouvez créer des environnements avec toutes les versions d'Airflow compatibles.

  • Vous pouvez toujours utiliser un environnement avec une version d'Airflow qui n'est plus compatible. L'environnement fonctionne toujours. Vous pouvez continuer à l'utiliser et le mettre à niveau vers une version d'Airflow compatible.

  • Dans certains cas, la seule solution disponible pour une faille de sécurité consiste à passer à une version ou à une build Airflow ultérieure.

Composer 2

Google est compatible avec les versions Managed Airflow (génération 2) pendant un certain temps après leur publication :

  • 0 à 12 mois à compter de la date de disponibilité : les environnements Managed Airflow (2e génération) qui exécutent ces versions sont compatibles.

  • 12 mois et plus à compter de la date de disponibilité : les environnements Managed Airflow (Gen 2) qui exécutent ces versions ne sont plus compatibles.

Vous pouvez utiliser les versions de Managed Airflow après la date de fin de leur période de prise en charge. Par exemple, même si votre environnement est basé sur une version de Managed Airflow qui a dépassé la période de prise en charge, l'environnement fonctionne toujours et vous pouvez continuer à l'utiliser. Dans ce cas, nous vous recommandons de mettre à niveau votre environnement vers une version compatible.

Composer 1

De nouvelles versions de Managed Airflow (ancienne génération 1) ont été publiées jusqu'à la fin du mois de mars 2023. Toutes les versions publiées d'Airflow géré (ancienne génération 1) suivent la même règle d'obsolescence des versions qu'Airflow géré (génération 2) et sont compatibles en conséquence.

Gérer les versions des schémas

Cette section décrit les schémas de version d'Airflow et Managed Airflow, ainsi que les alias de version.

Schéma de la version Airflow

Airflow suit le schéma de la gestion des versions du logiciel sémantique. Chaque version d'Airflow possède une version majeure, mineure et de correctif.

Composer 3

Dans Managed Airflow (3e génération), de nouvelles versions et compilations d'Airflow sont disponibles au fil du temps.

Votre environnement peut fonctionner avec toutes les versions et compilations Airflow précédentes, et reçoit automatiquement les mises à jour de ses composants d'infrastructure. Chaque version et build sont compatibles comme décrit dans Obsolescence et compatibilité des versions. Vous pouvez choisir de mettre à niveau votre version ou build Airflow vers une version ou un build ultérieurs.

Composer 2

Pour obtenir la liste des versions Airflow compatibles avec chaque version de Managed Airflow, consultez la liste des versions de Managed Airflow.

  • Dans chaque version, Managed Airflow (2e génération) est compatible avec deux versions mineures d'Airflow 2.

    Par exemple, Managed Airflow 2.4.0 est compatible avec Airflow 2.4.* et Airflow 2.5.*.

  • Pour chaque version mineure d'Airflow 2, Managed Airflow accepte une version de correctif.

    Par exemple, pour Airflow 2.4.*, Managed Airflow est compatible avec Airflow 2.4.3.

  • Lorsqu'une nouvelle version de correctif d'Airflow 2 est disponible dans Managed Airflow, la version correspondante comporte deux versions de correctif d'Airflow 2 pour la même version mineure d'Airflow. L'ancienne version corrective est ensuite supprimée dans l'une des prochaines versions.

    Par exemple, Managed Airflow 2.3.4 est compatible avec Airflow 2.5.1 et Airflow 2.5.3.

  • Managed Airflow peut ignorer certaines versions de correctifs Airflow entre les versions de Managed Airflow. De plus, si vous rencontrez des problèmes fonctionnels, de qualité ou de performances avec une version de correctif d'Airflow spécifique, Managed Airflow peut également ignorer cette version.

    Par exemple, Airflow 2.1.3 est ignoré et Airflow 2.1.4 est disponible.

  • Une version de Managed Airflow exécutant une révision stable d'Airflow peut inclure des mises à jour d'Airflow qui sont rétroportées d'une révision ultérieure d'Airflow.

Composer 1

La dernière version d'Airflow compatible avec Managed Airflow (ancienne génération 1) est Airflow 2.4.3.

Seul Managed Airflow (ancienne génération 1) est compatible avec Airflow 1.10.15, qui est la dernière version publiée d'Airflow 1.

Schéma de version Managed Airflow

Composer 3

Le schéma de gestion des versions d'Airflow géré (3e génération) capture les versions et les builds d'Airflow :

composer-3-airflow-x.y.z-build.t

Où :

  • composer-3 correspond à la version majeure de Managed Airflow.

  • airflow-x.y.z.build.t correspond à la version et au build d'Airflow. Chaque nouvelle version de la même version d'Airflow dans Managed Airflow (Gen 3) possède un numéro de build plus élevé. Le numéro de build est défini par Managed Airflow et non par le projet Open Source Airflow.

Composer 2

Le schéma de gestion des versions des images Managed Airflow (2e génération) capture les versions de Managed Airflow et d'Airflow :

composer-2.b.c-airflow-x.y.z

Où :

  • composer-2.b.c désigne la version mineure et le correctif des personnalisations gérées par Managed Airflow dans Managed Airflow (2e génération). En règle générale, les versions mineures d'Airflow géré correspondent à des changements importants de fonctionnalités par rapport à la version mineure précédente, par exemple lorsque l'ensemble des versions d'Airflow disponibles est modifié. Les versions de correctif sont mises à jour dans les versions ultérieures.

  • airflow-x.y.z correspond à la version d'Airflow. Elle indique la version majeure, mineure et de correctif d'Airflow utilisée dans une image Managed Airflow spécifique.

Composer 1

Le schéma de gestion des versions des images Managed Airflow (ancienne génération 1) capture les versions de Managed Airflow et d'Airflow :

composer-1.b.c-airflow-x.y.z

Où :

  • composer-1.b.c correspond à la version des personnalisations gérées par Managed Airflow.
  • airflow-x.y.z correspond à la version d'Airflow.

Alias de version

Les alias de version fonctionnent comme suit :

  • Managed Airflow résout l'alias de version au format complet lorsqu'il crée votre environnement :

    • Tous les alias de version deviennent composer-3-airflow-x.y.z-build.t dans Managed Airflow (3e génération).
    • Tous les alias de version deviennent composer-a.b.c-airflow-x.y.z dans Managed Airflow (2e génération) et Managed Airflow (ancienne 1re génération).
  • Dans Managed Airflow (3e génération), l'utilisation d'un alias de version, tel que composer-3-airflow-x.y, ne met pas automatiquement à niveau la version et le build Airflow de votre environnement. L'environnement reste sur la même version et le même build Airflow jusqu'à ce que vous le mettiez à niveau. L'environnement continue de recevoir les mises à niveau automatiques de l'infrastructure, comme d'habitude.

  • Dans Airflow géré (2e génération) et Airflow géré (ancienne 1re génération), l'utilisation d'un alias de version, tel que composer-a-airflow-x.y.z, ne permet pas de mise à niveau automatique d'un environnement. L'environnement reste sur la même version de Managed Airflow et d'Airflow jusqu'à ce que vous le mettiez à niveau.

Alias de version Managed Airflow (3e génération)

Managed Airflow (3e génération) est compatible avec les alias de version suivants :

Alias Version Airflow
composer-3-airflow-2 Dernière version et dernière compilation d'Airflow 2
composer-3-airflow-x.y Dernière version et compilation d'Airflow dans les versions majeure et mineure de x.y
composer-3-airflow-x.y.z Dernière version de compilation de la version spécifiée d'Airflow

Alias de version Managed Airflow (2e génération)

Managed Airflow (2e génération) est compatible avec les alias de version suivants :

Alias Version Managed Airflow Version Airflow
composer-2-airflow-2 Dernière version d'Airflow géré (2e génération) Dernière version d'Airflow 2
composer-2-airflow-x.y Dernière version d'Airflow géré (2e génération) Dernière version d'Airflow dans les versions majeures et mineures x.y
composer-2-airflow-x.y.z Dernière version d'Airflow géré (2e génération) Version spécifiée d'Airflow
composer-2.b.c-airflow-x.y Version spécifiée d'Airflow géré (2e génération) Dernière version d'Airflow disponible dans les versions majeure et mineure de x.y

Alias de version Managed Airflow (ancienne génération 1)

Managed Airflow (ancienne génération 1) est compatible avec les alias de version suivants :

Alias Version Managed Airflow Version Airflow
composer-1-airflow-2 Dernière version d'Airflow géré (ancienne génération 1) Dernière version d'Airflow 2
composer-1-airflow-1 Dernière version d'Airflow géré (ancienne génération 1) Dernière version d'Airflow 1
composer-1-airflow-x.y Dernière version d'Airflow géré (ancienne génération 1) Dernière version d'Airflow dans les versions majeures et mineures x.y
composer-1-airflow-x.y.z Dernière version d'Airflow géré (ancienne génération 1) Version spécifiée d'Airflow
composer-1.b.c-airflow-x.y Version spécifiée d'Airflow géré (ancienne génération 1) Dernière version d'Airflow disponible dans les versions majeure et mineure x.y.

Les alias de version suivants pointent vers Managed Airflow (3e génération). Vous pouvez toujours les utiliser, mais envisagez de passer aux alias pour votre version de Managed Airflow.

  • composer-latest-airflow-x.y est égal à composer-3-airflow-x.y.
  • composer-latest-airflow-x.y.z est égal à composer-3-airflow-x.y.z.

Arguments de version dans Google Cloud CLI

Lorsque vous créez ou mettez à niveau un environnement Managed Airflow à l'aide de Google Cloud CLI, vous pouvez spécifier les versions de Managed Airflow et d'Airflow :

Composer 3

  • L'argument --image-version spécifie la version et le build d'Airflow au format composer-3-airflow-x.y.z-build.t. Vous pouvez utiliser des alias de version, que Google Cloud CLI convertit au format complet.

  • --airflow-version spécifie la version d'Airflow dans les formats suivants :

    • Le format x.y.z correspond à la dernière version de la version d'Airflow spécifiée. Ce format est égal à l'alias de version composer-3-airflow-x.y.z.

    • Le format x.y correspond à la dernière version d'Airflow disponible dans les versions majeure et mineure x.y. Ce format est égal à l'alias de version composer-3-airflow-x.y.

    • x.y.z-build.t correspond à la version et à la compilation d'Airflow spécifiées. Ce format est équivalent à composer-3-airflow-x.y.z-build.t.

Composer 2

  • L'argument --image-version spécifie les versions de Managed Airflow (2e génération) et d'Airflow :

    • Le format composer-a.b.c-airflow-x.y.z crée un environnement avec les versions spécifiées de Managed Airflow et d'Airflow.
    • Les alias de version sont d'abord résolus au format composer-a.b.c-airflow-x.y.z, puis un environnement est créé avec les versions spécifiées d'Airflow géré (2e génération) et d'Airflow.
  • --airflow-version spécifie la version d'Airflow dans les formats suivants :

    • Le format x.y.z est destiné à la dernière version d'Airflow géré (2e génération) et à la version spécifiée d'Airflow. Ce format est identique à l'alias de version composer-2-airflow-x.y.z.

    • Le format x.y correspond à la dernière version de Managed Airflow (2e génération) et à la dernière version d'Airflow disponible dans les versions majeure et mineure x.y. Ce format est égal à l'alias de version composer-2-airflow-x.y.

Composer 1

  • L'argument --image-version spécifie les versions de Managed Airflow (ancienne génération 1) et d'Airflow :

    • Le format composer-a.b.c-airflow-x.y.z crée un environnement avec les versions spécifiées de Managed Airflow et d'Airflow.
    • Les alias de version sont d'abord résolus au format composer-a.b.c-airflow-x.y.z, puis un environnement est créé avec les versions spécifiées de Managed Airflow (ancienne génération 1) et d'Airflow.
  • --airflow-version spécifie la version d'Airflow dans les formats suivants :

    • Le format x.y.z correspond à la dernière version de Managed Airflow (ancienne génération 1) et à la version d'Airflow spécifiée. Ce format est identique à l'alias de version composer-1-airflow-x.y.z.

    • Le format x.y correspond à la dernière version de Managed Airflow (ancienne génération 1) et à la dernière version d'Airflow disponible dans les versions majeures et mineures x.y. Ce format est égal à l'alias de version composer-1-airflow-x.y.

Étapes suivantes