Migrar ambientes para o Cloud Composer 2 (do Airflow 1) usando snapshots

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Nesta página, explicamos como transferir DAGs, dados e configuração dos ambientes atuais do Cloud Composer 1, Airflow 1 para o Cloud Composer 2, Airflow 2

Este guia de migração usa o recurso Snapshots.

Outros guias de migração

De Até Método Guia
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Lado a lado, usando snapshots Guia de migração (snapshots)
Cloud Composer 1, Airflow 1 Cloud Composer 2 e Airflow 2 Lado a lado, usando snapshots Este guia (snapshots)
Cloud Composer 1, Airflow 2 Cloud Composer 2 e Airflow 2 Lado a lado, transferência manual Guia de migração manual
Cloud Composer 1 e Airflow 1 Cloud Composer 2, Airflow 2 Transferência manual lado a lado Guia de migração manual
Airflow 1 Airflow 2 Transferência manual lado a lado Guia de migração manual

Antes de começar

  • Os snapshots são compatíveis com o Cloud Composer 2 versão 2.0.9 e mais recentes. O Cloud Composer 1 é compatível com o salvamento de snapshots do ambiente na versão 1.18.5.

  • O Cloud Composer é compatível com a migração lado a lado do Cloud Composer 1 para o Cloud Composer 2. Não é possível fazer upgrade do Cloud Composer 1 para o Cloud Composer 2 no local.

  • Verifique a lista de diferenças entre o Cloud Composer 1 e Cloud Composer 2.

  • O tamanho máximo do banco de dados do Airflow compatível com snapshots é de 20 GB. Se o banco de dados do seu ambiente ocupar mais de 20 GB, reduz o tamanho do banco de dados do Airflow.

  • O número total de objetos nas pastas /dags, /plugins e /data em bucket do ambiente precisa ser menor que 100.000 para criar snapshots.

  • Se você usar o mecanismo XCom para transferir arquivos, certifique-se de usá-la de acordo com as diretrizes do Airflow. A transferência de arquivos grandes ou um grande número de arquivos usando o XCom afeta Desempenho do banco de dados do Airflow e pode causar falhas no carregamento snapshots ou o upgrade do ambiente. Considere usar alternativas como para transferir grandes volumes de dados.

  • Como o Cloud Composer 2 usa o Airflow 2, a migração inclui a troca dos seus DAGs e da configuração do ambiente para o Airflow 2. Consulte o guia de migração do Airflow 1 para o Airflow 2 para informações sobre as alterações interruptivas entre o Airflow 1 e o Airflow 2 no Cloud Composer.

  • Neste guia, você combina a migração com o Airflow 2 e a migração para o Cloud Composer 2 em um procedimento. Dessa forma, você não precisa migrar para um ambiente do Cloud Composer 1 com o Airflow 2 antes de migrar para o Cloud Composer 2.

Etapa 1: fazer upgrade para o Airflow 1.10.15

Se o ambiente usar uma versão do Airflow anterior à 1.10.15, faça o upgrade do seu ambiente para uma Versão do Cloud Composer que usa o Airflow 1.10.15 e oferece suporte a snapshots.

Etapa 2: verificar a compatibilidade com o Airflow 2

Para verificar possíveis conflitos com o Airflow 2, consulte o guia "Como fazer upgrade para o Airflow 2.0 e versões posteriores", na seção sobre como fazer upgrade dos DAGs.

Um problema comum que pode ser encontrado está relacionado a caminhos de importação incompatíveis. Para saber mais sobre como resolver esse problema de compatibilidade, no guia "Como fazer upgrade para o Airflow 2.0 e versões posteriores", consulte a seção sobre provedores de backport.

Etapa 3: verificar se os DAGs estão prontos para o Airflow 2

Antes de transferir DAGs para o ambiente do Cloud Composer 2, verifique se:

  1. Os DAGs são executados e não há mais problemas de compatibilidade.

  2. Seus DAGs usam instruções de importação corretas.

    Por exemplo, a nova instrução de importação para BigQueryCreateDataTransferOperator pode ser assim:

    from airflow.providers.google.cloud.operators.bigquery_dts \
        import BigQueryCreateDataTransferOperator
    
  3. Os DAGs estão atualizados para o Airflow 2. Essa mudança é compatível com o Airflow 1.10.14 e versões mais recentes.

Etapa 4: pausar DAGs no ambiente do Cloud Composer 1

Para evitar execuções de DAG duplicadas, pause todos os DAGs no ambiente do Cloud Composer 1 antes de salvar o snapshot.

Você pode usar qualquer uma das seguintes opções:

  • Na interface da Web do Airflow, acesse DAGs e pause todos os DAGs manualmente.

  • Use o script composer_dags para pausar todos os DAGs:

    python3 composer_dags.py --environment COMPOSER_1_ENV \
      --project PROJECT_ID \
      --location COMPOSER_1_LOCATION \
      --operation pause
    

    Substitua:

    • COMPOSER_1_ENV pelo nome do ambiente do Cloud Composer 1.
    • PROJECT_ID pelo ID do projeto;
    • COMPOSER_1_LOCATION pela região em que o ambiente está localizado;

Etapa 5: salvar o instantâneo do ambiente do Cloud Composer 1

Console

Crie um snapshot do ambiente:

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente do Cloud Composer 1. A página Detalhes do ambiente é aberta.

  3. Clique em Criar snapshot.

  4. Na caixa de diálogo Criar snapshot, clique em Enviar. Neste guia, você salva o snapshot no bucket do ambiente do Cloud Composer 1, mas pode selecionar um local diferente, se quiser.

  5. Aguarde até que o Cloud Composer crie o snapshot.

