Modelo de responsabilidade compartilhada do Airflow gerenciado

Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)

Executar um aplicativo essencial para os negócios no Airflow gerenciado exige que várias partes tenham responsabilidades diferentes. Embora não seja uma lista completa, este documento lista as responsabilidades do Google e do cliente.

Responsabilidades do Google

  • Reforço da proteção e aplicação de patches aos componentes e à infraestrutura subjacente do ambiente do Airflow gerenciado, incluindo o cluster do Google Kubernetes Engine, o banco de dados do Cloud SQL (que hospeda o banco de dados do Airflow), o Pub/Sub, o Artifact Registry e outros elementos do ambiente. Isso inclui o upgrade automático da infraestrutura subjacente, incluindo o cluster do GKE e a instância do Cloud SQL de um ambiente.

  • Proteção do acesso a ambientes do Airflow gerenciado por meio da incorporação do controle de acesso fornecido pelo IAM, criptografia de dados em repouso por padrão, fornecimento de criptografia de armazenamento gerenciada pelo cliente adicional e criptografia de dados em trânsito.

  • Fornecimento de Google Cloud integrações para o Identity and Access Management, os Registros de auditoria do Cloud e o Cloud Key Management Service.

  • Restrição e registro do acesso administrativo do Google aos clusters de clientes para fins de suporte contratual com a Transparência no acesso e a Aprovação de acesso.

  • Publicação de informações sobre mudanças incompatíveis com versões anteriores entre o Airflow gerenciado e as versões do Airflow em Notas de lançamento do Airflow gerenciado.

  • Manutenção da documentação do Airflow gerenciado atualizada:

    • Fornecimento de descrição de todas as funcionalidades oferecidas pelo Airflow gerenciado.

    • Fornecimento de instruções de solução de problemas que ajudam a manter os ambientes em um estado íntegro.

    • Publicação de informações sobre problemas conhecidos com soluções alternativas (se existirem).

  • Resolução de incidentes de segurança críticos relacionados a ambientes do Airflow gerenciado e imagens do Airflow fornecidas pelo Airflow gerenciado (excluindo pacotes Python instalados pelo cliente) com a entrega de novas versões de ambiente que abordam os incidentes.

  • Dependendo do plano de suporte do cliente, solução de problemas de integridade do ambiente do Airflow gerenciado.

  • Manutenção e expansão da funcionalidade do provedor do Terraform do Airflow gerenciado.

  • Cooperação com a comunidade do Apache Airflow para manter e desenvolver operadores do Google Airflow.

  • Solução de problemas e, se possível, correção de problemas nas funcionalidades principais do Airflow.

Responsabilidades do cliente

  • Fazer upgrade para novas versões do Airflow gerenciado e do Airflow para manter o suporte ao produto e resolver problemas de segurança assim que o serviço do Airflow gerenciado publicar uma versão que resolva os problemas.

  • Manter o código dos DAGs para que ele permaneça compatível com a versão do Airflow usada.

  • Manter as permissões adequadas no IAM para a conta de serviço do ambiente. Em particular, manter as permissões exigidas pelo agente do Airflow gerenciado e pela conta de serviço do ambiente. Manter a permissão necessária para a chave CMEK usada para a criptografia do ambiente do Airflow gerenciado e girá-la de acordo com suas necessidades.

  • Manter as permissões adequadas no IAM para o bucket do ambiente bucket .

  • Manter as permissões adequadas do IAM para uma conta de serviço que realiza instalações de pacotes PyPI. Para mais informações, consulte Controle de acesso.

  • Manter as permissões adequadas do usuário final no IAM e na configuração de controle de acesso da IU do Airflow.

  • Manter o tamanho do banco de dados do Airflow abaixo de 20 GB através de configurar uma política de retenção de banco de dados.

  • Resolver todos os problemas de análise de DAGs antes de abrir casos de suporte para o Cloud Customer Care.

  • Nomear DAGs de maneira adequada (por exemplo, sem usar caracteres invisíveis, como ESPAÇO ou TAB, nos nomes de DAGs) para que as métricas possam ser informadas corretamente para DAGs.

  • Fazer upgrade do código dos DAGs para que ele não use operadores obsoletos e migre para as alternativas atualizadas. Os operadores obsoletos podem ser removidos dos provedores do Airflow, o que pode afetar seus planos de upgrade para uma versão mais recente do Airflow gerenciado ou do Airflow. Os operadores obsoletos também não são mantidos e precisam ser usados "no estado em que se encontra".

  • Configurar as permissões adequadas do IAM ao usar back-ends de secrets, como o Secret Manager, para que a conta de serviço do ambiente tenha acesso a ele.

  • Ajustar os parâmetros do ambiente do Airflow gerenciado (como CPU e memória para componentes do Airflow) e as configurações do Airflow para atender às expectativas de desempenho e carga dos ambientes do Airflow gerenciado usando o guia de otimização do Airflow gerenciado e o guia de escalonamento do ambiente.

  • Evitar a remoção de permissões exigidas pelo agente do Airflow gerenciado e pelas contas de serviço do ambiente (a remoção dessas permissões pode levar a operações de gerenciamento com falha ou a falhas de DAG e tarefas).

  • Manter todos os serviços e APIs exigidos pelo Airflow gerenciado sempre ativados. Essas dependências precisam ter cotas configuradas nos níveis exigidos pelo Airflow gerenciado.

  • Seguir as recomendações e práticas recomendadas para implementar DAGs.

  • Diagnosticar falhas de DAG e tarefas usando instruções para solução de problemas do programador, solução de problemas de DAG e solução de problemas do acionador.

  • Manter um plano de recuperação de desastres, incluindo a configuração e o gerenciamento de snapshots para atender às necessidades de retenção de dados e continuidade de negócios. O Google não restaura ambientes excluídos ou os backups do banco de dados.

  • Manter a cadeia de suprimentos de dependências do Python para pacotes instalados pelo cliente. Isso inclui a solução de problemas de instalação causados por incompatibilidades de dependências do Python e a definição de restrições de versão específicas ao adicionar ou modificar esses pacotes.

A seguir