Atualização da imagem simple-airflow, agora com integração das Dags através do git!

“The core of mans’ spirit comes from new experiences.”
Jon Krakauer, Into the Wild

Fizemos uma atualização da imagem do simple-airflow, agora ela possui integração contínua com repositório git, o que torna mais simples o deploy dos DAGs. A imagem lê a cada um minuto o repositório através de um cronjob e os novos DAGs são automaticamente carregadss para serem usadss no Airflow.

Batendo cabeça por mais uma semana tentando entender como o código de um DAG ia parar em um servidor Airflow em produção sem fazer gambiarras do tipo entrar por ssh na máquina, chegamos a essa solução de integração com repositório git. Bom isso não veio do nada, esse tipo de estratégia foi implementada em algumas soluções como essa, essa e essa.

A imagem usa o git autenticado através de chave ssh, o que facilita a utilização de repositórios fechados e faz a validação do host automaticamente removendo a necessidade do usuário dar o aceite no primeiro clone do repositório.

Por erro meu, fui ver só depois de implementar que um companheiro de tela preta já tinha disponibilizado uma solução similar utilizando o git sync dentro do Kubernets. Essa solução usa o git sync como sidecar atualizando o repositório de DAGs de forma periódica e me parece muito mais elegante do que usar um cronjob. De qualquer forma, a imagem criada por nós permite uma funcionalidade semelhante sem a necessidade do sidecar e também a utilização de workers celery, pois atualiza os dags em todos os containers. Ela ainda faz com que a implementação pelo docker-compose e Kubernets fiquem mais parecidas o que facilita o teste local e depois o deploy sem muitos engasgos.

Espero que ajude um pouco, os códigos e imagem continuam disponíveis no Github e Docker Hub.

Compartilhar