Pular para o conteúdo principal

conceitos-chave em Databricks Apps

Este artigo apresenta os principais conceitos por trás do Databricks Apps, incluindo como os aplicativos são estruturados, como gerenciam dependências e estado, como as permissões funcionam e como os aplicativos interagem com o recurso da plataforma. A compreensão desses conceitos ajuda a desenvolver, implantar e gerenciar aplicativos em seu site workspace.

Aplicativo

Um aplicativo Databricks é um aplicativo da Web que é executado como um serviço em contêiner na plataforma Databricks serverless . Os desenvolvedores usam estruturas compatíveis, como Streamlit, Dash ou Gradio, para criar aplicativos que fornecem dados interativos ou experiências AI em um Databricks workspace.

Cada aplicativo inclui sua própria configuração, identidade e ambiente de execução isolado. Como os aplicativos pertencem a um workspace específico, eles podem acessar workspace-level recurso como SQL warehouse e account-level recurso como Unity Catalog. Os desenvolvedores também podem optar por compartilhar aplicativos com usuários fora do site workspace, mas dentro do mesmo site Databricks account.

Embora o contêiner do aplicativo seja executado na infraestrutura Databricks serverless , o próprio aplicativo pode se conectar tanto ao recurso serverless quanto ao recurso nãoserverless. Conceitualmente, um aplicativo atua como um serviço de plano de controle que hospeda uma interface de usuário da Web e acessa o serviço de plano de dados disponível Databricks. Para obter mais informações, consulte a visão geral da arquiteturaDatabricks.

Para iniciar e gerenciar aplicativos, acesse a seção Apps na interface do usuário workspace.

padrão

Um padrão de aplicativo é um andaime pré-construído que ajuda os desenvolvedores a começar a criar aplicativos rapidamente usando uma estrutura compatível. Cada padrão inclui uma estrutura básica de arquivos, um manifesto app.yaml, um arquivo requirements.txt e um exemplo de código-fonte.

O arquivo app.yaml define o comando para executar o aplicativo (por exemplo, streamlit run <app-name> para um aplicativo Streamlit), configura a variável de ambiente local e declara qualquer recurso necessário. O arquivo requirements.txt lista o pacote Python adicional a ser instalado com o pip, juntamente com o ambiente do sistema default e o pacote pré-instalado. Para obter mais informações, consulte Definir variável de ambiente em um aplicativo Databricks.

Os desenvolvedores podem gerar um novo aplicativo a partir de um padrão usando a interface do usuário Databricks ou CLI.

Ambiente do sistema e pacote

Databricks Execução de aplicativos em um ambiente de sistema pré-configurado gerenciar por Databricks. Para obter detalhes, consulte Ambiente do sistema do Databricks Apps.

Para adicionar um pacote Python adicional, defina-o no arquivo requirements.txt incluído em seu aplicativo padrão. Durante a implementação, o site Databricks instala esses pacotes no ambiente de tempo de execução isolado do aplicativo. Se o site requirements.txt incluir um pacote que já esteja pré-instalado, a versão especificada substituirá a versão default. Consulte gerenciar dependências para um aplicativo Databricks.

Cada aplicativo tem seu próprio ambiente isolado para evitar conflitos de dependência entre aplicativos. Para garantir a consistência entre os ambientes, o senhor pode pin versões específicas do pacote em requirements.txt.

Recurso de aplicativo

Os recursos do aplicativo são Databricks- serviço nativo do qual um aplicativo depende, como SQL warehouse, endpoint de modelo de serviço, trabalho, segredos ou volumes. Você declara essas dependências no manifesto databricks.yml usando o campo resources. Databricks suporta os seguintes tipos de recurso:

  • Armazém SQL
  • Job
  • Modelo de ponto de extremidade de serviço
  • Espaço Genie
  • Segredo
  • Volume

Para acessar Databricks serviços que ainda não têm um tipo de recurso compatível, use um segredo do Unity Catalog-gerenciar para injetar credenciais com segurança. Veja Gerenciamento secreto.

Há duas etapas para configurar o recurso de aplicativo:

  • Declaração (desenvolvimento) - Declare cada recurso necessário no manifesto databricks.yml. Isso define de quais recursos o aplicativo precisa e quais permissões ele requer.
  • Configuração (implantação) - Durante a implantação, use a UI do Databricks Apps para configurar o recurso declarado com instâncias reais específicas do workspace(por exemplo, selecionando um SQL warehouse específico).

