Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Nesta página, explicamos como migrar DAGs, dados e configurações do seu ambiente atual do Cloud Composer 2 para um novo ambiente do Cloud Composer 3 usando o script de migração.
Outros guias de migração
De | Para | Método | Guia |
---|---|---|---|
Cloud Composer 2 | Cloud Composer 3 | lado a lado, usando o script de migração | Este guia |
Cloud Composer 2 | Cloud Composer 3 | Lado a lado, usando snapshots | Guia de migração de snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 3 | Lado a lado, usando snapshots | Guia de migração de snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Lado a lado, usando snapshots | Guia de migração de snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Transferência manual lado a lado | Guia de migração manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Lado a lado, usando snapshots | Guia de migração de snapshots |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Transferência manual lado a lado | Guia de migração manual |
Cloud Composer 1, Airflow 1 | Cloud Composer 1, Airflow 2 | Transferência manual lado a lado | Guia de migração manual |
Sobre o script de migração
O script de migração é um script Python para migrações lado a lado que automatiza o processo de migração do Cloud Composer 2 para o Cloud Composer 3. Ele usa snapshots do ambiente para transferir a configuração do ambiente para o novo.
O script realiza as seguintes ações:
Obtém a configuração do ambiente do Cloud Composer 2.
Cria um ambiente do Cloud Composer 3 com uma configuração que corresponde à obtida.
Como os ambientes do Cloud Composer 3 têm uma arquitetura diferente, alguns parâmetros podem ser ajustados para corresponder às diferenças. Também é possível ajustar a maioria dos parâmetros do ambiente mais tarde.
Pausa todos os DAGs no ambiente do Cloud Composer 2 um por um. Apenas os DAGs que foram retomados no ambiente do Cloud Composer 2 serão retomados mais tarde.
Salva um snapshot do ambiente de origem do Cloud Composer 2. O snapshot é salvo no local padrão para snapshots, o bucket do ambiente do Cloud Composer 2.
Carrega o snapshot para o ambiente do Cloud Composer 3.
O script não verifica a compatibilidade de pacotes PyPI personalizados, variáveis de ambiente e substituições de opções de configuração do Airflow com o ambiente do Cloud Composer 3.
Em caso de conflitos, a migração falha após a criação do ambiente do Cloud Composer 3 durante o processo de carregamento do snapshot. Nesse caso, é possível ajustar a configuração do ambiente do Cloud Composer 2 para resolver o conflito ou migrar sem o script de migração e pular o carregamento de pacotes PyPI personalizados, variáveis de ambiente ou modificações de configuração do Airflow ao carregar o snapshot.
Cancela a pausa dos DAGs no ambiente do Cloud Composer 3. Se alguns DAGs já estavam pausados antes da execução do script, eles vão permanecer pausados.
O script tem as seguintes limitações:
O script sempre cria um novo ambiente do Cloud Composer 3. Não é possível carregar o snapshot em um ambiente do Cloud Composer 3. Para fazer isso, você pode migrar usando snapshots sem usar o script de migração.
O script cria um ambiente do Cloud Composer 3 apenas na mesma região e projeto do ambiente do Cloud Composer 2.
Só é possível carregar snapshots na mesma versão ou em uma versão mais recente do Airflow. Por exemplo, não é possível carregar um snapshot do Airflow 2.10.2 para o Airflow 2.9.3.
Somente os ambientes do Cloud Composer 2 podem ser migrados com o script de migração.
Antes de começar
Como o script de migração cria um ambiente e salva e carrega um snapshot, o processo de migração pode levar mais de uma hora.
O script usa snapshots. Snapshots são aceitos
no Cloud Composer 2 versão 2.0.9 e mais recentes.
Sua conta precisa de um papel do IAM que possa criar, salvar e carregar snapshots.
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
no bucket do ambiente precisa ser menor que 100.000 para criar snapshots.Se você usar o mecanismo XCom para transferir arquivos, use-o de acordo com as diretrizes do Airflow. A transferência de arquivos grandes ou de um grande número de arquivos usando o XCom afeta a performance do banco de dados do Airflow e pode causar falhas ao carregar instantâneos ou fazer upgrade do seu ambiente. Considere usar alternativas, como o Cloud Storage, para transferir grandes volumes de dados.
Migrar para o Cloud Composer 3
Esta seção descreve o processo de migração usando o script de migração.
Confira as diferenças entre o Cloud Composer 2 e o Cloud Composer 3
Confira a lista de diferenças entre o Cloud Composer 2 e o Cloud Composer 3.
Verifique se o ambiente não usa recursos que ainda não estão disponíveis no Cloud Composer 3 e se você sabe como usar e configurar recursos específicos do Cloud Composer 3.
Verifique se os DAGs são compatíveis com o Cloud Composer 3
Para garantir que seus DAGs sejam compatíveis com o Cloud Composer 3, siga estas sugestões:
A lista de pacotes no ambiente do Cloud Composer 3 pode ser diferente da do Cloud Composer 2. Isso pode afetar a compatibilidade dos seus DAGs com o Cloud Composer 3.
No Cloud Composer 3, o cluster do ambiente está localizado no projeto do locatário. Verifique se os DAGs são compatíveis com essa mudança. Especificamente, as cargas de trabalho do
KubernetesPodOperator
agora são dimensionadas de forma independente do ambiente, e não é possível usar configurações de afinidade de pods.
Instalar as dependências do script
O script requer a versão 3.8 e mais recentes do Python.
O script de migração usa a CLI gcloud e os utilitários
curl
. Confira se os dois utilitários estão instalados no computador.
Faça o download do script
Faça o download do script de migração (composer_migrate.py
) no
repositório do GitHub.
Autorizar na CLI gcloud
Autorizar na gcloud CLI:
gcloud auth login
Visualizar os parâmetros do novo ambiente
É possível conferir uma prévia dos parâmetros do ambiente do Cloud Composer 3 antes da migração. Use isso para conferir como a configuração do ambiente do Cloud Composer 2 corresponde ao Cloud Composer 3.
As substituições de opção de configuração do Airflow, os pacotes PyPI personalizados e as variáveis de ambiente são carregados do snapshot do ambiente e não são exibidos na visualização.
Abrir
Execute este comando:
python3 composer_migrate.py \
--project PROJECT_ID \
--location LOCATION \
--source_environment COMPOSER_2_ENV \
--target_environment COMPOSER_3_ENV \
--target_airflow_version COMPOSER_3_AIRFLOW_VERSION \
--dry_run
Substitua:
PROJECT_ID
: o ID do projeto.COMPOSER_2_ENV
: o nome do seu ambiente do Cloud Composer 2.LOCATION
: a região em que o ambiente do Cloud Composer 2 está localizado. O ambiente do Cloud Composer 3 será criado na mesma região.COMPOSER_3_AIRFLOW_VERSION
: a versão do Airflow do ambiente do Cloud Composer 3. Essa versão precisa ser igual ou mais recente do que a do ambiente do Cloud Composer 2 e precisa ser uma das versões disponíveis no Cloud Composer 3.
Exemplo:
python3 composer_migrate.py \
--project example-project \
--location us-central1 \
--source_environment example-composer-2-environment \
--target_environment example-composer-3-environment \
--target_airflow_version 2.10.2
Verificar a integridade do ambiente
Verifique se o ambiente do Cloud Composer 2 que você quer migrar está saudável.
Se o ambiente não estiver em bom estado, o processo de migração vai falhar após a criação de um novo ambiente do Cloud Composer 3, porque não será possível criar um snapshot.
Consulte Usar o painel de monitoramento para mais informações sobre como verificar a integridade do ambiente e do banco de dados.
Executar o script de migração
Execute este comando:
python3 composer_migrate.py \
--project PROJECT_ID \
--location LOCATION \
--source_environment COMPOSER_2_ENV \
--target_environment COMPOSER_3_ENV \
--target_airflow_version COMPOSER_3_AIRFLOW_VERSION
Substitua:
PROJECT_ID
: o ID do projeto.COMPOSER_2_ENV
: o nome do seu ambiente do Cloud Composer 2.LOCATION
: a região em que o ambiente do Cloud Composer 2 está localizado. O ambiente do Cloud Composer 3 será criado na mesma região.COMPOSER_3_AIRFLOW_VERSION
: a versão do Airflow do ambiente do Cloud Composer 3. Essa versão precisa ser igual ou mais recente do que a do ambiente do Cloud Composer 2 e precisa ser uma das versões disponíveis no Cloud Composer 3.
Verificar se há erros do DAG
Na interface da Web do Airflow, acesse DAGs e verifique se há erros de sintaxe de DAG relatados.
Verifique se as execuções de DAG estão programadas para o horário correto.
Aguarde até que as execuções do DAG aconteçam no ambiente do Cloud Composer 3 e verifique se foram bem-sucedidas. Se uma execução do DAG foi bem-sucedida, não retome-a no ambiente do Cloud Composer 2. Se você fizer isso, uma execução do DAG para o mesmo horário e data vai acontecer no ambiente do Cloud Composer 2.
Se uma execução de DAG específica falhar, tente resolver problemas do DAG até que ele seja executado no Cloud Composer 3.
Monitorar o ambiente do Cloud Composer 3
Monitore seu ambiente do Cloud Composer 3 em busca de possíveis problemas, execuções com falha do DAG e integridade geral do ambiente.
Se o ambiente do Cloud Composer 3 for executado sem problemas por um período suficiente, avalie a possibilidade de excluir o ambiente do Cloud Composer 2.