Descripción general del control de versiones de Managed Service para Apache Airflow

En esta página, se describe el control de versiones de Managed Service para Apache Airflow y se enumeran las diferencias entre las principales versiones de Managed Airflow.

Versiones principales de Managed Airflow

Managed Airflow tiene las siguientes versiones principales:

  • Managed Airflow (Gen 3) Esta versión tiene una configuración de red simplificada y oculta componentes de infraestructura, incluido el clúster del entorno y las dependencias del entorno en otros servicios.

  • Managed Airflow (Gen 2) En esta versión, el clúster del entorno se ajusta automáticamente para satisfacer las demandas de recursos.

  • Managed Airflow (1ª gen. heredada). Tiene escalamiento manual del entorno, y la infraestructura se implementa en tus proyectos y redes.

Comparación de las versiones de Managed Airflow

En la siguiente tabla, se enumeran las principales diferencias entre Managed Airflow (Gen 1 heredada), Managed Airflow (Gen 2) y Managed Airflow (Gen 3).

Función Managed Airflow (1ª gen. heredada) Managed Airflow (2ª gen.) Managed Airflow (3ª gen.)
Versión de la imagen composer-1.b.c-airflow-x.y.z composer-2.b.c-airflow-x.y.z composer-3-airflow-x.y.z-build.t
Versiones de Airflow Airflow 1.10.* y Airflow 2 Airflow 2 Airflow 2 y 3
Versiones de Python 3.8.12 3.11.8 (3.11.5 y 3.8.12 en versiones anteriores) 3.11.8
Clúster del entorno Clúster en modo estándar de Google en Kubernetes Engine basado en rutas o nativo de la VPC Clúster en modo Autopilot de Google Kubernetes Engine nativo de la VPC El clúster del entorno no se implementó en tu proyecto.
Escalamiento horizontal Puedes ajustar la cantidad de nodos en el clúster del entorno. Esto cambia la cantidad de trabajadores de Airflow.
Puede ajustar la cantidad de programadores de Airflow.
Escala automáticamente la cantidad de trabajadores de Airflow, según la demanda. Puede establecer y cambiar los límites superior e inferior para la cantidad de trabajadores.
Puede ajustar la cantidad de programadores y activadores de Airflow
Escala automáticamente la cantidad de trabajadores de Airflow, según la demanda. Puede establecer y cambiar los límites superior e inferior para la cantidad de trabajadores.
Puede ajustar la cantidad de programadores, activadores y procesadores de DAG de Airflow
Escalamiento vertical Puede establecer tipos de máquinas para los nodos del clúster y el servidor web y la base de datos de Airflow cuando se crea un entorno. Puede cambiar los tipos de máquina para el servidor web y la base de datos de Airflow. Puede establecer y cambiar la configuración de las cargas de trabajo: parámetros de CPU, memoria y almacenamiento para los trabajadores, los programadores, el servidor web y el tamaño del entorno de Airflow. Puede establecer y cambiar la configuración de las cargas de trabajo: parámetros de CPU, memoria y almacenamiento para los trabajadores, los programadores, el servidor web, los procesadores de DAG y el tamaño del entorno de Airflow.
Modelo de precios Modelo de precios de Managed Airflow (1ª gen. heredada) Modelo de precios de Managed Airflow (gen. 2) Modelo de precios de Managed Airflow (3ª gen.)
Control de acceso Roles de Managed Airflow (generación 1 heredada) Roles de Managed Airflow. Usa Workload Identity Federation for GKE y requiere permisos adicionales para la cuenta del agente de servicio de Managed Airflow. Roles de Managed Airflow Usa Workload Identity Federation para GKE. No se requieren permisos adicionales.
Acceso a través de la federación de identidades de personal No compatible Admitido Admitido
Entornos altamente resilientes No compatible Admitido Admitido
Política de retención de la base de datos No compatible Aún no está disponible Admitido
Herramientas de redes de IP privada Intercambio de tráfico entre VPC Private Service Connect Configuración de red simplificada. Se puede cambiar entre IP pública y privada en un entorno existente.
Controles del servicio de VPC Admitido Compatible Admitido
Ejecutores de Airflow Ejecutor de Celery Ejecutor de Celery CeleryKubernetes Executor
Activador de Airflow (operadores diferibles) No compatible Admitido Admitido
Cuenta de servicio personalizada para KubernetesPodOperator Admitido Admitido No compatible
CMEK Admitido Admitido Admitido
Controles de acceso al servidor web Admitido Admitido Admitido
Reinicia el servidor web Admitido Admitido Admitido
Complementos del servidor web Compatible con los entornos de Airflow 1 con inhabilitación de la serialización de DAG. Admitido Se admiten complementos que se pueden habilitar o inhabilitar a pedido.
Complementos del programador No compatible Admitido No compatible
Objetos de escucha No compatible Admitido Solo los objetos de escucha a nivel de la tarea
TimeTables Solo integrado Personalizados y integrados Solo integrado
Paquetes personalizados de PyPI del programador No compatible Admitido No compatible
Instalar complementos personalizados Admitido Admitido Admitido
Operaciones de mantenimiento Todas las tareas pueden verse afectadas. Las tareas que tardan menos de 55 minutos en ejecutarse no se ven afectadas. Las tareas que tardan menos de 24 horas en ejecutarse no se ven afectadas.
Almacenamiento de instantáneas Compatible con las versiones 2.x y 1.10.15 de Airflow Admitido Admitido
Cargando instantáneas No compatible Admitido Admitido
Instantáneas programadas No compatible Admitido Admitido
Bucket del entorno personalizado No compatible Admitido Admitido
Cómo guardar registros de tareas de Airflow solo en Cloud Logging No compatible Admitido Admitido
Integración del linaje de datos No compatible Admitido Admitido
Herramienta de CLI de Composer Local Development No compatible Admitido Admitido

