Estudo de caso · Plataforma de dados · DevOps
Construção de uma plataforma Databricks do zero
Implantação e estruturação de uma plataforma de dados com Databricks, separando os ambientes de desenvolvimento (DEV) e produção (PRD) e construindo a infraestrutura, a governança e os processos de CI/CD necessários para sustentar o ciclo de vida das soluções de dados.
- Databricks
- Azure
- Unity Catalog
- Terraform
- Azure DevOps
- Microsoft Entra ID
- CI/CD
Arquitetura de infraestrutura
A plataforma foi estruturada no ecossistema Azure, com separação lógica entre desenvolvimento e produção. As principais atividades de infraestrutura incluíram:
- Criação e configuração dos workspaces de DEV e PRD.
- Provisionamento dos recursos de armazenamento para cada ambiente.
- Padronização de nomenclatura e aplicação de tags de ambiente, responsável e centro de custo.
- Organização dos grupos de acesso do Microsoft Entra ID (Azure AD) e atribuição aos workspaces.
Uma decisão arquitetural importante foi manter os recursos no mesmo Resource Group, utilizando separação lógica, convenções de nomenclatura e controles de acesso para distinguir DEV e PRD.
Governança de dados com Unity Catalog
O projeto também envolveu a estruturação da governança de dados, buscando centralizar o controle de acesso e organizar os ativos analíticos por ambiente e camada. A arquitetura contemplava:
- Separação de catálogos e schemas por ambiente e camada, seguindo a abordagem Bronze, Silver e Gold.
- Organização de dados por domínio de negócio.
- Utilização de Volumes para armazenamento de arquivos e dados de staging.
- Definição de permissões para catálogos, schemas, tabelas e demais objetos.
- Separação das responsabilidades administrativas entre workspace e Unity Catalog.
CI/CD com Azure DevOps e Git
Uma parte central do projeto foi construir um fluxo de desenvolvimento e implantação para Databricks integrado ao Azure DevOps.
Azure DevOps Repos
Versionamento, branches e controle de alterações.
Azure DevOps Pipelines
Automação de processos de validação e implantação.
Terraform
Infraestrutura e recursos Databricks.
Databricks
Jobs, consultas e pipelines.
As atividades incluíram:
- Integração dos repositórios com os workspaces Databricks.
- Estruturação dos pipelines de CI/CD no Azure DevOps.
- Organização de variáveis e grupos de variáveis para configurações globais e backend do Terraform.
- Tratamento de permissões de Git, incluindo permissões para criação de branches.
Infraestrutura como código com Terraform
Foi estruturada uma abordagem de Infrastructure as Code (IaC) para automatizar a criação e a manutenção de recursos da plataforma. O projeto utilizou Terraform com os providers AzureRM e Databricks, contemplando:
- Configuração do backend remoto para armazenamento do estado do Terraform.
- Separação de variáveis e configurações por ambiente.
- Automação da gestão de recursos e jobs do Databricks.
- Definição de tarefas, clusters de jobs, permissões, tags e dependências.
- Geração automatizada de arquivos Terraform a partir de configurações YAML.
Principais desafios técnicos
| Desafio | Trabalho realizado |
|---|---|
| Separação DEV/PRD | Organização dos workspaces, storages, tags e acessos |
| Governança | Estruturação da estratégia de Unity Catalog e permissões |
| CI/CD | Configuração de pipelines, variáveis e agente self-hosted |
| Terraform | Backend remoto, providers, versões e estado dos recursos |
| Automação de jobs | Geração de código a partir de YAML e templates Jinja |
| Controle de versão | Integração com Git e resolução de permissões |
| Implantação segura | Tratamento de recursos existentes e prevenção de duplicações |