Práticas recomendadas para aplicativos Databricks
Esta seção lista práticas recomendadas importantes para o desenvolvimento e a execução de aplicativos Databricks. Essas diretrizes se concentram nos requisitos de segurança, desempenho e plataforma.
-
Use o recurso Databricks -native para o processamento de dados. O aplicativo compute é otimizado para renderização da interface do usuário. Use Databricks SQL para consultas e conjunto de dados, LakeFlow Jobs para processamento de lotes e servindo modelo para cargas de trabalho de inferência AI.
-
Siga as práticas seguras de codificação . Parametrizar as consultas SQL para evitar ataques de injeção e aplicar diretrizes gerais de desenvolvimento seguro, como validação de entrada e tratamento de erros. Consulte a API de execução de instruções para obter métodos seguros de execução de consultas.
-
Implemente um tratamento de desligamento elegante . Seu aplicativo deve ser encerrado dentro de 15 segundos após receber um sinal
SIGTERM
, ou ele será encerrado à força comSIGKILL
. -
Evite operações privilegiadas . Os aplicativos são executados como usuários sem privilégios e não podem realizar ações que exijam permissões elevadas, como acesso root.
-
Compreender a rede gerenciada por plataforma . As solicitações são encaminhadas por meio de um proxy reverso, portanto, seu aplicativo não pode depender da origem das solicitações. O Databricks lida com o encerramento do TLS e exige que os aplicativos ofereçam suporte ao HTTP/2 cleartext (H2C). Não implemente o tratamento personalizado de TLS.
-
Vincule ao host e à porta corretos . Seu aplicativo deve escutar em
0.0.0.0
e usar a porta especificada na variável de ambienteDATABRICKS_APP_PORT
. Consulte variável de ambiente para obter detalhes. -
Minimize o tempo do contêiner startup . Manter a lógica de inicialização leve para reduzir a latência do cold-começar. Evite bloquear operações como instalações de grandes dependências ou chamadas externas para API durante startup. Carregue recursos pesados somente quando necessário.
-
registram em stdout e stderr . Databricks captura logs da saída padrão e da transmissão de erros. Use-os para todos os registros para garantir que logs seja visível na interface do usuário Databricks. Evite gravar logs em arquivos locais.
-
Lide com erros inesperados com elegância . Implemente o tratamento global de exceções para evitar falhas causadas por erros não detectados. Retorne respostas de erro HTTP adequadas sem expor rastreamentos de pilha ou dados confidenciais.
-
versões de dependência de pinos . Use números de versão exatos em seu arquivo
requirements.txt
para garantir ambientes consistentes em todas as compilações. Evite usar versões não fixadas ou mais recentes do pacote. -
Valide e limpe a entrada do usuário . Sempre valide os dados recebidos e higienize-os para evitar ataques de injeção ou entradas malformadas, mesmo em aplicativos voltados para o interior.
-
Use o cache na memória para operações caras . Armazene em cache os dados usados com frequência, como resultados de consultas ou respostas de API, para reduzir a latência e evitar o processamento redundante. Use
functools.lru_cache
,cachetools
, ou biblioteca semelhante, e escopo de caches com cuidado em aplicativos multiusuários.