Comparación de versiones de Airflow

Managed Airflow (3ª gen.) proporciona entornos con Airflow 2 y Airflow 3.

Compatibilidad con las funciones de Managed Airflow (3ª gen.)

En la siguiente tabla, se resumen las funciones de Managed Airflow (Gen 3) que aún no se admiten en Airflow 3.

Función Estado Descripción
Actualizaciones a Airflow 3 (instantáneas) Aún no se admite en Airflow 3 Migración paralela de entornos existentes de Managed Airflow (3ª gen.) de Airflow 2 a Airflow 3 con instantáneas.
Actualizaciones a Airflow 3 (in situ) Aún no se admite en Airflow 3 Actualizaciones in situ de entornos existentes de Managed Airflow (3ª gen.) de Airflow 2 a Airflow 3 especificando una versión con Airflow 3 durante una actualización.

Problemas conocidos en Airflow 3

Se identificaron los siguientes problemas conocidos en Airflow 3:

  • Mensajes de advertencia en los registros de las cargas de trabajo de Airflow Puedes ignorar estos mensajes.
  • La utilidad airflowctl no se puede usar fácilmente desde entornos sin encabezado, como los trabajadores de Airflow en Managed Airflow o los contenedores de Docker. Esta es una limitación de la utilidad. Para obtener más información sobre esta limitación, consulta el problema 58230 en el repositorio de Airflow en GitHub.

Compatibilidad con funciones de Airflow 3

En la siguiente tabla, se enumeran las funciones de Airflow 3 y su compatibilidad:

Función Estado
IU de Airflow 3.0 Admitido
Control de versiones de DAG Admitido
Backfills (desde la IU de Airflow) Admitido
Programación basada en eventos Admitido
Recursos Admitido
Ejecución de inferencias y ajuste de hiperparámetros Admitido
Herramienta de línea de comandos de airflowctl Admitido
Paquetes de DAG (que no sean LocalDagBundle) Aún no se admite en Airflow 3
Edge Executor y tareas en otros lenguajes de programación Aún no se admite en Airflow 3

Imágenes de Managed Service para Apache Airflow

Para ejecutar Apache Airflow, Managed Airflow compila imágenes de Docker que agrupan versiones de Airflow con otros objetos binarios comunes y bibliotecas de Python.

Las imágenes de Managed Airflow incluyen modificaciones de Airflow específicas de Managed Airflow y no son adecuadas para la base de código ascendente de Airflow. Cada imagen de Managed Airflow contiene paquetes preinstalados junto con cambios de Airflow específicos de Managed Airflow.

Google lanza de forma periódica imágenes nuevas de Managed Airflow:

  • En Managed Airflow (3ª gen.), las imágenes incluyen compilaciones nuevas de las versiones compatibles de Airflow. Puedes seleccionar una versión de Airflow y una compilación que quieras usar. Tu entorno recibe automáticamente las mejoras de Managed Airflow.

  • En Managed Airflow (Gen 2) y Managed Airflow (Legacy Gen 1), las imágenes incluyen mejoras de Managed Airflow y compilaciones nuevas de las versiones compatibles de Airflow. Para obtener mejoras en Managed Airflow, actualiza tu entorno a una versión posterior de Managed Airflow.

