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.

A Databricks fornece ferramentas para desenvolver pipelines de CI/CD que suportam abordagens que podem diferir entre organizações devido a aspectos exclusivos de seus ciclos de vida de desenvolvimento de software. Esta página fornece informações sobre ferramentas disponíveis para pipelines de CI/CD no Databricks.

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

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 Fluxos de Trabalho de CI/CD no Databricks e Melhores Práticas de Desenvolvimento 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 .