O que é CI/CD no Azure Databricks?
Este artigo é uma introdução à CI/CD no Databricks. CI/CD (integração contínua e entrega contínua) refere-se ao processo de desenvolvimento e entrega de software em ciclos curtos e frequentes por meio do uso de pipelines de automação. A CI/CD é comum no desenvolvimento de software e está se tornando cada vez mais necessária para a engenharia de dados e a ciência de dados. Ao automatizar a criação, o teste e a implantação do código, as equipes de desenvolvimento podem entregar versões com mais confiabilidade do que com os processos manuais ainda comuns às equipes de engenharia de dados e ciência de dados.
O Azure Databricks recomenda usar pacotes de ativos do Databricks para CI/CD, que permitem o desenvolvimento e a implantação de dados complexos, análise e projetos de ML para a plataforma do Azure Databricks. Os pacotes permitem gerenciar facilmente muitas configurações personalizadas e automatizar builds, testes e implantações de seus projetos em workspaces de desenvolvimento, preparo e produção do Azure Databricks.
Para obter uma visão geral da CI/CD para projetos de aprendizado de máquina no Azure Databricks, confira Como o Databricks dá suporte à CI/CD para aprendizado de máquina?.
O que há em um pipeline de CI/CD no Azure Databricks?
Você pode usar pacotes de ativos do Databricks para definir e gerenciar programaticamente sua implementação de CI/CD do Azure Databricks, que geralmente inclui:
- Notebooks: os notebooks do Azure Databricks costumam ser uma parte importante dos fluxos de trabalho de engenharia de dados e ciência de dados. Você pode usar o controle de versão para notebooks e também validá-los e testá-los como parte de um pipeline de CI/CD. Você pode executar testes automatizados em notebooks para verificar se eles estão funcionando conforme o esperado.
- Bibliotecas: gerencie as dependências de biblioteca necessárias para executar seu código implantado. Use o controle de versão nas bibliotecas e inclua-as em testes e validações automatizados.
- Fluxos de trabalho: os Trabalhos do Databricks são compostos por trabalhos que permitem agendar e executar tarefas automatizadas usando notebooks ou trabalhos do Spark.
- Pipelines de dados: você também pode incluir pipelines de dados na automação de CI/CD, usando o Delta Live Tables, a estrutura do Databricks para declarar pipelines de dados.
- Infraestrutura: a configuração de infraestrutura inclui definições e informações de provisionamento para clusters, workspaces e armazenamento para ambientes de destino. As alterações na infraestrutura podem ser validadas e testadas como parte de um pipeline de CI/CD, garantindo que sejam consistentes e livres de erros.
Etapas para A CI/CD no Azure Databricks
Um fluxo típico para um pipeline de CI/CD do Azure Databricks inclui as seguintes etapas:
- Armazenamento: armazene o código e os notebooks do Azure Databricks em um sistema de controle de versão como o Git. Isso permite que você acompanhe as alterações ao longo do tempo e colabore com outros membros da equipe. Consulte Técnicas de CI/CD com pastas Git e Databricks Git (Repos) e configurações de Git em pacote.
- Código: desenvolver código e testes de unidade em um notebook do Azure Databricks no espaço de trabalho ou usando um IDE externo. O Azure Databricks fornece uma extensão do Visual Studio Code que facilita o desenvolvimento e a implantação de alterações nos workspaces do Azure Databricks.
- Compilação: use as configurações de Pacotes de Ativos do Databricks para compilar automaticamente determinados artefatos durante as implantações. Confira artefatos. Além disso, o Pylint estendido com o plug-in pylint do Databricks Labs ajuda a impor padrões de codificação e detectar bugs em seus notebooks e código de aplicativo do Databricks.
- Implantação: implantar alterações no workspace do Azure Databricks usando pacotes de ativos do Databricks, juntamente com ferramentas como Azure DevOps, Jenkins ou GitHub Actions. Confira Modos de implantação do pacote de ativos do Databricks.
- Teste: desenvolva e execute testes automatizados para validar suas alterações de código usando ferramentas como pytest. Para testar suas integrações com APIs de workspace, o plug-in pytest do Databricks Labs permite que você crie objetos de workspace e limpe-os após a conclusão dos testes.
- Execução: use a CLI do Databricks em conjunto com os Pacotes de Ativos do Databricks para automatizar execuções em seus workspaces do Azure Databricks. Consulte Executar um trabalho ou pipeline.
- Monitoramento: monitore o desempenho do seu código e dos fluxos de trabalho no Azure Databricks usando ferramentas como o Azure Monitor ou o Datadog. Isso ajuda você a identificar e resolver todos os problemas que surjam em seu ambiente de produção.
- Iteração: faça pequenas e frequentes iterações para aprimorar e atualizar seu projeto de engenharia de dados ou ciência de dados. Pequenas mudanças são mais fáceis de reverter do que as grandes.
Links relacionados
Para obter mais informações sobre como gerenciar o ciclo de vida dos ativos e dados do Azure Databricks, confira a seguinte documentação sobre a CI/CD e ferramentas de pipeline de dados.
Área | Use essas ferramentas quando quiser... |
---|---|
Pacotes de Ativos do Databricks | Defina, implante e execute programaticamente trabalhos do Azure Databricks, pipelines de Tabelas Dinâmicas Delta e Pilhas de MLOps usando as práticas recomendadas e fluxos de trabalho de CI/CD. |
Provedor Terraform do Databricks | Provisione e gerencie a infraestrutura e os recursos da Databricks usando o Terraform. |
Fluxos de trabalho CI/CD com Git e pastas do Databricks Git | Use as pastas Git do GitHub e o Databricks para controle do código-fonte e fluxos de trabalho CI/CD. |
Autenticar com o Azure DevOps no Databricks | Autenticar com o Azure DevOps. |
Usar uma entidade de serviço do Microsoft Entra para autenticar o acesso às pastas Git do Azure Databricks | Use uma entidade de serviço do MS Entra para autenticar o acesso às pastas Git do Databricks. |
Integração e entrega contínuas no Azure Databricks usando o Azure DevOps | Desenvolver um pipeline de CI/CD para o Azure Databricks que use o Azure DevOps. |
Integração e entrega contínuas usando o GitHub Actions | Desenvolva um fluxo de trabalho de CI/CD no GitHub que usa o GitHub Actions desenvolvido para o Azure Databricks. |
CI/CD com o Jenkins no Azure Databricks | Desenvolver um pipeline de CI/CD para o Azure Databricks que use o Jenkins. |
Orquestrar trabalhos do Azure Databricks com o Apache Airflow | Gerenciar e agendar um pipeline de dados que use o Apache Airflow. |
Entidades de serviço de CI/CD | Use entidades de serviço, em vez de usuários, com sistemas de CI/CD. |