Migra entornos a Managed Airflow (3ª gen.)

Managed Airflow (3ª gen.) | Managed Airflow (2ª gen.) | Managed Airflow (1ª gen. heredada)

En esta página, se explica cómo transferir DAG, datos y configuración de tu entorno existente de Managed Airflow (2ª gen.) a Managed Airflow (3ª gen.).

Otras guías de migración

De A Método Guía
Managed Airflow (3ª gen.), Airflow 2 Managed Airflow (3ª gen.), Airflow 3 Transferencia manual en paralelo Guía de migración manual
Managed Airflow (2ª gen.) Managed Airflow (3ª gen.) En paralelo, con la secuencia de comandos de migración Guía de migración de secuencias de comandos
Managed Airflow (2ª gen.) Managed Airflow (3ª gen.) En paralelo, con instantáneas Esta guía
Managed Airflow (1ª gen. heredada), Airflow 2 Managed Airflow (3ª gen.) En paralelo, con instantáneas Guía de migración de instantáneas
Managed Airflow (1ª gen. heredada), Airflow 2 Managed Airflow (2ª gen.) En paralelo, con instantáneas Guía de migración de instantáneas
Managed Airflow (1ª gen. heredada), Airflow 2 Managed Airflow (2ª gen.) Transferencia manual en paralelo Guía de migración manual
Managed Airflow (1ª gen. heredada), Airflow 1 Managed Airflow (2ª gen.), Airflow 2 En paralelo, con instantáneas Guía de migración de instantáneas
Managed Airflow (1ª gen. heredada), Airflow 1 Managed Airflow (2ª gen.), Airflow 2 Transferencia manual en paralelo Guía de migración manual
Managed Airflow (1ª gen. heredada), Airflow 1 Managed Airflow (1ª gen. heredada), Airflow 2 Transferencia manual en paralelo Guía de migración manual

Antes de comenzar

  • En esta guía de migración, se usan instantáneas. Las instantáneas son compatibles con Managed Airflow (2ª gen.) versión 2.0.9 y versiones posteriores.

  • Managed Airflow admite la migración en paralelo de Managed Airflow (2ª gen.) a Managed Airflow (3ª gen.). No es posible actualizar de Managed Airflow (2ª gen.) a Managed Airflow (3ª gen.) en el mismo lugar.

  • Consulta la lista de diferencias entre Managed Airflow (2ª gen.) y Managed Airflow (3ª gen.). Asegúrate de que tu entorno no use funciones que aún no estén disponibles en Managed Airflow (3ª gen.).

  • El tamaño máximo de la base de datos de Airflow que admite instantáneas es de 20 GB. Si la base de datos de tu entorno ocupa más de 20 GB, reduce el tamaño de la base de datos de Airflow.

  • La cantidad total de objetos en las carpetas /dags, /plugins y /data del bucket del entorno debe ser inferior a 100,000 para crear instantáneas.

  • Si usas el mecanismo XCom para transferir archivos, asegúrate de que lo usas según los lineamientos de Airflow. La transferencia de archivos grandes o una gran cantidad de archivos con XCom afecta el rendimiento de la base de datos de Airflow y puede provocar fallas cuando se cargan instantáneas o se actualiza tu entorno. Considera usar alternativas como Cloud Storage para transferir grandes volúmenes de datos.

Asegúrate de que tus DAG sean compatibles con Managed Airflow (3ª gen.)

Para asegurarte de que tus DAG sean compatibles con Managed Airflow (3ª gen.), sigue estas sugerencias:

Pausa los DAG en tu entorno de Managed Airflow (2ª gen.)

Para evitar ejecuciones duplicadas de DAG, pausa todos los DAG en tu entorno de Managed Airflow (2ª gen.) antes de guardar su instantánea. Omite el DAG de supervisión de actividad (airflow_monitoring), que se usa para fines de supervisión y no se incluye en las instantáneas del entorno.

