Pular para o conteúdo
Backend

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.