Boas práticas
O que separa uma aplicação que dá trabalho de uma que roda sozinha.
Encerre com elegância
Quando a plataforma reinicia a aplicação, ela pede ao processo que termine. Tratar esse pedido evita perder trabalho em andamento.
process.on("SIGTERM", async () => {
console.log("Encerrando com cuidado…");
await servidor.close();
await banco.disconnect();
process.exit(0);
});Não guarde estado só na memória
Um reinício apaga tudo que estava em memória. Fila, sessão e cache importantes devem viver num banco ou no disco da aplicação.
Fixe a versão da linguagem quando tiver dependência compilada
Bibliotecas com código compilado dependem da versão exata do runtime. Deixando a versão em “mais recente”, o dia em que a plataforma promover uma versão nova é o dia em que a sua aplicação para de subir — sem você ter tocado em nada. Escolha uma versão fixa na aba Ambiente.
Log que serve para alguma coisa
- Uma linha quando a aplicação terminou de subir.
- Erros com contexto: o que estava sendo feito.
- Nada de imprimir objeto gigante a cada requisição.
- Nunca imprimir credencial.
Antes de publicar em produção
- Teste o pacote localmente com as mesmas variáveis de ambiente.
- Crie um snapshot antes de uma mudança grande.
- Publique fora do horário de pico do seu público.
- Acompanhe o console pelos primeiros minutos depois de publicar.
Continue lendo
Snapshots e backups
Como guardar uma cópia completa da aplicação e voltar atrás depois de um deploy ruim.
Console e logs
Onde ver o que a sua aplicação está imprimindo, em tempo real, e como usar isso para achar problemas.
Segurança
Como proteger a sua conta, suas aplicações e as credenciais dos seus projetos.