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:
- Fluxos de trabalho de CI/CD no Databricks
- Práticas recomendadas de desenvolvimento no Databricks
- Como o Databricks oferece suporte a CI/CD para machine learning?
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 de Automação Declarativa para criar automaticamente determinados artefatos durante as 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 .
-
implantar : implantar alterações no workspace Databricks usando pacotes de automação declarativa 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.
- Para usar o pipeline do Jenkins com Databricks, consulte CI/CD com Jenkins no Databricks.
-
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 de automação declarativa para automatizar a execução em seu workspace 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... |
|---|---|
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 . | |
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. |
Inclua um GitHub Actions desenvolvido para Databricks em seu fluxo de CI/CD . | |
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 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 .