Baja y asistencia de la versión

Composer 3

Google admite una compilación de Airflow durante un período después de su lanzamiento:

  • Entre 0 y 12 meses desde la fecha de lanzamiento: Se admiten los entornos de Managed Airflow (gen. 3) que ejecutan esta compilación de Airflow.

  • Más de 12 meses desde la fecha de lanzamiento: Los entornos de Managed Airflow (Gen 3) que ejecutan estas versiones no son compatibles.

    Después de que una compilación de Airflow deja de ser compatible, los entornos que ejecutan esta compilación de Airflow tampoco son compatibles y son completamente administrados por el usuario.

Los entornos funcionan con compilaciones de Airflow compatibles y no compatibles de la siguiente manera:

  • Puedes crear entornos con todas las compilaciones de Airflow compatibles.

  • Aun así, puedes usar un entorno con una compilación de Airflow que ya no se admite. El entorno sigue funcionando, puedes seguir usándolo y puedes actualizarlo a una compilación de Airflow compatible.

  • En algunos casos, la única solución disponible para una vulnerabilidad de seguridad es actualizar a una versión o compilación posterior de Airflow.

Composer 2

Google admite las versiones de Managed Airflow (Gen 2) durante un período después del lanzamiento de la versión:

  • Entre 0 y 12 meses desde la fecha de lanzamiento: Se admiten los entornos de Managed Airflow (gen. 2) que ejecutan estas versiones.

  • Más de 12 meses desde la fecha de lanzamiento: Los entornos de Managed Airflow (gen. 2) que ejecutan estas versiones no son compatibles.

Puedes usar las versiones de Managed Airflow después de la fecha en que ya no sean compatibles. Por ejemplo, si tu entorno se basa en una versión de Managed Airflow que ya pasó el período de asistencia, el entorno seguirá funcionando y podrás seguir usándolo. En este caso, te recomendamos que actualices tu entorno a una versión compatible.

Composer 1

Se lanzaron nuevas versiones de Managed Airflow (Legacy Gen 1) hasta fines de marzo de 2023. Todas las versiones lanzadas de Managed Airflow (Gen 1 heredada) siguen la misma política de baja de versiones que Managed Airflow (Gen 2) y se admiten según esta.

Esquemas de versiones

En esta sección, se describen los esquemas de versiones de Airflow y Managed Airflow, y los alias de versiones.

Esquema de la versión de Airflow

Airflow sigue el esquema de control de versiones de software semántico. Cada versión de Airflow tiene una versión principal, secundaria y de parche.

Composer 3

En Managed Airflow (3ª gen.), las nuevas versiones y compilaciones de Airflow estarán disponibles a medida que pase el tiempo.

Tu entorno puede funcionar con todas las versiones y compilaciones anteriores de Airflow, y recibe actualizaciones de sus componentes de infraestructura automáticamente. Cada versión y compilación se admite según se describe en Obsolescencia y compatibilidad de versiones, y puedes optar por actualizar tu versión de Airflow a una versión o compilación posterior.

Composer 2

Para obtener una lista de las versiones de Airflow compatibles con cada versión de Managed Airflow, consulta la lista de versiones de Managed Airflow.

  • En cada versión, Managed Airflow (Gen 2) admite dos versiones secundarias de Airflow 2.

    Por ejemplo, Managed Airflow 2.4.0 admite Airflow 2.4.* y Airflow 2.5.*.

  • Para cada versión secundaria de Airflow 2, Managed Airflow admite una versión de parche.

    Por ejemplo, para Airflow 2.4.*, Managed Airflow admite Airflow 2.4.3.

  • Cuando una nueva versión de parche de Airflow 2 está disponible en Managed Airflow, la versión correspondiente tiene dos versiones de parche de Airflow 2 disponibles para la misma versión secundaria de Airflow. Luego, se quita la versión de parche anterior en una de las próximas versiones.

    Por ejemplo, Managed Airflow 2.3.4 admite Airflow 2.5.1 y Airflow 2.5.3.

  • Managed Airflow puede omit algunas versiones de parche de Airflow entre las versiones de Managed Airflow. Además, si hay problemas funcionales, de calidad o de rendimiento con una versión de parche específica de Airflow, Managed Airflow también puede omitir esta versión.

    Por ejemplo, se omite Airflow 2.1.3 y está disponible Airflow 2.1.4.

  • Una versión de Managed Airflow que ejecute una versión estable de Airflow puede incluir actualizaciones de Airflow que se transfieren desde una versión posterior de Airflow.

