Compartilhar via


Modos de implantação do Pacote de Ativos do Databricks

Este artigo descreve a sintaxe dos modos de implantação do Pacote de Ativos do Databricks . Os pacotes permitem o gerenciamento programático de fluxos de trabalho do Azure Databricks. Veja o que são pacotes de ativos do Databricks?

Em fluxos de trabalho de CI/CD, os desenvolvedores normalmente codificam, testam, implantam e executam soluções em várias fases ou modos. Por exemplo, o conjunto mais simples de modos inclui um modo de desenvolvimento para validação de pré-produção, seguido por um modo de produção para entregas validadas. Os Pacotes de Ativos do Databricks fornecem uma coleção opcional de comportamentos padrão que correspondem a cada um desses modos. Para usar esses comportamentos para um destino específico, defina um mode ou configure presets para um destino no mapeamento de configuração targets. Para obter informações sobre targets, consulte Mapeamento de destinos de configuração de pacote.

Modo de desenvolvimento

Para implantar seu pacote no modo de desenvolvimento, primeiro adicione o mapeamento mode, definido como development, ao destino pretendido. Por exemplo, este destino chamado dev é tratado como um destino de desenvolvimento:

targets:
  dev:
    mode: development

Implantar um destino no modo de desenvolvimento executando o databricks bundle deploy -t <target-name> comando implementa os seguintes comportamentos, que podem ser personalizados usando predefinições:

  • Prefixa todos os recursos que não são implantados como arquivos ou notebooks com [dev ${workspace.current_user.short_name}] e marca cada trabalho e pipeline implantado com uma marca dev do Azure Databricks.
  • Marca todos os Pipelines Declarativos Lakeflow Spark implantados relacionados como development: true.
  • Permite o uso de --cluster-id <cluster-id> em chamadas relacionadas ao comando bundle deploy, que substitui toda e qualquer definição de cluster existente que já esteja especificada no arquivo de configuração do pacote relacionado. Em vez de usar --cluster-id <cluster-id> em chamadas relacionadas ao comando bundle deploy, você pode definir o mapeamento cluster_id aqui, ou como um mapeamento filho do mapeamento bundle, como a ID do cluster a ser usada.
  • Pausa todos os agendamentos e gatilhos em recursos implantados, como trabalhos ou monitores de qualidade. Retoma os agendamentos e gatilhos de um trabalho individual por meio da configuração de schedule.pause_status como UNPAUSED.
  • Permite execuções simultâneas em todos os trabalhos implantados para oferecer uma iteração mais rápida. Desabilita as execuções simultâneas de um trabalho individual por meio da configuração de max_concurrent_runs como 1.
  • Desabilita o bloqueio de implantação para oferecer uma iteração mais rápida. Esse bloqueio evita conflitos de implantação que provavelmente não ocorrerão no modo de desenvolvimento. Reabilita o bloqueio por meio da configuração de bundle.deployment.lock.enabled como true.

Modo de produção

Para implantar seu pacote no modo de produção, primeiro adicione o mapeamento mode, definido como production, ao destino pretendido. Por exemplo, este destino chamado prod é tratado como um destino de produção:

targets:
  prod:
    mode: production

Ao implantar um destino no modo de produção, com a execução do comando databricks bundle deploy -t <target-name>, os seguintes comportamentos são implementados:

  • Valida que todos os Lakeflow Pipelines Declarativos do Spark implementados e relacionados estão marcados como development: false.

  • Valida se o GIT branch atual é igual ao GIT branch especificado no destino. Especificar um GIT branch no destino é opcional e pode ser feito com uma propriedade git adicional da seguinte maneira:

    git:
      branch: main
    

    Essa validação pode ser substituída especificando --force durante a implantação.

  • O Databricks recomenda que você use entidades de serviço para implantações de produção. Você pode impor isso definindo run_as a uma entidade de serviço. Confira Entidades de serviço e Especificar uma identidade de execução para um fluxo de trabalho de Pacotes de Ativos do Databricks. Caso você não use entidades de serviço, observe os seguintes comportamentos adicionais:

    • Valida que os mapeamentos artifact_path, file_path, root_path ou state_path não são substituídos para um usuário específico.
    • Valida que os mapeamentos run_as e permissions são especificados para esclarecer quais identidades têm permissões específicas para implantações.
  • Ao contrário do comportamento anterior para definir o mapeamento de mode para development, definir o mapeamento de mode para production não permite substituir as definições de cluster existentes especificadas no arquivo de configuração do pacote relacionado, por exemplo, usando a opção --compute-id <cluster-id> ou o mapeamento de compute_id.

Predefinições personalizadas

Os Pacotes de Ativos do Databricks dão suporte a predefinições configuráveis para destinos, o que permite personalizar os comportamentos dos destinos. Essas predefinições disponíveis estão listadas nesta tabela:

Observação

A menos que uma exceção seja especificada na tabela abaixo, se ambas mode e presets estiverem definidas, as predefinições substituirão o comportamento do modo padrão e as configurações de recursos individuais substituirão as predefinições. Por exemplo, se a configuração max_concurrent_runs para um trabalho for 10, mas a predefinição jobs_max_concurrent_runs estiver definida como 20, o máximo de execuções simultâneas do trabalho será 10.

Predefinição Descrição
artifacts_dynamic_version Se você deve atualizar dinamicamente a versão dos whl artefatos durante a implantação. Os valores válidos são true ou false. Se a configuração de nível superior artifacts.dynamic_version for especificada, ela substituirá a configuração predefinida.
jobs_max_concurrent_runs O número máximo de execuções simultâneas permitidas para trabalhos.
name_prefix A cadeia de caracteres de prefixo a ser acrescentada aos nomes de recursos.
pipelines_development Se o pipeline está ou não no modo de desenvolvimento. Os valores válidos são true ou false.
source_linked_deployment Reservado para uso futuro. Se os recursos criados durante a implantação apontam para arquivos de origem no workspace em vez de suas cópias no workspace.
tags Um conjunto de rótulos key:value aplicável a todos os recursos que dão suporte a tags, que inclui trabalhos e experimentos. Os Pacotes de Ativos do Databricks não dão suporte a tags para o recurso schema.
trigger_pause_status Um status de pausa a ser aplicado a todos os gatilhos e programações. Os valores válidos são PAUSED ou UNPAUSED.
Se mode estiver definido como development, trigger_pause_status será sempre PAUSED.

O exemplo a seguir mostra uma configuração de predefinições personalizadas para o alvo chamado dev:

targets:
  dev:
    presets:
      name_prefix: 'testing_' # prefix all resource names with testing_
      pipelines_development: true # set development to true for pipelines
      trigger_pause_status: PAUSED # set pause_status to PAUSED for all triggers and schedules
      jobs_max_concurrent_runs: 10 # set max_concurrent runs to 10 for all jobs
      tags:
        department: finance