Pular para o conteúdo principal

CI/CD na Databricks

integração contínua (CI) e entrega contínua (CD) (CI/CD) refere-se ao processo de desenvolvimento e entrega software em ciclos curtos e frequentes por meio do uso de pipeline 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, os testes e a implantação de código, as equipes de desenvolvimento entregam versões de forma mais confiável do que com processos manuais.

Databricks fornece ferramentas para o desenvolvimento de pipelines de CI/CD que suportam abordagens que podem diferir ligeiramente de organização para organização devido aos aspectos únicos do ciclo de vida de desenvolvimento software de cada organização. Esta página fornece informações sobre as ferramentas disponíveis para pipelines CI/CD no Databricks. Para obter detalhes sobre recomendações e boas práticas CI/CD , consulte Boas práticas e fluxo de trabalho CI/CD recomendado no Databricks.

Para obter uma visão geral da CI/CD para projetos de aprendizado de máquina na Databricks, consulte Como a Databricks oferece suporte à CI/CD para aprendizado de máquina?

Fluxo de alto nível

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

  1. Versão : armazene seu código Databricks e Notebook em um sistema de controle de versão como Git. Isso permite que você acompanhe as alterações ao longo do tempo e colabore com outros membros da equipe.

  2. Código : Desenvolva código e testes unitários em um Databricks Notebook no workspace ou localmente usando um IDE.

  3. Build : Use as configurações de Pacotes de Automação Declarativa para criar automaticamente determinados artefatos durante as implantações.

  4. implantar : implantar alterações no workspace 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 suas alterações de código.

    • Use ferramentas como o pytest para testar suas integrações.
  6. execução : use a CLI Databricks com pacotes de automação declarativa para automatizar a execução em seu workspace Databricks .

  7. Monitor : Monitore o desempenho do seu código e das cargas de trabalho de produção no Databricks usando ferramentas como o Job monitoramento. Isso ajuda você a identificar e resolver quaisquer problemas que surjam no seu ambiente de produção.

Ferramentas disponíveis

As seguintes ferramentas dão suporte aos princípios básicos de CI/CD : versionar todos os arquivos e unificar o gerenciamento ativo, definir 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

Definir, implantar e executar programaticamente o recurso Databricks , incluindo LakeFlow Jobs, LakeFlow Spark Declarative pipeline e MLOps Stacks usando melhores práticas e fluxos CI/CD .

Provedor Databricks Terraform

Provisionamento e gerenciamento do espaço de trabalho e da infraestrutura Databricks usando Terraform. Para obter detalhes sobre quando usar o provedor Terraform do Databricks em vez dos Pacotes de Automação Declarativa, consulte Ferramentas de desenvolvimento local.

Integração e entrega contínuas no Databricks usando Azure DevOps

Desenvolva um pipeline de CI/CD para o Databricks que use o Azure DevOps.

GitHub Actions

Inclua um GitHub Actions desenvolvido para Databricks em seu fluxo de CI/CD .

CI/CD com Jenkins na Databricks

Desenvolva um pipeline de CI/CD para a Databricks que use o Jenkins.

Orchestrate LakeFlow Empregos com Apache Airflow

gerenciar e programar a pipeline de dados que usa Apache Airflow.

Entidades de serviço para CI/CD

Utilize entidade de serviço, em vez de usuários, com CI/CD.

Autenticar o acesso ao Databricks usando a federação de tokens 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 autenticação no Databricks.

Pacotes de Automação Declarativa

Os pacotes de automação declarativa são a abordagem recomendada para CI/CD no Databricks. Utilize os Pacotes de Automação Declarativa para descrever recursos Databricks como Jobs e pipelines, como arquivos de origem, e agrupe-os com outros ativos para fornecer uma definição completa de um projeto implantável. Esses pacotes de arquivos podem ser controlados por versão, e você pode usar automação externa CI/CD como GitHub Actions para acionar implantações.

O pacote inclui diversos recursos, como padrões personalizados para garantir consistência e melhores práticas em toda a sua organização, além de suporte completo para a implantação de arquivos de código e configurações para vários recursos Databricks . A criação de um pacote requer algum conhecimento da sintaxe de configuração de pacotes.

Para recomendações sobre como usar pacotes em CI/CD, consulte Melhores práticas e fluxo de trabalho CI/CD recomendado no Databricks.

Outras ferramentas para controle de origem

Como alternativa à aplicação completa CI/CD com Declarative Automation Bundles, Databricks oferece opções para controlar e implantar apenas 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 para produção para gerenciar arquivos de origem controlados por versão e Notebooks. Em seguida, atualize manualmente a pasta Git para o estado mais recente ou use ferramentas externas CI/CD , como GitHub Actions para atualizar a pasta Git durante a merge. Utilize essa abordagem quando você não tiver acesso a um pipeline CI/CD externo.

    Essa abordagem funciona para orquestradores externos como Airflow, mas observe que apenas os arquivos de código, como rascunhos de Notebook e dashboards, estão no controle de versão. As configurações para o Job ou pipeline que está em execução na pasta Git e as configurações para publicação de dashboards não estão no controle de versão.

  • Git com Job: Git com Job permite configurar alguns tipos de Job para usar um repositório Git remoto como fonte para arquivos de código. Quando a execução de um trabalho começa, Databricks tira um instantâneo do repositório e executa toda a tarefa nessa versão. Essa abordagem suporta apenas um número limitado de tarefas de trabalho, e somente os arquivos de código (Notebook e outros arquivos) são controlados por versão. Configurações Job como sequências de tarefas, configurações compute e programação, não são controladas por versão, tornando essa abordagem menos adequada para implantações em múltiplos ambientes e entre diferentesworkspace .