Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Esse recurso está em Beta. Para solicitar acesso, entre em contato com seu representante do Azure Databricks. Depois que o recurso estiver habilitado, os administradores do workspace poderão controlar o acesso a ele na página Visualizações . Consulte Gerenciar visualizações do Azure Databricks.
Esta página descreve como executar um aplicativo do Databricks em várias instâncias por trás de uma ÚNICA URL de aplicativo para maior disponibilidade e simultaneidade.
O dimensionamento horizontal distribui solicitações entre instâncias, de modo que uma única falha ou reinicialização não deixe o aplicativo offline. O custo de computação é dimensionado linearmente com o número de instâncias.
Os benefícios adicionais incluem:
- Afinidade de sessão: cada solicitação do mesmo usuário é encaminhada para a mesma instância, na medida do possível, para que um aplicativo possa manter dados temporários por usuário (por exemplo, um cache em memória) nessa instância. Também conhecidas como sticky sessions. Consulte afinidade de sessão.
- Implantações sem tempo de inatividade: o Azure Databricks implanta uma nova versão primeiro em uma instância de compilação e só atualiza as instâncias restantes depois que essa instância de compilação for bem-sucedida. As instâncias existentes continuam a atender ao tráfego por toda parte.
- Stable build caches: Azure Databricks preserva artefatos de implantação entre atualizações de computação (por exemplo, quando você altera o tamanho da instância ou contagem), para que o aplicativo não exija uma recompilação completa.
Requirements
Os seguintes requisitos se aplicam a todos os aplicativos horizontalmente dimensionados:
- Durante o período de Beta, seu aplicativo deve escutar em
0.0.0.0(não em127.0.0.1oulocalhost).
Criar um aplicativo horizontalmente dimensionado
Para criar um aplicativo com dimensionamento horizontal habilitado:
- No seu workspace do Azure Databricks, clique no seletor de aplicativos
e selecione Databricks Apps.
- Clique em + Criar aplicativo e, em seguida, clique em Criar um aplicativo personalizado.
- Insira um nome e configure o aplicativo conforme descrito em Criar um aplicativo personalizado do Databricks.
- Na etapa Configurar, selecioneHabilitar dimensionamento horizontal.
- Especifique o número de instâncias (1 a 5). Azure Databricks recomenda pelo menos 2 instâncias para disponibilidade.
- Clique em Criar aplicação.
Habilitar o dimensionamento horizontal para um aplicativo não afeta nenhum outro aplicativo no workspace.
Aplicativos recém-criados com escalonamento horizontal não incluem as bibliotecas Python pré-instaladas. Declare todas as dependências em requirements.txt ou pyproject.toml. Consulte Gerenciar dependências de um aplicativo do Databricks.
Converter um aplicativo padrão para usar o dimensionamento horizontal
Converta um aplicativo padrão existente em um aplicativo horizontalmente dimensionado da guia Configurações . A conversão não apresenta nenhum tempo de inatividade. Seu aplicativo padrão existente continua atendendo o tráfego até que a nova implantação horizontalmente dimensionada passe por verificações de integridade, momento em que Azure Databricks reduz o tráfego.
A conversão é reversível. Você pode converter um aplicativo horizontalmente dimensionado de volta em um aplicativo padrão na mesma guia Configurações .
Comportamento de conversão
O seguinte comportamento se aplica no momento da conversão:
- A contagem de instâncias é definida como 1. Após a conversão, você pode alterar a contagem (até 5). Consulte Gerenciar a contagem de instâncias.
- O aplicativo convertido continua usando as bibliotecas de Python pré-instaladas para que as dependências existentes continuem funcionando. Para executar em uma imagem de sistema operacional base limpa, opte por sair após a conversão. Consulte Desativar bibliotecas Python pré-instaladas para aplicativos do Databricks.
Testar a conversão
A conversão altera a imagem de runtime do aplicativo e o modelo de dimensionamento. Antes de converter um aplicativo de produção, valide a alteração em uma duplicata:
- Crie uma duplicata do aplicativo padrão que você deseja converter.
- Converta a duplicata usando as etapas a seguir.
- Verifique se o aplicativo funciona conforme o esperado na duplicata convertida. Verifique logs, tráfego e qualquer comportamento relacionado à afinidade de sessão.
- Converta a aplicação de produção após a validação.
Converter um aplicativo padrão
Para converter um aplicativo padrão em escala horizontal:
- No seu workspace do Azure Databricks, clique no seletor de aplicativos
e selecione Databricks Apps.
- Clique no nome do aplicativo que você deseja converter.
- Clique na guia Configurações .
- Em Computação, selecioneHabilitar dimensionamento horizontal. Azure Databricks define a contagem de instâncias como 1, o que é necessário no momento da conversão.
- Clique em Salvar.
Azure Databricks cria uma nova computação horizontalmente dimensionada e, em seguida, reimplanta seu aplicativo nele. O tempo total depende da duração do build do aplicativo. O aplicativo existente continua atendendo o tráfego por toda parte.
Depois que a conversão for concluída, você pode aumentar a escala ou desativar bibliotecas pré-instaladas.
Gerenciar a contagem de instâncias
Para alterar o número de instâncias de um aplicativo horizontalmente dimensionado:
- Na página de detalhes do aplicativo, clique em Editar.
- Na etapa Configurar , atualize o número de instâncias.
- Clique em Salvar.
O aplicativo continua a fornecer tráfego enquanto Azure Databricks aplica a alteração.
Afinidade de sessão
A afinidade de sessão roteia cada solicitação do mesmo usuário para a mesma instância sempre que possível. Um aplicativo pode usar esse roteamento para manter dados de curta duração por usuário (por exemplo, um cache na memória ou arquivos temporários no sistema de arquivos local) na instância que manipula a sessão desse usuário. A afinidade de sessão também é conhecida como sessões temporárias.
A afinidade de sessão é o melhor esforço. Não armazene nada no estado local da instância que você não possa reconstruir ou buscar de um repositório durável. Armazene quaisquer dados que precisem durar além de uma sessão em um armazenamento durável, como tabelas do Unity Catalog.
Você também pode persistir dados com o Lakebase.
Aplicativos baseados em navegador
A afinidade de sessão funciona automaticamente para aplicativos baseados no navegador. A primeira solicitação de um navegador é roteada para uma instância selecionada aleatoriamente, que define o __Host-databricks-app-router cookie. Solicitações subsequentes com esse cookie são direcionadas para a mesma instância.
Clientes de API
Para obter afinidade de sessão para clientes de API, inclua o __Host-databricks-app-router cookie em cada solicitação e defina-o como uma UUID gerada aleatoriamente. Todas as solicitações com o mesmo valor de cookie são encaminhadas para a mesma instância.
curl -X GET https://<your-app>.aws.databricksapps.com/api/endpoint \
-H "Authorization: Bearer YOUR_BEARER_TOKEN" \
-b "__Host-databricks-app-router=f8822466-3b1e-423a-988b-54c9e639c250"
Reatribuição da sessão
As sessões podem passar para uma instância diferente nos seguintes casos:
- Uma instância fica indisponível (por exemplo, durante a implantação ou uma falha).
- Você altera a contagem de instâncias.
- Azure Databricks reequilibra as sessões entre instâncias.
- Uma solicitação individual é encaminhada incorretamente (raro).
Limitações
As seguintes limitações se aplicam a aplicativos horizontalmente dimensionados:
- Cada workspace pode ter no máximo 5 aplicativos horizontalmente dimensionados. Entre em contato com seu representante Azure Databricks para aumentar esse limite.
- Cada aplicativo horizontalmente dimensionado pode ter no máximo 5 instâncias. Entre em contato com seu representante Azure Databricks para aumentar esse limite.
- A guia Logs mostra logs de uma única instância de cada vez. Para exibir logs em todas as instâncias, habilite a telemetria do aplicativo.