Composer 1

La versión más reciente de Airflow compatible con Managed Airflow (Legacy Gen 1) es Airflow 2.4.3.

Solo Managed Airflow (Legacy Gen 1) admite Airflow 1.10.15, que es la versión más reciente de Airflow 1.

Esquema de versión de Managed Airflow

Composer 3

El esquema de control de versiones de Managed Airflow (3ª gen.) captura las versiones y las compilaciones de Airflow:

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

Aquí:

  • composer-3 es la versión principal de Managed Airflow.

  • airflow-x.y.z.build.t es la versión y la compilación de Airflow. Cada próxima versión de la misma versión de Airflow en Managed Airflow (Gen 3) tiene un número de compilación más alto. El número de compilación lo define Managed Airflow y no el proyecto de código abierto de Airflow.

Composer 2

El esquema de control de versiones de imágenes de Managed Airflow (2ª gen.) captura las versiones de Managed Airflow y Airflow:

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

Aquí:

  • composer-2.b.c denota la versión secundaria y de parche de las personalizaciones administradas por Managed Airflow en Managed Airflow (2ª gen.). Como regla general, las versiones secundarias de Managed Airflow corresponden a cambios significativos en la funcionalidad en comparación con la versión secundaria anterior, como cuando se cambia el conjunto disponible de versiones de Airflow. Las versiones de parche se actualizan en versiones posteriores.

  • airflow-x.y.z es la versión de Airflow y denota la versión principal, secundaria y de parche de Airflow que se usa en una imagen específica de Managed Airflow.

Composer 1

El esquema de control de versiones de imágenes de Managed Airflow (1ª gen. heredada) captura las versiones de Managed Airflow y Airflow:

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

Aquí:

  • composer-1.b.c es la versión de las personalizaciones administradas por Managed Airflow.
  • airflow-x.y.z es la versión de Airflow.

Alias de versiones

Los alias de versiones funcionan de la siguiente manera:

  • Managed Airflow resuelve el alias de versión en el formato completo cuando crea tu entorno:

    • Todos los alias de versión se convierten en composer-3-airflow-x.y.z-build.t en Managed Airflow (3ª gen.).
    • Todos los alias de versión se convierten en composer-a.b.c-airflow-x.y.z en Managed Airflow (2ª gen.) y Managed Airflow (1ª gen. heredada).
  • En Managed Airflow (gen. 3), usar un alias de versión, como composer-3-airflow-x.y no actualiza automáticamente la versión y la compilación de Airflow de tu entorno. El entorno permanece en la misma compilación y versión de Airflow hasta que lo actualices. El entorno sigue recibiendo actualizaciones automáticas de infraestructura, como de costumbre.

  • En Managed Airflow (2ª gen.) y Managed Airflow (1ª gen. heredada), usar un alias de versión, como composer-a-airflow-x.y.z no proporciona actualizaciones automáticas para un entorno. El entorno permanece en la misma versión de Managed Airflow y Airflow hasta que lo actualizas.

Alias de versión de Managed Airflow (3ª gen.)

Managed Airflow (3ª gen.) admite los siguientes alias de versión:

Alias Versión de Airflow
composer-3-airflow-2 Última versión y compilación de Airflow 2
composer-3-airflow-x.y Última versión y compilación de Airflow dentro de las versiones principal y secundaria de x.y
composer-3-airflow-x.y.z Compilación más reciente de la versión especificada de Airflow

Alias de versión de Managed Airflow (2ª gen.)

Managed Airflow (2ª gen.) admite los siguientes alias de versión:

Alias Versión de Managed Airflow Versión de Airflow
composer-2-airflow-2 La versión más reciente de Managed Airflow (2ª gen.) La versión más reciente de Airflow 2
composer-2-airflow-x.y La versión más reciente de Managed Airflow (2ª gen.) Versión más reciente de Airflow dentro de las versiones principal y secundaria de x.y
composer-2-airflow-x.y.z La versión más reciente de Managed Airflow (2ª gen.) Versión especificada de Airflow
composer-2.b.c-airflow-x.y Versión especificada de Managed Airflow (2ª gen.) Versión más reciente de Airflow disponible en las versiones principal y secundaria de x.y

