Pular para o conteúdo principal

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 com SIGKILL.

  • 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 ambiente DATABRICKS_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.