gcloud

  1. Receba o URI do bucket do ambiente do Cloud Composer 1:

    1. Execute este comando:

      gcloud composer environments describe COMPOSER_1_ENV \
          --location COMPOSER_1_LOCATION \
           --format="value(config.dagGcsPrefix)"
      

      Substitua:

      • COMPOSER_1_ENV pelo nome do Cloud Composer 1 de nuvem.
      • COMPOSER_1_LOCATION pela região em que o ambiente está localizado;
    2. Na saída, remova a pasta /dags. O resultado é o URI de do bucket do ambiente do Cloud Composer 1.

      Por exemplo, altere gs://us-central1-example-916807e1-bucket/dags para gs://us-central1-example-916807e1-bucket.

  2. Crie um instantâneo do ambiente do Cloud Composer 1:

    gcloud composer environments snapshots save \
      COMPOSER_1_ENV \
      --location COMPOSER_1_LOCATION \
      --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"
    

    Substitua:

    • COMPOSER_1_ENV pelo nome do ambiente do Cloud Composer 1.
    • COMPOSER_1_LOCATION é a região em que o ambiente do Cloud Composer 1 está localizado.
    • COMPOSER_1_SNAPSHOTS_FOLDER pelo URI do Cloud Composer 1 bucket do seu ambiente de execução. Neste guia, você salva o snapshot no bucket do ambiente do Cloud Composer 1, mas pode selecionar um local diferente, se quiser. Se você especificar um local personalizado, as contas de serviço dos dois ambientes precisarão ter permissões de leitura e gravação para o local especificado.

Etapa 6: criar um ambiente do Cloud Composer 2

Crie um ambiente do Cloud Composer 2. Você pode comece com uma predefinição de ambiente que corresponda às as demandas esperadas de recursos e depois escalonar e otimizar seu ambiente mais adiante.

Não é necessário especificar substituições de configuração e variáveis de ambiente, já que elas serão substituídas mais tarde quando você carregar o snapshot do ambiente do Cloud Composer 1.

Algumas opções de configuração do Airflow 1 usam um nome e uma seção diferentes no Airflow 2. Para saber mais, consulte Alterações de configuração.

Etapa 7: carregar o snapshot no ambiente do Cloud Composer 2

Console

Para carregar o snapshot no ambiente do Cloud Composer 2:

  1. No console do Google Cloud, acesse a página Ambientes.

    Acessar "Ambientes"

  2. Na lista de ambientes, clique no nome do seu ambiente do Cloud Composer 2. A página Detalhes do ambiente é aberta.

  3. Clique em Carregar snapshot.

  4. Na caixa de diálogo Carregar snapshot, clique em Procurar.

  5. Selecione a pasta com o snapshot. Se você usa o local padrão para deste guia, essa pasta está localizada no seu ambiente do Cloud Composer 1 bucket na pasta /snapshots, e o nome é o carimbo de data/hora do operação de salvamento do snapshot. Por exemplo, us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2022-01-05T18-59-00.

  6. Clique em Carregar e aguarde até que o Cloud Composer carregue o snapshot.

gcloud

Carregue o snapshot do seu ambiente do Cloud Composer 1 no Ambiente do Cloud Composer 2:

gcloud composer environments snapshots load \
  COMPOSER_2_ENV \
  --location COMPOSER_2_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Substitua:

  • COMPOSER_2_ENV pelo nome do ambiente do Cloud Composer 2.
  • COMPOSER_2_LOCATION é a região em que o ambiente do Cloud Composer está localizado.
  • SNAPSHOT_PATH pelo URI do Cloud Composer 1 do bucket do ambiente, seguido pelo caminho para o snapshot. Por exemplo, gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.

Etapa 8: retomar os DAGs no ambiente do Cloud Composer 2

Você pode usar uma das seguintes opções:

  • Na interface da Web do Airflow, acesse DAGs e retome a execução de todos os DAGs manualmente, um por um.

  • Use o script composer_dags para retomar todos os DAGs:

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

    Substitua:

    • COMPOSER_2_ENV pelo nome do ambiente do Cloud Composer 2.
    • PROJECT_ID pelo ID do projeto;
    • COMPOSER_2_LOCATION pela região em que o ambiente está localizado;

Etapa 9: verificar se há erros de DAG

  1. Na interface da Web do Airflow, acesse DAGs e verifique se há erros de sintaxe de DAG relatados.

  2. Verifique se as execuções do DAG estão programadas no momento certo.

  3. Aguarde até que as execuções do DAG aconteçam no ambiente do Cloud Composer 2 e verifique se foram bem-sucedidas. Se uma execução do DAG foi bem-sucedida, não a retome no ambiente do Cloud Composer 1. Se você fizer isso, uma execução do DAG para o mesmo horário e data ocorrerá no ambiente do Cloud Composer 1.

  4. Se a execução de um DAG específico falhar, tente resolver problemas do DAG até que ele é executado no Cloud Composer 2.

Etapa 10: monitorar o ambiente do Cloud Composer 2

Depois de transferir todos os DAGs e a configuração para o ambiente do Airflow 2, monitore-os em busca de possíveis problemas, execuções com falha do DAG e integridade geral do ambiente.

Se o ambiente do Cloud Composer 2 for executado sem problemas por um período suficiente, avalie a possibilidade de excluir o ambiente.

A seguir