Nesta página, descrevemos o controle de versões do Serviço Gerenciado para Apache Airflow e listamos as diferenças entre as principais versões do Airflow Gerenciado.
Versões principais do Airflow Gerenciado
O Airflow Gerenciado tem as seguintes versões principais:
Airflow gerenciado (Geração 3). Essa versão tem uma configuração de rede simplificada e oculta componentes de infraestrutura, incluindo o cluster do ambiente e as dependências dele em relação a outros serviços.
Airflow gerenciado (Geração 2). Nesta versão, o cluster do ambiente é escalonado automaticamente para atender às demandas de recursos.
Airflow Gerenciado (geração 1 legada). Tem dimensionamento manual do ambiente, e a infraestrutura é implantada nos seus projetos e redes.
Comparação entre versões do Airflow Gerenciado
A tabela a seguir lista as principais diferenças entre o Airflow gerenciado (Geração 1 legada), o Airflow gerenciado (Geração 2) e o Airflow gerenciado (Geração 3).
| Recurso | Airflow gerenciado (Geração 1 legada) | Airflow Gerenciado (Geração 2) | Airflow gerenciado (Geração 3) |
|---|---|---|---|
| Versão de imagem | composer-1.b.c-airflow-x.y.z |
composer-2.b.c-airflow-x.y.z |
composer-3-airflow-x.y.z-build.t |
| Versões do Airflow | Airflow 1.10.* e Airflow 2 | Airflow 2 | Airflow 2, Airflow 3 |
| Versões do Python | 3.8.12 | 3.11.8 (3.11.5 e 3.8.12 em versões anteriores) | 3.11.8 |
| Cluster do ambiente | Cluster do Google Kubernetes Engine baseado em rotas ou nativo de VPC do modo padrão | Cluster do Google Kubernetes Engine nativo de VPC do modo Autopilot | O cluster do ambiente não é implantado no seu projeto. |
| Escalonamento horizontal | Pode ajustar o número de nós no cluster do ambiente. Isso muda o número de workers do Airflow. Pode ajustar o número de programadores do Airflow. |
Escalonamento automático do número de workers no Airflow, conforme a demanda. Pode definir e alterar os limites superior e inferior para o número de workers. Pode ajustar o número de programadores e acionadores do Airflow |
Escalonamento automático do número de workers no Airflow, conforme a demanda. Pode definir e alterar os limites superior e inferior para o número de workers. Pode ajustar o número de programadores, acionadores e processadores de DAGs do Airflow |
| Escalonamento vertical | Pode definir tipos de máquina para nós de cluster, servidor da Web do Airflow e banco de dados ao criar um ambiente. Pode mudar os tipos de máquina para o servidor da Web e o banco de dados do Airflow. | Pode definir e alterar a configuração das cargas de trabalho: parâmetros de CPU, memória e armazenamento para workers, programadores, servidor da Web e tamanho do ambiente do Airflow. | Pode definir e alterar a configuração das cargas de trabalho: parâmetros de CPU, memória e armazenamento para workers, programadores, servidor da Web, processadores de DAG e tamanho do ambiente do Airflow. |
| Modelo de preços | Modelo de preços do Airflow Gerenciado (Geração 1 legada) | Modelo de preços do Airflow gerenciado (Geração 2) | Modelo de preços do Airflow gerenciado (Geração 3) |
| Controle de acesso | Funções do Airflow gerenciado (Geração 1 legada) | Funções do Airflow Gerenciado. Usa a Federação de Identidade da Carga de Trabalho para GKE e exige outras permissões para a conta do agente de serviço do Airflow Gerenciado. | Funções do Airflow Gerenciado. Usa a Federação de Identidade da Carga de Trabalho para GKE. Não são necessárias permissões extras |
| Acesso pela federação de identidade de colaboradores | Sem suporte | Compatível | Compatível |
| Ambientes altamente resilientes | Sem suporte | Compatível | Compatível |
| Política de retenção de banco de dados | Sem suporte | Ainda não disponível | Compatível |
| Rede IP privada | Peerings de VPC | Private Service Connect | Configuração de rede simplificada. Pode ser alterado entre IP público e privado em um ambiente atual. |
| VPC Service Controls | Com suporte | Compatível | Com suporte |
| Executores do Airflow | Celery Executor | Celery Executor | CeleryKubernetes Executor |
| Gatilho do Airflow (operadores adiáveis) | Sem suporte | Compatível | Compatível |
| Conta de serviço personalizada para KubernetesPodOperator | Com suporte | Compatível | incompatível |
| CMEK | Compatível | Compatível | Compatível |
| Controles de acesso do servidor da Web | Compatível | Compatível | Compatível |
| Reiniciando o servidor da Web | Compatível | Compatível | Compatível |
| Plug-ins do servidor da Web | Compatível com ambientes do Airflow 1 com a serialização de DAG desativada. | Com suporte | Compatível. Os plug-ins podem ser ativados e desativados sob demanda. |
| Plug-ins do programador | Sem suporte | Compatível | Sem suporte |
| Listeners | Sem suporte | Com suporte | Apenas listeners no nível da tarefa |
| TimeTables | Somente integrado | Personalizado e integrado | Somente integrado |
| Pacotes PyPI personalizados do Scheduler | Sem suporte | Compatível | Sem suporte |
| Como instalar plug-ins personalizados | Compatível | Compatível | Compatível |
| Operações de manutenção | Todas as tarefas podem ser afetadas. | As tarefas que levam menos de 55 minutos para serem executadas não são afetadas. | As tarefas que levam menos de 24 horas para serem executadas não são afetadas. |
| Como armazenar snapshots | Compatível com as versões 2.x e 1.10.15 do Airflow | Com suporte | Com suporte |
| Carregando snapshots | Sem suporte | Compatível | Com suporte |
| Snapshots programados | Sem suporte | Compatível | Compatível |
| Bucket do ambiente personalizado | Sem suporte | Compatível | Compatível |
| Salvar registros de tarefas do Airflow apenas no Cloud Logging | Sem suporte | Compatível | Compatível |
| Integração da linhagem de dados | Sem suporte | Compatível | Compatível |
| Ferramenta CLI de desenvolvimento local do Composer | Sem suporte | Compatível | Compatível |
Comparação de versões do Airflow
O Airflow Gerenciado (Geração 3) oferece ambientes com Airflow 2 e Airflow 3.
Suporte para recursos do Airflow gerenciado (Geração 3)
A tabela a seguir resume os recursos do Airflow Gerenciado (Geração 3) que ainda não são compatíveis com o Airflow 3.
| Recurso | Status | Descrição |
|---|---|---|
| Upgrades para o Airflow 3 (snapshots) | Ainda não disponível no Airflow 3 | Migração lado a lado de ambientes do Airflow gerenciado (Geração 3) do Airflow 2 para o Airflow 3 usando snapshots. |
| Upgrades para o Airflow 3 (no local) | Ainda não disponível no Airflow 3 | Upgrades no local de ambientes do Airflow gerenciado (Geração 3) do Airflow 2 para o Airflow 3 especificando uma versão com o Airflow 3 durante um upgrade. |
Problemas conhecidos no Airflow 3
Os seguintes problemas conhecidos foram identificados no Airflow 3:
- Mensagens de aviso nos registros de cargas de trabalho do Airflow. Essas mensagens podem ser ignoradas com segurança.
- O utilitário
airflowctlnão pode ser usado facilmente em ambientes sem interface gráfica, como workers do Airflow no Airflow Gerenciado ou contêineres do Docker. Essa é uma limitação do utilitário. Para mais informações sobre essa limitação, consulte o problema 58230 no repositório do Airflow no GitHub.
Suporte para recursos do Airflow 3
A tabela a seguir lista os recursos do Airflow 3 e o suporte deles:
| Recurso | Status |
|---|---|
| IU do Airflow 3.0 | Com suporte |
| Controle de versões do DAG | Com suporte |
| Backfills (na interface do Airflow) | Com suporte |
| Programação orientada a eventos | Com suporte |
| Recursos | Com suporte |
| Execução de inferência e ajuste de hiperparâmetros | Com suporte |
| Ferramenta de linha de comando airflowctl | Com suporte |
| Pacotes de DAGs (que não sejam LocalDagBundle) | Ainda não disponível no Airflow 3 |
| Executor de borda e tarefas em outras linguagens de programação | Ainda não disponível no Airflow 3 |
Imagens do Serviço gerenciado para Apache Airflow
Para executar o Apache Airflow, o Airflow Gerenciado cria imagens Docker que combinam lançamentos do Airflow com outros binários comuns e bibliotecas Python.
As imagens do Airflow Gerenciado incluem modificações do Airflow que são específicas do Airflow Gerenciado e inadequadas para a base de código do Airflow de upstream. Cada imagem do Airflow Gerenciado contém pacotes pré-instalados e mudanças específicas do Airflow Gerenciado.
O Google lança periodicamente novas imagens do Airflow Gerenciado:
No Airflow gerenciado (Geração 3), as imagens incluem novos builds das versões compatíveis do Airflow. É possível selecionar uma versão do Airflow e um build que você quer usar. Seu ambiente recebe melhorias do Airflow Gerenciado automaticamente.
No Airflow gerenciado (Geração 2) e no Airflow gerenciado (Geração 1 legada), as imagens incluem melhorias do Airflow gerenciado e novos builds das versões compatíveis do Airflow. Para aproveitar as melhorias do Airflow Gerenciado, faça upgrade do ambiente para uma versão mais recente.
Compatibilidade e suspensão de uso das versões
Composer 3
O Google oferece suporte a um build do Airflow por um período após o lançamento:
0 a 12 meses a partir da data de lançamento: os ambientes do Airflow Gerenciado (Geração 3) que executam esse build do Airflow são compatíveis.
Mais de 12 meses a partir da data de lançamento: os ambientes do Airflow Gerenciado (Geração 3) que executam essas versões não são compatíveis.
Depois que um build do Airflow não é mais compatível, os ambientes que executam esse build também não são compatíveis e são totalmente gerenciados pelo usuário.
Os ambientes funcionam com builds do Airflow compatíveis e incompatíveis da seguinte maneira:
É possível criar ambientes com todas as versões do Airflow compatíveis.
Ainda é possível usar um ambiente com um build do Airflow que não é mais compatível. O ambiente ainda funciona, você pode continuar usando e é possível fazer upgrade para um build do Airflow compatível.
Em alguns casos, um upgrade para uma versão ou build mais recente do Airflow é a única solução disponível para uma vulnerabilidade de segurança.
Composer 2
O Google oferece suporte às versões do Airflow gerenciado (geração 2) por um período após o lançamento:
0 a 12 meses a partir da data de lançamento: os ambientes do Airflow Gerenciado (Geração 2) que executam essas versões são compatíveis.
Mais de 12 meses a partir da data de lançamento: os ambientes do Airflow Gerenciado (Geração 2) que executam essas versões não são compatíveis.
É possível usar versões do Airflow Gerenciado após a data em que elas não são mais compatíveis. Por exemplo, se o ambiente for baseado em uma versão do Airflow Gerenciado que tenha passado do período de suporte, o ambiente ainda funcionará e você poderá continuar a usá-lo. Nesse caso, recomendamos fazer upgrade do ambiente para uma versão compatível.
Composer 1
Novas versões do Airflow Gerenciado (geração 1 legada) foram lançadas até o fim de março de 2023. Todas as versões lançadas do Airflow Gerenciado (Geração 1 legada) seguem a mesma política de descontinuação de versão do Airflow Gerenciado (Geração 2) e são compatíveis de acordo com ela.
Esquemas de versões
Nesta seção, descrevemos os esquemas de versão do Airflow e do Airflow Gerenciado e os aliases de versão.
Esquema da versão do Airflow
O Airflow segue o esquema semântico do controle de versões de software. Cada versão do Airflow tem uma versão principal, secundária e de patch.
Composer 3
No Airflow gerenciado (Geração 3), novas versões e builds do Airflow ficam disponíveis com o tempo.
Seu ambiente pode funcionar com todas as versões e builds anteriores do Airflow e recebe atualizações automáticas dos componentes de infraestrutura. Cada versão e build é compatível conforme descrito em Descontinuação e suporte de versões, e você pode fazer upgrade da versão do Airflow para uma versão ou build mais recente.
Composer 2
Para ver uma lista das versões do Airflow compatíveis com cada versão do Airflow Gerenciado, consulte a lista de versões do Airflow Gerenciado.
Em cada versão, o Airflow gerenciado (Geração 2) é compatível com duas versões secundárias do Airflow 2.
Por exemplo, o Airflow Gerenciado 2.4.0 é compatível com o Airflow 2.4.* e o Airflow 2.5.*.
Para cada versão secundária do Airflow 2, o Airflow Gerenciado é compatível com uma versão de patch.
Por exemplo, para o Airflow 2.4.*, O Airflow Gerenciado é compatível com o Airflow 2.4.3.
Quando uma nova versão de patch do Airflow 2 é disponibilizada no Airflow Gerenciado, a versão correspondente tem duas versões de patch do Airflow 2 disponíveis para a mesma versão secundária do Airflow. A versão anterior do patch é removida em uma das próximas versões.
Por exemplo, o Airflow gerenciado 2.3.4 é compatível com o Airflow 2.5.1 e o Airflow 2.5.3.
O Airflow Gerenciado pode ignorar algumas versões de patch do Airflow entre versões do Airflow Gerenciado. Além disso, se houver problemas funcionais, de qualidade ou de desempenho com uma versão de patch específica do Airflow, o Airflow Gerenciado também poderá ignorar essa versão.
Por exemplo, o Airflow 2.1.3 é ignorado e o Airflow 2.1.4 está disponível.
Uma versão do Airflow Gerenciado executando uma versão estável do Airflow pode incluir atualizações do Airflow que são feitas a partir de uma versão posterior do Airflow.
Composer 1
A versão mais recente do Airflow compatível com o Airflow gerenciado (geração 1 legada) é a 2.4.3.
Somente o Airflow gerenciado (Geração 1 legada) é compatível com o Airflow 1.10.15, a versão mais recente do Airflow 1.
Esquema de versão do Airflow Gerenciado
Composer 3
O esquema de controle de versões do Airflow gerenciado (Geração 3) captura versões e builds do Airflow:
composer-3-airflow-x.y.z-build.t
Em que:
composer-3é a versão principal do Airflow Gerenciado.airflow-x.y.z.build.té a versão e o build do Airflow. Cada versão seguinte da mesma versão do Airflow no Airflow Gerenciado (Geração 3) tem um número da versão maior. O número da versão é definido pelo Airflow Gerenciado, e não pelo projeto de código aberto do Airflow.
Composer 2
O esquema de controle de versões de imagem do Airflow gerenciado (Geração 2) captura as versões do Airflow gerenciado e do Airflow:
composer-2.b.c-airflow-x.y.z
Em que:
composer-2.b.cindica a versão secundária e de patch das personalizações gerenciadas pelo Airflow gerenciado no Airflow gerenciado (Geração 2). Como regra geral, as versões secundárias do Airflow Gerenciado correspondem a mudanças significativas na funcionalidade em comparação com a versão secundária anterior, como quando o conjunto disponível de versões do Airflow é alterado. As versões de patch são atualizadas em versões subsequentes.airflow-x.y.zé a versão do Airflow, que indica as versões principal, secundária e de patch do Airflow usadas em uma imagem específica do Airflow Gerenciado.
Composer 1
O esquema de controle de versões de imagem do Airflow gerenciado (Geração 1 legada) captura as versões do Airflow gerenciado e do Airflow:
composer-1.b.c-airflow-x.y.z
Em que:
composer-1.b.cé a versão das personalizações gerenciadas pelo Airflow Gerenciado;airflow-x.y.zé a versão do Airflow.
Aliases da versão
Os aliases de versão funcionam da seguinte maneira:
O Airflow Gerenciado resolve o alias da versão para o formato completo quando cria seu ambiente:
- Todos os aliases de versão se tornam
composer-3-airflow-x.y.z-build.tno Airflow gerenciado (Geração 3). - Todos os aliases de versão se tornam
composer-a.b.c-airflow-x.y.zno Airflow gerenciado (Geração 2) e no Airflow gerenciado (Geração 1 legada).
- Todos os aliases de versão se tornam
No Airflow Gerenciado (Geração 3), usar um alias de versão, como
composer-3-airflow-x.ynão faz upgrade automático da versão e do build do Airflow do seu ambiente. O ambiente permanece na mesma versão e build do Airflow até que você faça upgrade. O ambiente ainda recebe upgrades automáticos de infraestrutura, como de costume.No Airflow gerenciado (Geração 2) e no Airflow gerenciado (Geração 1 legada), usar um alias de versão, como
composer-a-airflow-x.y.znão fornece upgrades automáticos para um ambiente. O ambiente permanece na mesma versão do Airflow e do Airflow Gerenciado até que você faça upgrade.
Aliases da versão do Airflow gerenciado (Geração 3)
O Airflow gerenciado (Geração 3) é compatível com os seguintes aliases de versão:
| Alias | Versão do Airflow |
|---|---|
composer-3-airflow-2 |
Versão e build mais recentes do Airflow 2 |
composer-3-airflow-x.y |
Versão e build mais recentes do Airflow nas versões principal e secundária x.y |
composer-3-airflow-x.y.z |
Build mais recente da versão especificada do Airflow |
Aliases da versão do Airflow Gerenciado (Geração 2)
O Airflow gerenciado (Geração 2) é compatível com os seguintes aliases de versão:
| Alias | Versão do Airflow Gerenciado | Versão do Airflow |
|---|---|---|
composer-2-airflow-2 |
Versão mais recente do Airflow gerenciado (Geração 2) | Versão mais recente do Airflow 2 |
composer-2-airflow-x.y |
Versão mais recente do Airflow gerenciado (Geração 2) | Versão mais recente do Airflow nas versões principal e secundária x.y |
composer-2-airflow-x.y.z |
Versão mais recente do Airflow gerenciado (Geração 2) | Versão especificada do Airflow |
composer-2.b.c-airflow-x.y |
Versão especificada do Airflow gerenciado (Geração 2) | Versão mais recente do Airflow disponível nas versões principal e secundária do x.y |
Aliases da versão do Airflow gerenciado (geração 1 legada)
O Airflow Gerenciado (Geração 1 legada) é compatível com os seguintes aliases de versão:
| Alias | Versão do Airflow Gerenciado | Versão do Airflow |
|---|---|---|
composer-1-airflow-2 |
Versão mais recente do Airflow gerenciado (Geração 1 legada) | Versão mais recente do Airflow 2 |
composer-1-airflow-1 |
Versão mais recente do Airflow gerenciado (Geração 1 legada) | Versão mais recente do Airflow 1 |
composer-1-airflow-x.y |
Versão mais recente do Airflow gerenciado (Geração 1 legada) | Versão mais recente do Airflow nas versões principal e secundária x.y |
composer-1-airflow-x.y.z |
Versão mais recente do Airflow gerenciado (Geração 1 legada) | Versão especificada do Airflow |
composer-1.b.c-airflow-x.y |
Versão especificada do Airflow gerenciado (Geração 1 legada) | A versão mais recente do Airflow disponível nas versões principal e secundária x.y. |
Os seguintes aliases de versão apontam para o Airflow gerenciado (Geração 3). Você ainda pode usá-los, mas considere mudar para aliases na sua versão do Airflow Gerenciado.
composer-latest-airflow-x.yé igual acomposer-3-airflow-x.y.composer-latest-airflow-x.y.zé igual acomposer-3-airflow-x.y.z.
Argumentos de versão na Google Cloud CLI
Ao criar ou fazer upgrade de um ambiente do Airflow Gerenciado usando a Google Cloud CLI, é possível especificar as versões do Airflow Gerenciado e do Airflow:
Composer 3
O argumento
--image-versionespecifica a versão e o build do Airflow no formatocomposer-3-airflow-x.y.z-build.t. É possível usar aliases de versão, que são resolvidos pela Google Cloud CLI no formato completo.--airflow-versionespecifica a versão do Airflow nos seguintes formatos:O formato
x.y.zé para o build mais recente da versão especificada do Airflow. Esse formato é igual ao alias da versãocomposer-3-airflow-x.y.z.O formato
x.yé para a build mais recente do Airflow disponível nas versões principal e secundáriax.y. Esse formato é igual ao alias da versãocomposer-3-airflow-x.y.x.y.z-build.té a versão e o build especificados do Airflow. Esse formato é igual acomposer-3-airflow-x.y.z-build.t.
Composer 2
O argumento
--image-versionespecifica o Airflow Gerenciado (Geração 2) e as versões do Airflow:- O formato
composer-a.b.c-airflow-x.y.zcria um ambiente com as versões especificadas do Airflow gerenciado e do Airflow. - Os aliases de versão primeiro são resolvidos para o formato
composer-a.b.c-airflow-x.y.ze depois criam um ambiente com as versões especificadas do Airflow gerenciado (Geração 2) e do Airflow.
- O formato
--airflow-versionespecifica a versão do Airflow nos seguintes formatos:O formato
x.y.zé para a versão mais recente do Airflow gerenciado (Geração 2) e a versão especificada do Airflow. Esse formato é igual ao alias de versãocomposer-2-airflow-x.y.z.O formato
x.yé para a versão mais recente do Airflow gerenciado (geração 2) e a versão mais recente do Airflow disponível nas versões principal e secundáriax.y. Esse formato é igual ao alias da versãocomposer-2-airflow-x.y.
Composer 1
O argumento
--image-versionespecifica o Airflow gerenciado (geração 1 legada) e as versões do Airflow:- O formato
composer-a.b.c-airflow-x.y.zcria um ambiente com as versões especificadas do Airflow gerenciado e do Airflow. - Os aliases de versão primeiro são resolvidos para o formato
composer-a.b.c-airflow-x.y.ze depois criam um ambiente com as versões especificadas do Airflow Gerenciado (geração 1 legada) e do Airflow.
- O formato
--airflow-versionespecifica a versão do Airflow nos seguintes formatos:O formato
x.y.zé para a versão mais recente do Airflow gerenciado (Geração 1 legada) e a versão especificada do Airflow. Esse formato é igual ao alias de versãocomposer-1-airflow-x.y.z.O formato
x.yé para a versão mais recente do Airflow gerenciado (geração 1 legada) e a versão mais recente do Airflow disponível nas versões principal e secundáriax.y. Esse formato é igual ao alias da versãocomposer-1-airflow-x.y.