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 construção, o teste e a implantação de código, as equipes de desenvolvimento conseguem entregar lançamentos de forma mais confiável do que com processos manuais.

Databricks fornece ferramentas para desenvolver pipeline de CI/CD que atendem a abordagens que podem diferir ligeiramente de organização para organização devido a aspectos exclusivos do ciclo de vida de desenvolvimento software de cada organização. Esta página fornece informações sobre ferramentas disponíveis para pipeline de CI/CD no Databricks. Para obter detalhes sobre recomendações e práticas recomendadas CI/CD , consulte Melhores 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

Definir, implantar e executar programaticamente LakeFlow Jobs, LakeFlow Declarative pipeline e MLOps Stacks usando CI/CD práticas recomendadas e fluxo de trabalho.

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.

Os pacotes incluem muitos recursos, como padrões personalizados para impor consistência e melhores práticas em toda a sua organização, além de suporte abrangente para aprimorar os arquivos de código e a configuração de muitos recursos Databricks . É necessário algum conhecimento da sintaxe de configuração do pacote para criar um pacote.

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: 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 código-fonte e Notebook. Em seguida, puxe manualmente a pasta Git para o estado mais recente ou use ferramentas externas CI/CD , como GitHub Actions , para puxar a pasta Git na merge ou quando você não tiver acesso ao pipeline externo CI/CD . Essa abordagem funciona para orquestradores externos, como Airflow, mas observe que apenas os arquivos de código, como rascunhos do Notebook e do painel, estão no controle de origem. Configurações para Job ou pipeline que são executadas ativamente na pasta Git e configurações para publicação de painéis não estão no controle de origem.

  • Git com Job: se você só precisa de controle de origem para arquivos de código para um Job, permite configurar alguns tipos de Job para usar um repositório Git remoto como origem. Quando uma execução de trabalho começa, Databricks faz um commit instantâneo do repositório remoto e garante que toda a execução do trabalho esteja na mesma versão do código. Essa abordagem só oferece suporte a tarefas de trabalho limitadas. Além disso, apenas os arquivos de código, como Notebook e outros arquivos, estão no controle de origem. Configurações Job como sequências de tarefas, compute e programar não são controladas pela origem, tornando essa abordagem menos adequada para implantações em vários ambientes eworkspace .