Article image
Paulo Júnior
Paulo Júnior24/06/2026 17:53
Share

Como o uso estratégico de Rust reduziu nossos custos na AWS em 40%

  • #AWS
  • #Rust

Como alguém que já ocupou a cadeira de CTO e hoje atua focado inteiramente na arquitetura de sistemas distribuídos, desenvolvi um ceticismo saudável em relação a "hypes" tecnológicos. A decisão de adotar uma nova linguagem ou paradigma em um ambiente de produção nunca deve ser motivada por tendências do Twitter, mas sim por uma métrica implacável: o Retorno sobre o Investimento (ROI) e a resolução de gargalos reais do negócio.

Recentemente, enfrentamos um desafio clássico de escalabilidade em um dos nossos serviços críticos de processamento de dados.

O Problema: A armadilha do escalonamento horizontal ineficiente Tínhamos um microsserviço legado em Node.js (e parcialmente em Python) responsável por transformar grandes volumes de payloads JSON em tempo real. Com o crescimento da base de clientes, o uso de memória tornou-se imprevisível. As pausas do Garbage Collector (GC) causavam picos de latência que afetavam os SLAs estabelecidos.

A "solução" padrão de mercado seria jogar mais dinheiro no problema: aumentar as instâncias do AWS ECS/Fargate e escalar horizontalmente. Porém, em uma economia que exige eficiência, inflar a fatura da AWS não é engenharia; é negligência arquitetural.

A Solução: Rust como ferramenta de previsibilidade, não apenas velocidade Decidimos reescrever apenas esse componente específico em Rust. O objetivo não era buscar microssegundos de performance por puro ego técnico, mas sim alcançar previsibilidade de recursos e segurança de memória.

Por não possuir um Garbage Collector e gerenciar a alocação de memória através do seu modelo de Ownership, Rust permitiu-nos operar com um footprint de memória incrivelmente baixo e constante.

Os resultados técnicos e de negócios após a substituição foram claros:

  1. Redução de 90% no consumo de RAM: Passamos de containers super-provisionados para instâncias mínimas.
  2. Latência linear: O percentil 99 (p99) da nossa latência estabilizou, eliminando os spikes causados pelo GC.
  3. Corte direto na AWS: A redução no consumo de instâncias EC2 e Fargate resultou em uma economia de aproximadamente 40% nos custos operacionais daquele cluster.

E o mais importante: evitamos o over-engineering. Não reescrevemos o monolito inteiro. Identificamos o gargalo, aplicamos a ferramenta certa (Rust) e colhemos os frutos financeiros.

Construindo ferramentas para nós mesmos (Build in Public) Curiosamente, durante o processo de profiling de latência entre as APIs e o cliente, deparei-me com uma frustração contínua: inspecionar payloads e métricas de desempenho diretamente no navegador era um processo ineficiente com as ferramentas padrão.

Foi assim que decidi resolver o meu próprio problema criando uma DevTool. Estou atualmente desenvolvendo uma Extensão para o Chrome focada em dar aos engenheiros de backend uma observabilidade mais profunda e tática no client-side.

Como acredito firmemente no aprendizado colaborativo, estou adotando a abordagem Build in Public. Nas próximas semanas, compartilharei aqui os desafios técnicos da construção dessa extensão, desde a manipulação segura de APIs do navegador até a otimização de performance da ferramenta. O objetivo é que ela ajude outros desenvolvedores a economizarem horas de debugging, assim como tem me ajudado.

A senioridade na engenharia de software não está em usar a stack mais complexa possível, mas em saber exatamente onde aplicar a complexidade para gerar valor real para a empresa.

Se você atua com arquitetura de alta performance ou está lidando com desafios de otimização de custos na nuvem, adoraria ouvir a sua perspectiva nos comentários. Como vocês têm balanceado a modernização da stack técnica com a pressão por eficiência de custos?

Share
Comments (0)