Written by: Elton Peixoto, Diogo Dantas.

O Nubank Engineering Meetup #10 lançou holofotes sobre uma das áreas mais críticas e, ao mesmo tempo, pouco discutidas da infraestrutura moderna em nuvem: a gestão de limites para garantir um crescimento sustentável.

Realizado em São Paulo, o evento reuniu entusiastas de tecnologia, especialistas em nuvem e engenheiros de software de todos os níveis de senioridade, todos interessados em descobrir como o Nubank escala sua plataforma financeira global sem sacrificar desempenho ou confiabilidade.

De estratégias de gerenciamento de capacidade na AWS a orquestração de Kubernetes e práticas de sharding, o meetup ofereceu um mergulho profundo nas abordagens que mantêm os sistemas do Nubank ágeis e com custos sob controle.

Se você está buscando proteger sua arquitetura de nuvem para o futuro, aproveitar implantações multi-tenant ou simplesmente aprimorar técnicas de observabilidade e otimização de custos, continue a leitura para conhecer as principais lições e soluções de ponta apresentadas durante a sessão.

A escala do Nubank

O Nubank já atende mais de 110 milhões de clientes no Brasil, Colômbia e México, o que nos coloca em destaque no cenário global de serviços financeiros digitais. Para dar suporte a essa enorme base de usuários, nossa infraestrutura precisa lidar com dezenas de milhares de pods, bilhões de mensagens no Kafka e uma rede em constante evolução de microsserviços.

Esse nível de escala não acontece da noite para o dia. Lá atrás, nossas equipes de engenharia contavam fortemente com a AWS para computação, armazenamento e rede. À medida que nossa base de clientes crescia, nossa dependência de uma infraestrutura em nuvem escalável também aumentava para acomodar picos de transações de usuários.

Hoje, orquestramos mais de 4.000 microsserviços com Kubernetes, processamos 72 bilhões de eventos diários via Kafka e rotineiramente lidamos com milhões de requisições por segundo. A cada dia, monitoramos cuidadosamente o uso de recursos para garantir que estejamos não apenas preparados para o próximo salto de crescimento, mas também otimizando custos a longo prazo.

Conheça nossas oportunidades

De “Pangeia” às arquiteturas multi-contas

Quando o Nubank era menor, nossa infraestrutura ficava concentrada em algumas contas enormes na AWS. Internamente, chamávamos isso de “Pangeia”, evocando a imagem de um supercontinente único. Com o tempo, porém, encontramos diversos problemas.

Um incidente pequeno podia desencadear uma grande indisponibilidade, pois tudo estava vinculado a um conjunto limitado de contas. Além disso, isolar ambientes como staging e produção ficava cada vez mais complicado, o que atrasava implantações.

Em resposta, migramos para uma estratégia de múltiplas contas, que chamamos de “deriva continental”. Cada domínio ou equipe agora possui sua própria conta na AWS, facilitando o isolamento e a gestão de serviços de forma mais granular.

Essa mudança reduziu drasticamente o que chamamos de “raio de explosão” — o risco de que um problema pontual se transforme em uma falha de grande escala. Também deu a cada domínio a liberdade de evoluir de forma independente, melhorando muito a confiabilidade e o time-to-market.

Sharding de tudo: Datomic, Kafka e mais

Com várias contas AWS fornecendo a camada de base, também implementamos um modelo de sharding em nossos dados e serviços. Normalmente, associamos sharding a bancos de dados, em que dividimos grandes conjuntos de dados em partes menores e mais gerenciáveis.

O Nubank levou essa ideia além, aplicando sharding não apenas em bases de dados, mas também em serviços-chave e até mesmo em clusters inteiros de microsserviços.

Nosso banco de dados principal, o Datomic, é executado em múltiplos transactors dentro do Kubernetes, cada um lidando com um subconjunto de dados. O mesmo padrão se aplica ao Kafka: mantemos vários clusters para diferentes shards, distribuindo a carga de mensagens.

Essa abordagem atende a dois objetivos principais: primeiro, evita que problemas localizados se espalhem, pois cada shard é relativamente independente; segundo, permite prever capacidade de forma mais precisa em unidades menores. Ao analisar o uso em um shard, conseguimos projetar com mais clareza o comportamento dos outros.

Gestão de capacidade e limites da AWS

