Quando Usar Serverless: Guia de Functions
Quando serverless é ideal e quando servidor tradicional é melhor.
Por que isso é importante
Quando Usar Serverless: Guia de Functions. Quando serverless é ideal e quando servidor tradicional é melhor.
Quando SIM usar Serverless
Traffic é esporádico e imprevisível
Se você tem picos pontuais (webhooks, cron jobs, eventos assíncronos), serverless escala de zero a milhões automático. Servidor 24/7 desperdiça dinheiro.
Você quer zero gerenciamento de infra
Deploy em Lambda/Vercel Functions é código + configuração mínima. Sem servidor pra patchear, sem load balancer pra configurar. Ideal pra times pequenos.
App tem partes independentes e isoladas
Processamento de imagens, envio de emails, webhooks externos. Cada function faz uma coisa. Isolamento facilita debug e deploy independente.
Você está construindo edge functions
Personalização por região, A/B testing, redirects inteligentes. Edge functions rodam próximo ao usuário. Latência mínima sem infra global.
Traffic é consistentemente baixo
Até 1M requests/mês, free tier de Lambda/Vercel cobre. Se você não tem traffic significativo, serverless é basicamente grátis vs servidor 24/7.
Quando NÃO usar Serverless
App precisa de latência consistente baixa
Cold start pode adicionar 1-3 segundos. Se você tem SLA de <100ms, serverless mata performance. APIs de alta frequência sofrem.
Workload é constante e previsível
Se você processa 1000 req/s 24/7, servidor dedicado sai mais barato. Serverless cobra por execução, custo linear. Servidor tem custo fixo.
Você precisa de state local ou conexões persistentes
WebSockets, conexões DB pooling, cache em memória. Functions são stateless. Cada invocação é ambiente limpo. Não dá pra manter estado entre requests.
Processamento leva mais de 15 minutos
Lambda tem timeout de 15min máximo. Se você processa video, treina ML model ou faz ETL pesado, precisa de servidor ou serviço especializado.
Alternativas por Caso de Uso
Containers com auto-scaling (Fargate, Cloud Run)
Você tem controle de ambiente completo mas escala automático. Sem cold start severo. Ideal pra APIs que precisam de libs específicas.
VPS tradicional (DigitalOcean, Hetzner)
Custo fixo baixo, controle total. Ideal pra workloads constantes. Você gerencia tudo mas economiza em escala.
Background job services (Inngest, Trigger.dev)
Pra jobs assíncronos pesados, serviços especializados têm retry logic, monitoring e scheduling built-in. Melhor que Lambda raw.
Framework de Decisão
Checklist pra usar Serverless
- Traffic é esporádico ou tem picos imprevisíveis?
- Workloads duram menos de 10 minutos?
- Cold start de 1-2s é aceitável?
- Functions são stateless e independentes?
- Time quer zero gerenciamento de infra?
- Traffic é baixo (<10M req/mês)?
4+ sim: serverless é ideal. 2-3: considere containers com autoscaling. 0-1: servidor tradicional é mais simples.
Hybrid é Válido
Não é tudo ou nada. Core API em servidor, webhooks e cron jobs em Lambda. Processamento pesado em worker dedicado. Combine conforme necessidade de cada parte.
Perguntas frequentes
Quando SIM usar Serverless
Se você tem picos pontuais (webhooks, cron jobs, eventos assíncronos), serverless escala de zero a milhões automático. Servidor 24/7 desperdiça dinheiro. Deploy em Lambda/Vercel Functions é código + configuração mínima. Sem servidor pra patchear, sem load balancer pra configurar. Ideal pra times pequenos. Processamento de imagens, envio de emails, webhooks externos. Cada function faz uma coisa. Isolamento facilita debug e deploy independente.
Quando NÃO usar Serverless
Cold start pode adicionar 1-3 segundos. Se você tem SLA de <100ms, serverless mata performance. APIs de alta frequência sofrem. Se você processa 1000 req/s 24/7, servidor dedicado sai mais barato. Serverless cobra por execução, custo linear. Servidor tem custo fixo. WebSockets, conexões DB pooling, cache em memória. Functions são stateless. Cada invocação é ambiente limpo. Não dá pra manter estado entre requests.