Puedes usar cualquiera de las siguientes opciones para pausar los DAG:

  • Pausa los DAG uno por uno en Google Cloud console:

    1. En el Google Cloud console, ve a la página Entornos.

      Ir a Entornos

    2. Selecciona un entorno para ver sus detalles.

    3. En la página Detalles del entorno, ve a la pestaña DAG.

    4. Haz clic en el nombre de un DAG.

    5. En la página Detalles del DAG, haz clic en Pausar DAG.

  • En la interfaz web de Airflow, ve a DAG y pausa todos los DAG de forma manual.

  • Usa la secuencia de comandos composer_dags para pausar todos los DAG:

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

    Reemplaza lo siguiente:

    • COMPOSER_2_ENV con el nombre de tu entorno de Managed Airflow (2ª gen.).
    • PROJECT_ID por el ID del proyecto.
    • COMPOSER_2_LOCATION por la región en la que se encuentra el entorno.

Guarda una instantánea de tu entorno de Managed Airflow (2ª gen.)

Console

Para crear una instantánea de tu entorno, haz lo siguiente:

  1. En Google Cloud console, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno de Managed Airflow (2ª gen.). Se abrirá la página Detalles del entorno.

  3. Haz clic en Crear instantánea.

  4. En el cuadro de diálogo Crear instantánea, haz clic en Enviar. En esta guía, guardarás la instantánea en el bucket del entorno de Managed Airflow (2ª gen.), pero puedes seleccionar una ubicación diferente si lo deseas. Si especificas una ubicación personalizada, las cuentas de servicio de ambos entornos deben tener permisos de lectura y escritura para la ubicación especificada.

  5. Espera hasta que Managed Airflow cree la instantánea.

  6. Una vez que se crea la instantánea, el mensaje que se muestra genera la ubicación de la instantánea. Guarda esta información para usarla más adelante cuando cargues esta instantánea en el entorno de Managed Airflow (3ª gen.).

    Por ejemplo, la ubicación de la instantánea podría verse de la siguiente manera: gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.

gcloud

  1. Para crear una instantánea de tu entorno de Managed Airflow (2ª gen.), haz lo siguiente:

    gcloud composer environments snapshots save \
      COMPOSER_2_ENV \
      --location COMPOSER_2_LOCATION
    

    Reemplaza lo siguiente:

    • COMPOSER_2_ENV con el nombre de tu entorno de Managed Airflow (2ª gen.).
    • COMPOSER_2_LOCATION con la región en la que se encuentra el entorno de Managed Airflow (2ª gen.).
    • (opcional) Puedes usar el argumento --snapshot-location para especificar una ubicación personalizada en la que se debe almacenar la instantánea del entorno.

      En esta guía, guardarás la instantánea en el bucket del entorno de Managed Airflow (2ª gen.), pero puedes seleccionar una ubicación diferente si lo deseas. Si especificas una ubicación personalizada, las cuentas de servicio de ambos entornos deben tener permisos de lectura y escritura para la ubicación especificada.

  2. Una vez que se crea la instantánea, el mensaje que se muestra genera la ubicación de la instantánea. Guarda esta información para usarla más adelante cuando cargues esta instantánea en el entorno de Managed Airflow (3ª gen.).

    Por ejemplo, la ubicación de la instantánea podría verse de la siguiente manera: gs://us-central1-example-916807e1-bucket/snapshots/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.

Crea un entorno de Managed Airflow (3ª gen.)

Para crear un entorno de Managed Airflow (3ª gen.) usando los siguientes lineamientos:

  • Puedes comenzar con la misma configuración de límites de recursos que tu entorno de Managed Airflow (2ª gen.) y, luego, ajustar y optimizar aún más la configuración.

  • En los entornos de Managed Airflow (3ª gen.), el procesador de DAG de Airflow se ejecuta como un componente de entorno independiente. Debido a que el procesador de DAG descarga el análisis de los DAG del programador, es posible que desees redistribuir los recursos asignados anteriormente a los programadores de Airflow. Puedes hacerlo más adelante después de migrar a Managed Airflow (3ª gen.) y supervisar el rendimiento del programador y del procesador de DAG.

  • Managed Airflow (3ª gen.) proporciona una configuración de red más optimizada y simplificada en comparación con Managed Airflow (2ª gen.). Es posible cambiar entre la configuración de red de IP pública y de IP privada, y adjuntar y separar redes de VPC. No necesitas especificar rangos de IP . Asegúrate de que la configuración de red de tu entorno de Managed Airflow (3ª gen.) coincida con la configuración correspondiente de Managed Airflow (2ª gen.).

  • No necesitas especificar anulaciones de configuración ni variables de entorno porque las reemplazarás más adelante cuando cargues la instantánea de tu entorno de Managed Airflow (2ª gen.).

