~/beer-and-code
~ / eventos / workshop-api-de-alta-escala-em-laravel $ _
Workshop Encerrado

Workshop: API de Alta Escala em Laravel

Workshop mão na massa de Danilo Sampaio (CTO da Gruva, CEO da Brain Code) e Lucas "Virgo" Souza construindo, ao vivo, uma API de encurtamento de URLs em Laravel — o clássico caso de uso que recebe porrada de requisição (todo clique no link curto é uma requisiç...

Ficha do evento
formato workshop
quando 18 Mai 2024
status encerrado

Rolou um workshop de mão na massa com o Danilo Sampaio e o Virgo construindo uma API de encurtador de URLs em Laravel do zero até uma infraestrutura de produção na AWS, testando ao vivo até onde ela aguenta antes de quebrar.

Destaques

  • Construção da API: login manual com Sanctum (token, sem Breezy porque é stateful/SPA), rota store autenticada na API e rota show no grupo web (porque quem acessa a URL curta é o navegador, não um cliente de API), validação com alpha_num, unique e max.
  • Provisionamento na AWS: RDS MySQL (db.t3.micro, ~US$30/mês) e ElastiCache Redis (0.5 GB), discussão sobre cota padrão de CPU da conta AWS (5, ampliada para 32 depois de pedido explicando o motivo) e a diferença de driver ao conectar em MySQL Aurora.
  • Teste de carga com JMeter em cenários crescentes: EC2 t2.micro com Nginx+PHP-FPM aguentando ~350 req/s numa rota estática, caindo para ~140-200 req/s ao bater no banco.
  • Cache com Redis usando Cache::rememberForever() na rota de redirect, comparado ao custo de uma query sem índice via EXPLAIN no MySQL — o ganho real de cache só aparece quando a query é pesada, não numa consulta já indexada.
  • Escala vertical extrema: instância c5a.8xlarge (32 vCPUs, 64 GB RAM) — e a pegadinha de que o Nginx/PHP-FPM default (pm.max_children=5) trava o servidor gargalando a CPU sem esgotar a RAM; ajuste manual de max_children (cálculo por RAM disponível / consumo médio por processo) e worker_connections do Nginx destravou o throughput.
  • Comparação Nginx vs Octane (RoadRunner) na mesma máquina parruda: Octane sustentando throughput muito maior e mais resiliente sob carga, chegando perto de 10 mil req/s antes de estabilizar (limite da infra, não da aplicação).
  • AWS Calculator ao vivo para estimar custo mensal de uma infra real trazida por um espectador, mostrando como super-dimensionamento (RDS grande demais) infla a conta de US$1.700 para US$482/mês só ajustando o tamanho do banco.
  • Introdução ao Datadog para APM/monitoramento (métricas de CPU, RDS, traces de request, captura de exceptions) como alternativa mais rápida de configurar do que Prometheus+Grafana na mão.
  • Fechamento com criação de um launch template (Octane + imagem AMI pronta) como base para o Auto Scaling Group e Load Balancer — gancho para a escala horizontal.

Profundidade técnica

A aula não fica no discurso de "Laravel escala" — ela mostra o gargalo acontecendo na tela (worker saturado, Can't assign requested address no Redis, 502 sob carga) e resolve em tempo real, incluindo o raciocínio de quando NÃO vale a pena aumentar hardware (o RDS não estava gargalando, o problema era processo insuficiente no Nginx). Trade-offs discutidos com honestidade: índice acelera leitura mas deixa insert mais lento; cache introduz risco de dado desatualizado e ainda depende de latência de rede até o serviço de Redis; FrankenPHP foi citado e propositalmente descartado por falta de maturidade em produção (sem integração comprovada com Datadog na época). A régua de profundidade vai de configuração de PHP-FPM até discussão de escala horizontal de Redis (master/replica, failover gerenciado pela AWS) e sharding de banco — reconhecendo que sharding não fazia sentido no volume de dados da demo, mas explicando o conceito para quando fizer sentido.

Faça parte do Clã

Se esse nível de profundidade — configurar PHP-FPM na unha, ler um EXPLAIN, decidir entre escala vertical e horizontal com dado na mão — é o que você quer no seu dia a dia, é exatamente esse o tipo de conteúdo, mentoria e comunidade que rola dentro do Clã Beer and Code. Lá você tem acesso a encontros como esse, discussão técnica direta com quem já levou aplicação Laravel para escala real em produção, e uma rede de devs que não fica na teoria. Bora entrar.

▪ Clã Beer and Code
Faça parte do Clã. Construa o que importa.

Engenharia de IA virou profissão, e se aprende construindo, não assistindo. O Clã Beer and Code é o ambiente onde isso acontece ao vivo, toda semana: RAG, agentes, observabilidade e LLMOps em projetos reais, ao lado de quem já está em produção. É pago, é assinatura, e é exatamente o ambiente que estes encontros dão uma amostra.

Entrar no Clã
tocando