CI/CD no Azure Databricks

A CI/CD (integração contínua e entrega contínua) refere-se ao processo de desenvolvimento e entrega de software em ciclos curtos e frequentes por meio do uso de pipelines de automação. CI/CD é comum no desenvolvimento de software e está se tornando cada vez mais necessário na engenharia de dados e na ciência de dados. Ao automatizar a criação, o teste e a implantação do código, as equipes de desenvolvimento fornecem versões de forma mais confiável do que com processos manuais.

O Databricks fornece ferramentas para desenvolver pipelines de CI/CD que dão suporte a abordagens que podem ser diferentes entre as organizações devido a aspectos exclusivos de seus ciclos de vida de desenvolvimento de software. Esta página fornece informações sobre as ferramentas disponíveis para pipelines de CI/CD no Databricks.

Para obter detalhes sobre recomendações e práticas recomendadas para desenvolvedores e CI/CD, confira o seguinte:

Fluxo de alto nível

Um fluxo comum para um pipeline de CI/CD do Azure Databricks é:

  1. Versão: armazene seu código e notebooks do Azure Databricks em um sistema de controle de versão como o Git. Isso permite que você acompanhe as alterações ao longo do tempo e colabore com outros membros da equipe.
  2. Code: Desenvolva código e testes de unidade em um bloco de anotações Azure Databricks no workspace ou localmente usando um IDE.
  3. Build: Use as configurações de Pacotes de Automação Declarativa para construir automaticamente determinados artefatos durante implantações.
  4. Deploy: implante alterações no workspace Azure Databricks usando Pacotes de Automação Declarativa com ferramentas como Azure DevOps, GitHub Actions ou Jenkins.
  5. Teste: desenvolva e execute testes automatizados para validar as alterações de código.
    • Use ferramentas como o pytest para testar suas integrações.
  6. Executar: use a CLI do Databricks com Pacotes de Automação Declarativa para automatizar execuções nos seus workspaces do Azure Databricks.
  7. Monitorar: monitore o desempenho dos seus códigos e cargas de trabalho de produção no Azure Databricks usando ferramentas como o monitoramento de trabalhos. Isso ajuda a identificar e resolver todos os problemas que surgem em seu ambiente de produção.

Ferramentas disponíveis

As ferramentas a seguir dão suporte aos princípios fundamentais de CI/CD: versionar todos os arquivos e unificar o gerenciamento de recursos, definir a infraestrutura como código, isolar ambientes, automatizar testes e monitorar e automatizar reversões.

Área Use essas ferramentas quando quiser...
Pacotes de Automação Declarativa Defina, implante e execute recursos do Databricks, incluindo Lakeflow Jobs, pipelines Lakeflow e stacks de MLOps, de forma programática, utilizando fluxos e melhores práticas de CI/CD.
Provedor do Terraform do Databricks Provisione e gerencie os workspaces e a infraestrutura do Databricks usando o Terraform. Para obter mais detalhes sobre quando usar o provedor Terraform do Databricks em vez de bundles de automação declarativa, consulte casos de uso das ferramentas de desenvolvedor.
Integração e entrega contínuas no Azure Databricks usando o Azure DevOps Desenvolva um pipeline de CI/CD para Azure Databricks que usa Azure DevOps.
Autenticar com o Azure DevOps no Azure Databricks Autenticar com Azure DevOps.
Ações do GitHub Inclua uma ação de GitHub desenvolvida para Azure Databricks no fluxo de CI/CD.
Webhooks Git para implantação automática de aplicativos Reimplante novamente um aplicativo Databricks automaticamente quando você fizer push para a branch do Git configurada. O Azure Databricks registra um webhook (um hook de serviço no Azure DevOps) no repositório, assim, os pushes disparam a implantação sem um fluxo de trabalho de CI/CD.
CI/CD com Jenkins no Azure Databricks Desenvolva um pipeline de CI/CD para Azure Databricks que usa o Jenkins.
Orquestrar tarefas do Lakeflow com o Apache Airflow Gerenciar e agendar um pipeline de dados que usa o Apache Airflow.
Entidades de serviço para CI/CD Use entidades de serviço, em vez de usuários, com CI/CD.
Autenticar o acesso ao Azure Databricks usando a federação de token OAuth Use a federação de identidade de carga de trabalho para autenticação de CI/CD, o que elimina a necessidade de segredos do Databricks, tornando-a a maneira mais segura de se autenticar no Databricks.

Pacotes de Automação Declarativa

Os Pacotes de Automação Declarativa são a abordagem recomendada para CI/CD no Databricks. Use Pacotes de Automação Declarativa para descrever os recursos do Databricks, como trabalhos e pipelines, como arquivos de origem e agrupá-los com outros ativos para fornecer uma definição de ponta a ponta de um projeto implantável. Esses pacotes de arquivos podem ser controlados pela origem e você pode usar a automação de CI/CD externa, como o Github Actions, para disparar implantações.

Os pacotes incluem muitos recursos, como modelos personalizados para impor consistência e práticas recomendadas em sua organização e suporte abrangente para implantar os arquivos de código e a configuração para muitos recursos do Databricks. Criar um pacote requer algum conhecimento da sintaxe de configuração do pacote.

Para obter recomendações sobre como usar bundles em CI/CD, consulte Fluxos de trabalho de CI/CD no Databricks e Práticas recomendadas para desenvolvedores no Databricks.

Outras ferramentas para controle do código-fonte

Como alternativa à aplicação de CI/CD completo com Pacotes de Automação Declarativa, o Databricks oferece opções apenas para controlar o código-fonte e implantar arquivos de código e notebooks.

  • Pasta git: as pastas Git podem ser usadas para refletir o estado de um repositório Git remoto. Você pode criar uma pasta git de produção para gerenciar arquivos de origem e notebooks controlados na origem. Em seguida, efetue pull manual da pasta Git para o estado mais recente ou use ferramentas de CI/CD externas, como GitHub Actions para efetuar pull da pasta Git na mesclagem. Use essa abordagem quando você não tiver acesso a pipelines externos de CI/CD.

    Essa abordagem funciona para orquestradores externos, como o Airflow, mas observe que apenas os arquivos de código, como notebooks e rascunhos de painel, estão no controle da origem. As configurações para trabalhos ou pipelines que executam ativos na pasta Git e configurações para painéis de publicação não estão no controle da origem.

  • Git com trabalhos: o Git com trabalhos permite que você configure alguns tipos de trabalho para usar um repositório Git remoto como a fonte para arquivos de código. Quando uma execução de trabalho começa, o Azure Databricks faz um snapshot do repositório e executa todas as tarefas com essa versão. Essa abordagem só dá suporte a tarefas de trabalho limitadas e somente arquivos de código (notebooks e outros arquivos) são controlados pela origem. As configurações de trabalho, como sequências de tarefas, configurações de computação e agendamentos, não são controladas pela origem, tornando essa abordagem menos adequada para implantações de vários ambientes e entre workspaces.

  • Git com Apps: Databricks Apps podem ser implantados diretamente de um repositório Git remoto, em vez de enviar arquivos para o workspace. Você configura o repositório no app e implanta um branch, tag ou commit, para que o app em execução fique fixado em um commit específico. Os envios para o branch configurado podem redistribuir o app automaticamente. Isso funciona com a databricks apps CLI ou com Pacotes de Automação Declarativa (git_repository e git_source). Para um exemplo de GitHub Actions, veja CI/CD para Databricks Apps com GitHub Actions.