Compartilhar via


CI/CD no Azure Databricks

A 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. CI/CD é comum ao desenvolvimento de software e está se tornando cada vez mais necessário 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 são capazes de fornecer versões de forma mais confiável do que com processos manuais.

Ferramentas comuns estão disponíveis para o desenvolvimento de pipelines de CI/CD, mas implementações e abordagens de organização para organização podem ser ligeiramente diferentes devido a aspectos exclusivos do ciclo de vida de desenvolvimento de software de cada organização. Esta página fornece informações sobre as seguintes abordagens para CI/CD no Databricks e prós e contras para cada abordagem:

Para obter uma visão geral de CI/CD para projetos de machine learning no Azure Databricks, veja como o Databricks dá suporte a CI/CD para machine learning?.

Pacotes de ativos do Databricks (recomendado)

Os Pacotes de Ativos do Databricks são a abordagem recomendada para CI/CD no Databricks. Use pacotes de ativos do Databricks para descrever recursos do Databricks, como trabalhos e pipelines 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 ser controlados pela origem e você pode usar a automação de CI/CD externa, como o Github Actions, para disparar implantações.

Vantagens Desvantagens
  • Inclui muitos recursos, como modelos de pacote personalizados, para impor consistência e práticas recomendadas em toda a sua organização.
  • Suporte abrangente para implantar os arquivos de código e a configuração para muitos recursos do Databricks.
  • Algum conhecimento da sintaxe de configuração do pacote é necessário para criar um pacote.
  • Não há nenhuma garantia de que a pasta de implantação do pacote corresponda a uma confirmação remota do Git. A pasta de pacotes de produção pode ser editada acidentalmente no ambiente de trabalho.
  • Exige pipelines externos de CI/CD, como o GitHub Actions, para disparar uma implantação no momento do merge.

Pasta Git de produção

Se você ainda não estiver pronto para adotar pacotes de ativos do Databricks, mas quiser que seu código seja controlado pela origem, você poderá configurar uma pasta Git de produção. Em seguida, use ferramentas externas de CI/CD, como o GitHub Actions, para efetuar pull da pasta Git no momento do merge. Opcionalmente, quando você não tiver acesso a pipelines externos de CI/CD, crie um trabalho agendado para efetuar pull para uma pasta Git no workspace.

Vantagens Desvantagens
  • Dá suporte à implantação simples e leve para equipes que não adotaram pacotes de ativos do Databricks.
  • Dá suporte a CI/CD para espaços de trabalho que usam orquestradores externos, como o Airflow.
  • A pasta git de produção pode ser editada acidentalmente.
  • Somente os arquivos de código, como notebooks e rascunhos de painel, estão no controle do código-fonte. As configurações para trabalhos que executam ativos na pasta Git e configurações para painéis de publicação não estão no controle do código-fonte.
  • Exige pipelines externos de CI/CD, como o Github Actions, para disparar implantações no momento do merge.

Git com trabalhos

Se você precisar apenas de CI/CD para trabalhos, o Git com trabalhos permitirá que você configure alguns tipos de trabalho para usar um repositório Git remoto como a origem. Quando uma execução de trabalho começa, o Databricks faz um commit de instantâneo do repositório remoto e garante que todo o trabalho seja executado na mesma versão do código.

Vantagens Desvantagens
  • Leve e pode ser criado inteiramente na interface do usuário.
  • Não exige pipelines externos de CI/CD, como o GitHub Actions, para executar o código mais recente.
  • Garante que os trabalhos de produção executem código remoto sem edições locais, impedindo alterações não intencionais em seu trabalho de produção.
  • Só dá suporte a tarefas de trabalho limitadas.
  • Somente os arquivos de código, como notebooks e outros arquivos, estão no controle do código-fonte. As configurações de trabalho, como sequências de tarefas, computação e agendamentos, não são controladas pelo código-fonte, tornando essa abordagem menos adequada para implantações de vários ambientes e entre workspaces.
  • Requer uma conexão Git em runtime. Um trabalho falhará se a conexão Git for interrompida.

Outras recomendações de CI/CD

Independentemente da abordagem de CI/CD escolhida, use a federação de identidade de carga de trabalho para autenticação de CI/CD. A federação de identidade de carga de trabalho elimina a necessidade de segredos do Databricks, o que torna a maneira mais segura de se autenticar no Databricks. Consulte Autenticar o acesso ao Azure Databricks usando a federação de token OAuth.

O Databricks também recomenda que você use o provedor Terraform do Databricks para gerenciar seus workspaces do Databricks e a infraestrutura de nuvem associada.

Para outras recomendações de CI/CD, consulte as práticas recomendadas e os fluxos de trabalho de CI/CD recomendados no Databricks.

Para obter mais informações sobre como gerenciar o ciclo de vida de ativos e dados do Azure Databricks, consulte a documentação a seguir sobre CI/CD e ferramentas de pipeline de dados.

Área Use essas ferramentas quando quiser...
Pacotes de ativos do Databricks Defina, implante e execute programaticamente Lakeflow Jobs, Lakeflow Declarative Pipelines e MLOps Stacks utilizando as melhores práticas e os fluxos de trabalho de CI/CD.
Provedor do Terraform do Databricks Provisione e gerencie os workspaces e a infraestrutura do Databricks usando o Terraform.
Fluxos de trabalho de CI/CD com o Git e as pastas Git do Databricks Use pastas GitHub e Databricks Git para controle do código-fonte e fluxos de trabalho de CI/CD.
Autentique-se com o Azure DevOps no Azure Databricks Autenticar com o Azure DevOps.
Usar uma entidade de serviço do Microsoft Entra para automação com pastas do Git no 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 Desenvolva um pipeline de CI/CD para o Azure Databricks que usa o Azure DevOps.
Ações do GitHub Inclua uma ação do GitHub desenvolvida para o Azure Databricks em seu fluxo de trabalho de CI/CD.
CI/CD com Jenkins no Azure Databricks Desenvolva um pipeline de CI/CD para o Azure Databricks que usa o Jenkins.
Orquestrar tarefas do Lakeflow com o Apache Airflow Gerenciar e agendar um pipeline de dados que usa o Apache Airflow.
Entidades de serviço para CI/CD Use entidades de serviço, em vez de usuários, com sistemas de CI/CD.