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
airflowctlne 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-3correspond à la version majeure de Managed Airflow.airflow-x.y.z.build.tcorrespond à 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.cdé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.zcorrespond à 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.ccorrespond à la version des personnalisations gérées par Managed Airflow.airflow-x.y.zcorrespond à 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.tdans Managed Airflow (3e génération). - Tous les alias de version deviennent
composer-a.b.c-airflow-x.y.zdans Managed Airflow (2e génération) et Managed Airflow (ancienne 1re génération).
- Tous les alias de version deviennent
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.yest égal àcomposer-3-airflow-x.y.composer-latest-airflow-x.y.zest é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-versionspécifie la version et le build d'Airflow au formatcomposer-3-airflow-x.y.z-build.t. Vous pouvez utiliser des alias de version, que Google Cloud CLI convertit au format complet.--airflow-versionspécifie la version d'Airflow dans les formats suivants :Le format
x.y.zcorrespond à la dernière version de la version d'Airflow spécifiée. Ce format est égal à l'alias de versioncomposer-3-airflow-x.y.z.Le format
x.ycorrespond à la dernière version d'Airflow disponible dans les versions majeure et mineurex.y. Ce format est égal à l'alias de versioncomposer-3-airflow-x.y.x.y.z-build.tcorrespond à 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-versionspécifie les versions de Managed Airflow (2e génération) et d'Airflow :- Le format
composer-a.b.c-airflow-x.y.zcré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.
- Le format
--airflow-versionspécifie la version d'Airflow dans les formats suivants :Le format
x.y.zest 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 versioncomposer-2-airflow-x.y.z.Le format
x.ycorrespond à la dernière version de Managed Airflow (2e génération) et à la dernière version d'Airflow disponible dans les versions majeure et mineurex.y. Ce format est égal à l'alias de versioncomposer-2-airflow-x.y.
Composer 1
L'argument
--image-versionspécifie les versions de Managed Airflow (ancienne génération 1) et d'Airflow :- Le format
composer-a.b.c-airflow-x.y.zcré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.
- Le format
--airflow-versionspécifie la version d'Airflow dans les formats suivants :Le format
x.y.zcorrespond à 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 versioncomposer-1-airflow-x.y.z.Le format
x.ycorrespond à 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 mineuresx.y. Ce format est égal à l'alias de versioncomposer-1-airflow-x.y.
Étapes suivantes
- Images Managed Airflow
- Créez un environnement
- Mettre à niveau un environnement Managed Airflow existant