Apesar da noção popular de que “a nuvem é infinita”, todo provedor de nuvem impõe limites ou cotas — que vão desde balanceadores de carga e instâncias EC2 até capacidade total de armazenamento. Na escala do Nubank, essas cotas podem se tornar gargalos se não forem monitoradas com cuidado.

Gerenciar capacidade é uma responsabilidade compartilhada em nossas equipes de engenharia. Qualquer pessoa que crie um novo microsserviço deve considerar quantos núcleos de CPU, quanto de memória e quais tipos de recursos AWS serão necessários.

Embora a equipe de Infraestrutura forneça boas práticas e monitoramento automatizado, as equipes de cada domínio participam ativamente da análise de custos e capacidade. Isso evita picos inesperados no consumo de recursos e garante que cada serviço seja dimensionado corretamente para sua carga de trabalho.

Detecção precoce de problemas: o AWS Limit Smoke Detector

Uma das soluções internas mais relevantes que desenvolvemos é o AWS Limit Smoke Detector. Na prática, trata-se de um pipeline de ETL que coleta dados de uso, cotas e custos de todas as contas AWS do Nubank e agrega essas informações no BigQuery. Ao comparar continuamente o uso real com as cotas atribuídas, a ferramenta identifica possíveis problemas muito antes de atingirmos um limite crítico.

Esse pipeline se baseia em múltiplas fontes da AWS, incluindo Trusted Advisor, Service Quotas e CloudWatch, além de chamadas diretas de API quando necessário. Ele gera uma visão histórica do uso, permitindo que façamos previsões de quando poderemos chegar a determinado limite.

Quando o uso em uma conta cresce rapidamente, o Smoke Detector emite alertas via dashboards e mensagens automáticas, nos impulsionando a agir — seja solicitando aumento de cotas ou otimizando o consumo de recursos do serviço em questão.

Essa postura proativa garante que chegar a um limite da AWS nunca resulte em um grande incidente de produto. Também fornece ao nosso time de Gestão de Custos dados valiosos sobre onde o orçamento pode precisar de ajustes. Em vez de receber uma fatura surpresa ou encarar uma escassez de última hora, lidamos com possíveis excessos com bastante antecedência.

Multi-tenant vs. Single-tenant: uma abordagem equilibrada

Durante o meetup, discutimos como a arquitetura do Nubank mistura os modelos multi-tenant e single-tenant. Plataformas multi-tenant permitem que diversas equipes internas compartilhem a mesma infraestrutura — por exemplo, múltiplos microsserviços podem reutilizar o mesmo cluster de Kubernetes ou os mesmos pools de brokers Kafka. Esse compartilhamento pode levar a uma utilização de recursos mais eficiente e, muitas vezes, reduz a sobrecarga operacional.

Em determinados cenários, porém, optamos por um modelo single-tenant. Algumas cargas de trabalho críticas para o negócio, especialmente aquelas que exigem performance ou segurança extremamente específicas, podem precisar de seu próprio cluster ou ambiente dedicado.

Embora o single-tenant possa ser mais custoso, ele oferece controle e isolamento rígidos, adequados para sistemas com requisitos sensíveis de dados ou tráfego muito alto. Equilibrar esses dois modelos — e definir estrategicamente quais serviços ficam em cada um — é um processo contínuo que mantém nossa plataforma flexível e com custos sob controle.

Perspectivas futuras

A forma como o Nubank gerencia limites na nuvem ressalta a importância do planejamento proativo de capacidade, do isolamento baseado em sharding e das estratégias de múltiplas contas em qualquer infraestrutura de grande porte. Conforme a demanda continua crescendo, garantir desempenho estável enquanto se controlam custos deixa de ser apenas um desafio técnico para se tornar uma vantagem competitiva.

Combinando orquestração via Kubernetes, monitoramento de cotas da AWS e um modelo de responsabilidade compartilhada entre equipes, o Nubank oferece, dia após dia, uma experiência resiliente e fluida a milhões de clientes.

Seja você uma startup fintech em ascensão ou uma empresa já consolidada, os princípios e aprendizados práticos do Nubank Engineering Meetup #10 podem ajudar a guiar operações de nuvem mais robustas, escaláveis e conscientes de custos. Fique ligado nos próximos meetups, onde vamos explorar ainda mais as tecnologias e práticas que impulsionam a inovação no Nubank e além.

Conheça nossas oportunidades