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 ativos Databricks para criar automaticamente determinados artefatos durante implantações.

  4. implantado : implantado alterações no workspace Databricks usando pacotes ativo Databricks 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 ativos Databricks para automatizar a execução em seu espaço de trabalho 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...

Databricks Asset Bundles

Defina, implemente e execute programaticamente Jobs LakeFlow , pipelines declarativos LakeFlow Spark e stacks MLOps usando as melhores práticas e fluxos CI/CD .

Provedor Databricks Terraform

provisionamento e gerenciar Databricks espaço de trabalho e infraestrutura usando Terraform.

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 CI/CD fluxo de trabalho.

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 ativosDatabricks

Databricks Os pacotes ativos são a abordagem recomendada para CI/CD em Databricks. Use Databricks ativo Bundles para descrever Databricks recurso, como Job e pipeline, como arquivos de origem, e agrupe-os com outros ativos para fornecer uma definição de ponta a ponta de um projeto implantável. Esses pacotes de arquivos podem ter o código-fonte controlado e o senhor pode usar a automação externa do CI/CD, como o GitHub Actions, para acionar as implementaçõ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 de CI/CD completo com Databricks ativo Bundles, Databricks oferece opções para controlar apenas a origem e aprimorar os arquivos de código e o Notebook.

  • 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 .