Essa separação entre declaração e configuração permite que os aplicativos sejam portáteis entre ambientes. Por exemplo, o senhor pode implantar o mesmo código de aplicativo em um site de desenvolvimento workspace e vinculá-lo a um site SQL warehouse. Na produção, você pode reutilizar o código e configurar um depósito diferente sem fazer alterações no código. Para dar suporte a isso, evite codificar IDs de recurso ou valores específicos de ambiente em seu aplicativo.

O Databricks impõe o acesso com privilégios mínimos. Os aplicativos devem usar os recursos existentes e não podem criar novos. Durante a implementação, os administradores do workspace revisam e aprovam o acesso solicitado pelo aplicativo ao recurso. A entidade de serviço do aplicativo recebe as permissões necessárias, e o desenvolvedor do aplicativo deve ter permissão para concedê-las.

Para saber mais, consulte Adicionar recurso a um aplicativo Databricks.

Status do aplicativo

Um aplicativo pode ter um dos seguintes status: Executado , Parado , Implantado ou Falhado .

  • Em execução - O aplicativo está ativo e acessível. Databricks contas para o compute recurso usado enquanto o aplicativo está em execução.
  • Interrompido - O aplicativo não está acessível e não incorre em nenhum custo. O Databricks preserva a configuração e o ambiente do aplicativo, para que o senhor possa reiniciá-lo sem precisar reconfigurá-lo.
  • implantado - O aplicativo está sendo iniciado. Ainda não está acessível e não há cobranças durante esse estágio.
  • Falha - O aplicativo falhou ao iniciar ou parou inesperadamente. É inacessível e não incorre em cobranças. O senhor pode acessar view logs para solucionar problemas e reiniciar o aplicativo assim que o problema for resolvido.

Estado do aplicativo

O estado do aplicativo inclui todos os dados ou contexto que o aplicativo precisa para persistir nas sessões ou interações do usuário. Os aplicativos não preservam o estado na memória após a reinicialização. Todos os dados mantidos na memória são perdidos quando o aplicativo é desligado.

Para manter o estado entre sessões ou reinicializações, os desenvolvedores devem armazená-lo externamente. Por exemplo, um aplicativo pode manter o estado usando Databricks SQL (como Delta tables), workspace files ou Unity Catalog volumes. Casos de uso comuns incluem armazenar em cache os resultados da consulta, salvar as preferências do usuário ou registrar as ações do usuário em todas as sessões.

Autenticação e autorização de aplicativos

O Databricks Apps usa o OAuth 2.0 para autenticação e controle de acesso. Cada aplicativo tem duas identidades complementares que determinam como ele se autentica e autoriza o acesso ao recurso Databricks: autorização do aplicativo e autorização do usuário .

  • Autorização de aplicativos - a Databricks cria automaticamente uma entidade de serviço para cada aplicativo. Essa entidade de serviço atua como a identidade do aplicativo e recebe permissões do desenvolvedor do aplicativo. Todos os usuários do aplicativo compartilham essa identidade e têm acesso ao mesmo conjunto de permissões. Esse modelo é útil para operações que não dependem do contexto do usuário individual, como registro ou ações no nível do sistema.

  • Autorização do usuário - Esse modelo usa a identidade do usuário do aplicativo para autenticar e autorizar o acesso. Os usuários devem pertencer ao site Databricks account onde o aplicativo está implantado. Depois de fazer login por meio do single sign-on (SSO), o aplicativo pode usar as credenciais do usuário para acessar o recurso governado como um SQL warehouse. Isso permite que o aplicativo respeite as permissões refinadas gerenciadas por Unity Catalog sem conceder essas permissões à entidade de serviço do aplicativo.

Os aplicativos solicitam escopos OAuth específicos em seu manifesto para controlar quais APIs e recursos eles podem acessar. Esse modelo flexível oferece suporte à segurança de nível corporativo e permite um controle de acesso refinado.

Para obter mais informações, consulte Configurar autorização em um aplicativo Databricks.

Usuários do aplicativo

Após a implantação, os desenvolvedores de aplicativos podem compartilhar um aplicativo com usuários ou grupos concedendo a permissão CAN_USE ou CAN_MANAGE na instância do aplicativo. Os usuários não precisam pertencer ao mesmo workspace, mas devem fazer parte do mesmo Databricks account. Para compartilhar com usuários externos, primeiro sincronize-os com o site account usando seu provedor de identidade. Para obter mais informações, consulte Sincronizar usuários e grupos do seu provedor de identidade usando SCIM.

O senhor também pode distribuir o mesmo aplicativo em ambientes de desenvolvimento, preparação e produção usando o pipeline CI/CD e a infraestrutura como código. A interface de usuário centralizada de aplicativos ajuda os usuários a descobrir e iniciar aplicativos que estão autorizados a usar.