Alias de versiones de Managed Airflow (1ª gen. heredada)

Managed Airflow (1ª gen. heredada) admite los siguientes alias de versión:

Alias Versión de Managed Airflow Versión de Airflow
composer-1-airflow-2 Versión más reciente de Managed Airflow (1ª gen. heredada) La versión más reciente de Airflow 2
composer-1-airflow-1 Versión más reciente de Managed Airflow (1ª gen. heredada) La versión más reciente de Airflow 1
composer-1-airflow-x.y Versión más reciente de Managed Airflow (1ª gen. heredada) Versión más reciente de Airflow dentro de las versiones principal y secundaria de x.y
composer-1-airflow-x.y.z Versión más reciente de Managed Airflow (1ª gen. heredada) Versión especificada de Airflow
composer-1.b.c-airflow-x.y Versión especificada de Managed Airflow (1ª gen. heredada) Es la versión más reciente de Airflow disponible en las versiones principal y secundaria de x.y.

Los siguientes alias de versión apuntan a Managed Airflow (Gen 3). Aún puedes usarlos, pero considera cambiar a alias para tu versión de Managed Airflow.

  • composer-latest-airflow-x.y es igual a composer-3-airflow-x.y.
  • composer-latest-airflow-x.y.z es igual a composer-3-airflow-x.y.z.

Argumentos de versión en Google Cloud CLI

Cuando creas o actualizas un entorno de Managed Airflow con Google Cloud CLI, puedes especificar las versiones de Managed Airflow y Airflow:

Composer 3

  • El argumento --image-version especifica la versión y la compilación de Airflow en el formato composer-3-airflow-x.y.z-build.t. Puedes usar alias de versión, que Google Cloud CLI resuelve en el formato completo.

  • --airflow-version especifica la versión de Airflow en los siguientes formatos:

    • El formato x.y.z es para la compilación más reciente de la versión especificada de Airflow. Este formato equivale al alias de versión composer-3-airflow-x.y.z.

    • El formato x.y es para la compilación más reciente de Airflow disponible en las versiones principal y secundaria x.y. Este formato es igual al alias de versión composer-3-airflow-x.y.

    • x.y.z-build.t es la versión y la compilación especificadas de Airflow. Este formato es igual a composer-3-airflow-x.y.z-build.t.

Composer 2

  • El argumento --image-version especifica las versiones de Managed Airflow (Gen 2) y Airflow:

    • El formato composer-a.b.c-airflow-x.y.z crea un entorno con las versiones especificadas de Managed Airflow y Airflow.
    • Los alias de versión primero se resuelven en el formato composer-a.b.c-airflow-x.y.z y, luego, crean un entorno con las versiones especificadas de Managed Airflow (2ª gen.) y Airflow.
  • --airflow-version especifica la versión de Airflow en los siguientes formatos:

    • El formato x.y.z es para la versión más reciente de Managed Airflow (Gen 2) y la versión especificada de Airflow. Este formato equivale al alias de versión composer-2-airflow-x.y.z.

    • El formato x.y es para la versión más reciente de Managed Airflow (gen. 2) y la versión más reciente de Airflow disponible dentro de las versiones principal y secundaria de x.y. Este formato equivale al alias de versión composer-2-airflow-x.y.

Composer 1

  • El argumento --image-version especifica las versiones de Managed Airflow (Gen 1 heredada) y Airflow:

    • El formato composer-a.b.c-airflow-x.y.z crea un entorno con las versiones especificadas de Managed Airflow y Airflow.
    • Los alias de versión primero se resuelven en el formato composer-a.b.c-airflow-x.y.z y, luego, crean un entorno con las versiones especificadas de Managed Airflow (1ª gen. heredada) y Airflow.
  • --airflow-version especifica la versión de Airflow en los siguientes formatos:

    • El formato x.y.z es para la versión más reciente de Managed Airflow (Gen 1 heredada) y la versión especificada de Airflow. Este formato equivale al alias de versión composer-1-airflow-x.y.z.

    • El formato x.y es para la versión más reciente de Managed Airflow (Legacy Gen 1) y la versión más reciente de Airflow disponible en las versiones principal y secundaria de x.y. Este formato es igual al alias de versión composer-1-airflow-x.y.

¿Qué sigue?