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 é:
-
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.
- Usuários individuais utilizam uma pasta Git para criar e testar alterações antes de confirmá-las em um repositório Git . Veja CI/CD com pastas Git do Databricks.
- Opcionalmente, configure as configurações do pacote Git.
-
Código : Desenvolva código e testes unitários em um Databricks Notebook no workspace ou localmente usando um IDE.
- Use o LakeFlow Pipelines Editor para desenvolver um pipeline no workspace.
- Use a extensãoDatabricks Visual Studio Code para desenvolver e implementar alterações locais no espaço de trabalho Databricks .
-
Build : use as configurações de pacotes ativos Databricks para criar automaticamente determinados artefatos durante implantações.
- Configure o mapeamento de artefatos de configuração do pacote.
- O Pylint, com a extensão do plugin pylintDatabricks Labs, ajuda a aplicar padrões de codificação e a detectar erros no seu Notebook e no código da aplicação Databricks .
-
implantado : implantado alterações no workspace Databricks usando pacotes ativo Databricks com ferramentas como Azure DevOps, GitHub Actions ou Jenkins.
- Configurar implantações usando modos de implantação de pacote.
- Para obter detalhes sobre como usar o Azure DevOps e o Databricks, consulte Integração e entrega contínuas no Databricks usando o Azure DevOps.
- Para exemplos GitHub Actions Databricks , consulte GitHub Actions.
-
Teste : Desenvolva e execute testes automatizados para validar suas alterações de código.
- Use ferramentas como o pytest para testar suas integrações.
-
execução : Use a CLI Databricks com pacotes ativos Databricks para automatizar a execução em seu espaço de trabalho Databricks .
- recurso de pacote de execução usando execução de pacote de databricks.
-
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... |
|---|---|
Defina, implemente e execute programaticamente Jobs LakeFlow , pipelines declarativos LakeFlow Spark e stacks MLOps usando as melhores práticas e fluxos CI/CD . | |
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. |
Inclua um GitHub Actions desenvolvido para Databricks em seu CI/CD fluxo de trabalho. | |
Desenvolva um pipeline de CI/CD para a Databricks que use o Jenkins. | |
gerenciar e programar a pipeline de dados que usa Apache Airflow. | |
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 .