Faculdade De 2 Anos Na Area Da Saude - Estudantes de cursos na área da saúde iniciam estágio em hospitais de ...
Estudantes de cursos na área da saúde iniciam estágio em hospitais de ...

Tecnologias serverless para APIs leves

A gente sempre superprojetava. Criava um servidor EC2, configurava balanceador, monitoramento, scaling automático. Para uma API que respondia cinco requisições por minuto. Funcionava, mas custava tempo e dinheiro à toa. O passo a passo real: comece com o API Gateway da AWS. Crie um resource, adicione um método POST ou GET, configure uma integração Lambda. Pronto. Você não precisa de instância nenhuma rodando 24 horas. Paga por milissegundo de execução e por chamada. Se não tiver tráfego, a conta é centavos.

Eu já fiz isso rodando uma API de webhook que processava notificações de pagamento. No início, sem usuário algum. A conta mensal ficou em R$ 1,20. Quando o tráfego cresceu e passou de mil chamadas por dia, aí sim eu pensei em migrar para algo mais robusto. Mas por seis meses, serverless resolveu.

Vantagens e limitações práticas

O custo é baixo para tráfego intermitente. O cold start pode ser problema. Minha API tinha latência de 200ms em média, mas às vezes, quando o Lambda estava "frio", ia para 800ms ou mais. Eu resolvi com provisioned concurrency, mas aí o custo sobe. É um trade-off real. Não adianta usar serverless para processamento pesado. Se sua lógica leva mais de 15 segundos, você bate no timeout. Além disso, debugging é diferente. Você não tem acesso ao servidor. Usa CloudWatch Logs, X-Ray para tracing. Aprende a viver com isso.

Se precisar de conexões persistentes, websocket, ou streaming, serverless puro não serve. Aí volta para container ou instância convencional. Nada contra a abordagem, mas escolher a ferramenta errada custa mais caro do que começar simples.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Quais serviços usar

AWS Lambda com API Gateway é o básico. Azure Functions com HTTP trigger também funciona bem. Google Cloud Functions tem limite de 1 segundo de resposta para a versão gen1, a gen2 melhora isso. Escolha conforme o ecossistema que sua empresa já usa. Para autenticação, use Cognito na AWS ou Auth0. Não implemente JWT do zero. Já vi gente fazendo token validation caseiro e esquecendo de verificar o expiry em alguns caminhos. Um minuto de configuração com serviço gerenciado evita dor de cabeça.

Para banco de dados, conecte direto. Lambda fala com RDS, DynamoDB, ou Aurora Serverless. Eu tinha um projeto que usava Aurora PostgreSQL em modo serverless. Escalava de zero para dez conexões em segundos. Custava mais que DynamoDB, mas a migração de schema era trivial porque já tínhamos o banco rodando lá.

Quando não usar

Serviços que precisam de inicialização longa. Modelos de ML que carregam pesos na memória. Aplicações stateful sem forma fácil de externalizar o estado. Nesses casos, container com autoscaling é mais adequado. ECS Fargate, Cloud Run, Azure Container Apps. Você ainda escala sob demanda, mas não paga pelo cold start repetido. Se o time não tem experiência com CI/CD para serverless, o deploy vira caos. Cada mudança de variável de ambiente, cada atualização de camada, precisa de pipeline. Sem isso, você acaba fazendo deploy manual e esquece qual versão está no ar. Configure GitHub Actions ou CodePipeline desde o início.

Minha recomendação prática

Comece pequeno. API simples, uma função, um gateway. Valide se a arquitetura faz sentido antes de adicionar camadas. Se o tráfego crescer e o cold start estiver incomodando, aí sim avalie provisioned concurrency ou migração para container. Não adianta arquitetar para 100 mil requisições por segundo se hoje você tem dez. O que funciona na prática é a simplicidade inicial com saída planejada. Serverless não é bala de prata. É uma opção válida para cenários específicos. Conheço gente que migrou depois de um ano porque a conta havia subido mais do que o esperado. Conheço outro que manteve e nunca teve problema. A diferença foi o monitoramento. Quem não monitora, descobre tarde.