Como Executar Apache Airflow no Google Cloud: 3 Abordagens Essenciais
- Michel Souza Santana
- 1 de out. de 2024
- 3 min de leitura
Se você está pensando em executar o Apache Airflow no Google Cloud para gerenciar seus fluxos de trabalho de ETL (Extração, Transformação e Carga) ou pipelines de dados, você veio ao lugar certo. O Airflow, com sua estrutura de grafos acíclicos dirigidos (DAGs), oferece uma solução poderosa para agendar, orquestrar e monitorar tarefas complexas. No entanto, há diferentes maneiras de implementá-lo na nuvem da Google, cada uma com seus próprios prós e contras.
Neste post, vamos explorar três maneiras de executar o Apache Airflow no Google Cloud, oferecendo uma visão comparativa entre essas opções. Para ajudar na sua implementação, também incluímos exemplos de código Terraform que podem ser utilizados para colocar cada uma dessas abordagens em prática.
1. Compute Engine: Simplicidade com Custo Baixo
O Compute Engine é a maneira mais direta e simples de executar o Apache Airflow no Google Cloud. Aqui, você instala o Airflow diretamente em uma VM (máquina virtual), tornando essa solução mais econômica e fácil de configurar se você já estiver familiarizado com o gerenciamento de máquinas virtuais.
Vantagens:
Baixo custo: Ideal para POCs (provas de conceito) ou pequenos projetos.
Fácil de entender: Não requer conhecimento avançado de Kubernetes ou orquestração de containers.
Desvantagens:
Gerenciamento manual: Você será responsável por manter e atualizar a VM.
Disponibilidade: A falha de uma VM pode impactar seu sistema.
Se optar por essa abordagem, o código Terraform abaixo pode ser usado para criar uma instância de Compute Engine e configurar o Airflow:
module "gcp_compute_engine" {
source = "./modules/google_compute_engine"
service_name = local.service_name
region = local.region
zone = local.zone
machine_type = "e2-standard-4"
allow = {
2 = {
protocol = "tcp"
ports = ["22", "8080"]
}
}
}
Após criar a VM, conecte-se a ela, instale o Airflow e pronto! Seu Airflow estará funcionando na instância de Compute Engine.
2. Google Kubernetes Engine (GKE) Autopilot: Escalabilidade Automática
O Kubernetes oferece uma solução mais avançada e altamente escalável para executar o Airflow, especialmente com o GKE Autopilot. Nesse modo, você não precisa gerenciar os nós diretamente, pois o GKE faz isso para você, otimizando o uso de recursos com escalabilidade automática.
Vantagens:
Alta disponibilidade: O Kubernetes se ajusta automaticamente para atender às suas demandas de carga.
Gerenciado: Você não precisa lidar com a complexidade da infraestrutura.
Desvantagens:
Curva de aprendizado: É necessário um conhecimento mais profundo de Kubernetes e Helm.
Custo: Pode ser mais caro, dependendo da carga e da configuração.
Abaixo, o código Terraform que cria um cluster GKE Autopilot:
module "google_kubernetes_engine" {
source = "./modules/google_kubernetes_engine"
project_id = var.project_id
service_name = local.service_name
region = local.region
network_id = module.google_compute_engine.network_id
}
Depois de configurar o cluster, você pode implantar o Airflow usando Helm:
resource "helm_release" "airflow" {
name = "airflow" repository = "https://airflow.apache.org"
chart = "airflow"
version = "1.9.0"
namespace = "airflow"
create_namespace = true
}
3. Cloud Composer: Apache Airflow Gerenciado
O Cloud Composer é um serviço gerenciado do Google Cloud que torna extremamente simples a execução do Apache Airflow. Ele elimina a necessidade de gerenciar qualquer infraestrutura, o que pode ser muito útil se você quer focar apenas na construção de seus fluxos de trabalho de dados.
Vantagens:
Fácil de usar: Você não precisa se preocupar com a manutenção ou configuração da infraestrutura.
Totalmente gerenciado: A Google cuida da escalabilidade, segurança e monitoramento.
Desvantagens:
Menos personalizável: Você tem menos controle sobre as configurações de infraestrutura.
Limitações em casos complexos: Alguns recursos, como compartilhamento de armazenamento entre DAGs, não são possíveis.
Aqui está o código Terraform para criar um ambiente do Cloud Composer:
module "google_cloud_composer" {
source = "./modules/google_cloud_composer"
environment_size = "ENVIRONMENT_SIZE_SMALL"
project_id = var.project_id
region = local.region
service_name = local.service_name
}
Conclusão
Escolher a forma ideal de executar o Apache Airflow no Google Cloud depende do seu caso de uso específico. Se você está apenas começando ou precisa de uma solução econômica, o Compute Engine pode ser a melhor escolha. Para projetos maiores e com necessidade de alta escalabilidade, o GKE Autopilot ou o Cloud Composer são alternativas que oferecem mais robustez e menos necessidade de gerenciamento manual.
Independente da escolha, Apache Airflow no Google Cloud oferece flexibilidade e poder para gerenciar seus fluxos de trabalho de dados de maneira eficiente. E com o Terraform, você pode automatizar todo o processo, garantindo que sua infraestrutura seja reproduzível e fácil de gerenciar.
Comments