Carga la instantánea en tu entorno de Managed Airflow (3ª gen.)

Console

Para cargar la instantánea en tu entorno de Managed Airflow (3ª gen.), haz lo siguiente:

  1. En Google Cloud console, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno de Managed Airflow (3ª gen.). Se abrirá la página Detalles del entorno.

  3. Haz clic en Cargar instantánea.

  4. En el cuadro de diálogo Cargar instantánea, haz clic en Explorar.

  5. Selecciona la carpeta con la instantánea.

    Si usas la ubicación predeterminada para esta guía, esta carpeta se encuentra en el bucket de tu entorno de Managed Airflow (2ª gen.) en la carpeta /snapshots, y su nombre es la marca de tiempo de la operación de guardado de la instantánea. La misma ubicación se mostró en el mensaje sobre la creación exitosa de la instantánea.

    Por ejemplo: us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2024-05-15T15-23-12.

  6. Haz clic en Cargar y espera hasta que Managed Airflow cargue la instantánea.

gcloud

Para cargar la instantánea de tu entorno de Managed Airflow (2ª gen.) en tu entorno de Managed Airflow (3ª gen.), haz lo siguiente:

gcloud composer environments snapshots load \
  COMPOSER_3_ENV \
  --location COMPOSER_3_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Reemplaza lo siguiente:

  • COMPOSER_3_ENV por el nombre de tu entorno de Managed Airflow (3ª gen.).
  • COMPOSER_3_LOCATION con la región en la que se encuentra el entorno de Managed Airflow (3ª gen.).
  • SNAPSHOT_PATH con el URI del bucket de tu entorno de Managed Airflow (2ª gen.), seguido de la ruta de acceso a la instantánea. La misma ubicación se mostró en el mensaje sobre la creación exitosa de la instantánea. Por ejemplo: gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2024-05-15T15-23-12.

Reanuda los DAG en el entorno de Managed Airflow (3ª gen.)

Puedes usar cualquiera de las siguientes opciones:

  • Reanuda los DAG uno por uno en Google Cloud console:

    1. En el Google Cloud console, ve a la página Entornos.

      Ir a Entornos

    2. Selecciona un entorno para ver sus detalles.

    3. En la página Detalles del entorno, ve a la pestaña DAG.

    4. Haz clic en el nombre de un DAG.

    5. En la página Detalles del DAG, haz clic en Reanudar DAG.

  • En la interfaz web de Airflow, ve a DAG y reactiva todos los DAG de forma manual uno por uno.

  • Usa la secuencia de comandos composer_dags para reanudar todos los DAG.

      python3 composer_dags.py --environment COMPOSER_3_ENV \
      --project PROJECT_ID \
      --location COMPOSER_3_LOCATION \
      --operation unpause
    

    Reemplaza lo siguiente:

    • COMPOSER_3_ENV por el nombre de tu entorno de Managed Airflow (3ª gen.).
    • PROJECT_ID por el ID del proyecto.
    • COMPOSER_3_LOCATION por la región en la que se encuentra el entorno.

Verifica si hay errores de DAG

  1. En la interfaz web de Airflow, ve a DAG y verifica si hay errores de sintaxis de DAG informados.

  2. Verifica que las ejecuciones de DAG estén programadas a la hora correcta.

  3. Espera a que se produzcan las ejecuciones de DAG en el entorno de Managed Airflow (3ª gen.) y verifica si se realizaron correctamente. Si una ejecución de DAG se realizó correctamente, no la reanudes en el entorno de Managed Airflow (2ª gen.). Si lo haces, se producirá una ejecución de DAG para la misma hora y fecha en tu entorno de Managed Airflow (2ª gen.).

  4. Si falla una ejecución de DAG específica, intenta solucionar el DAG hasta que se ejecute correctamente en Airflow administrado (3ª gen.).

Supervisa tu entorno de Managed Airflow (3ª gen.)

Después de transferir todos los DAG y la configuración al entorno de Managed Airflow (3ª gen.), supervisa si hay problemas potenciales, ejecuciones de DAG fallidas y el estado general del entorno.

Si el entorno de Managed Airflow (3ª gen.) se ejecuta sin problemas durante un período suficiente, considera borrar el entorno de Managed Airflow (2ª gen.).

¿Qué sigue?