Arquitetura real · Sênior
ML de bot management da Cloudflare
Arquitetura real em produção. Pontos centrais: inferência na borda e camadas de heurística + ML.
Resposta curta
Arquitetura real em produção. Pontos centrais: inferência na borda e camadas de heurística + ML. Um bot é um programa autônomo que imita ou substitui o comportamento de uma pessoa. A Cloudflare separa os bots úteis, como os de buscadores, dos maliciosos, como os de credential stuffing, de raspagem por terceiros e de spam.
01 · CONTEXTO
Bot bom, bot mau e o problema de classificar cada requisição
Um bot é um programa autônomo que imita ou substitui o comportamento de uma pessoa. A Cloudflare separa os bots úteis, como os de buscadores, dos maliciosos, como os de credential stuffing, de raspagem por terceiros e de spam. Gerenciar bots, nessa definição, é bloquear o tráfego indesejado sem impedir que os bots úteis acessem o site.
Dois requisitos de produto dão o tom do desenho. O primeiro é a precisão: quase nenhum visitante humano deve ser tomado por bot. O segundo é a recuperabilidade: se uma previsão errada acontecer, a pessoa ainda precisa conseguir acessar o site e os bots bons precisam passar.
O diagrama mostra o caminho mais simples: o visitante chega à borda e a borda encaminha a requisição à origem.
A pergunta do desenho está neste trecho: em que ponto do caminho classificar o visitante antes que a origem o atenda.
02 · REQUISITOS
O que a plataforma precisava cumprir
Além dos requisitos de produto, a engenharia montou uma lista de exigências obrigatórias. A tabela resume as que a fonte destaca entre as mais críticas.
| Requisito | O que a fonte pede |
|---|---|
| Escala | Calcular o score em cada requisição, mesmo acima de 10 milhões por segundo |
| Latência | Não atrasar o processamento em mais de 100 microssegundos e não exigir hardware adicional |
| Configurabilidade | Escolher quais detecções valem para qual tráfego, até por domínio, datacenter ou servidor |
| Segurança | Nenhuma informação sensível de um cliente alimenta modelos que protegem outro |
| Explicabilidade | Explicar e ajustar as previsões de forma intuitiva |
03 · O SCORE
Uma nota como contrato entre detecção e cliente
A resposta ao problema foi um conceito único, o score: um número de 0 a 100 que indica a probabilidade de a requisição ter vindo de uma pessoa (nota alta) ou de um programa automatizado (nota baixa).
O score virou um campo das regras de firewall. Cada cliente ajusta o limiar conforme sua sensibilidade a falsos positivos e falsos negativos, e a Cloudflare pode ampliar as detecções por baixo dos panos sem que o cliente mude alguma configuração.
A requisição do visitante passa pelo módulo de Bot Management, que roda em cada máquina da borda.
Quando o módulo produz os campos necessários, entre eles o score, o firewall assume a mitigação.
Com base no score e no limiar configurado, o firewall bloqueia, desafia ou registra as requisições suspeitas e encaminha as legítimas à origem.
O módulo também registra pelos pipelines de dados os detalhes de cada detecção no ClickHouse.
Os serviços centrais processam os dados recebidos dos datacenters de borda.
Quem quer mais flexibilidade sobre o que fazer com o score pode usar o Cloudflare Workers, além das ações do firewall.
04 · DETECÇÃO EM CAMADAS
Vários mecanismos, um único score
A plataforma combina cinco mecanismos de detecção complementares, cada um com o próprio score, num score único enviado ao firewall. A maioria roda em toda requisição e alguns são ativados por cliente.
Nem todo problema pede aprendizado de máquina. A fonte observa que, em certos casos, os modelos tendem a render menos do que heurísticas básicas, e que às vezes um único atributo da requisição entrega o bot. As heurísticas ainda alimentam o aprendizado: as requisições que elas classificam são usadas para treinar os modelos.
| Mecanismo | O que a fonte diz |
|---|---|
| Aprendizado de máquina | Toma a maior parte das decisões sobre o score |
| Heurísticas | Qualquer correspondência atribui o menor score possível, 1 |
| Análise comportamental | Aprendizado não supervisionado, que não usa rótulos de bots conhecidos |
| Bots verificados | Validadores confirmam a identidade de bots bons agrupando conjuntos de IPs, e o cliente decide se libera todos os bots bons ou restringe partes do site |
| Fingerprint de JavaScript | Desafio injetado na página na borda; estava em beta privado |
A requisição chega ao módulo e seus atributos são extraídos e transformados para alimentar os mecanismos de detecção.
Os modelos de aprendizado de máquina recebem atributos da requisição e atributos entre requisições entregues pela plataforma Gagarin.
O motor de heurísticas aplica regras simples; qualquer correspondência atribui o menor score possível, e as requisições que ele classifica servem para treinar os modelos.
Os demais mecanismos completam o conjunto: a análise comportamental, não supervisionada; a validação de bots bons por agrupamento de IPs; e o desafio de JavaScript injetado na página pela borda.
Os scores dos mecanismos são combinados no score único que segue para o firewall.
05 · INFERÊNCIA NA BORDA
Velocidade, modo shadow e implantação de modelos
O núcleo da detecção por aprendizado de máquina é o CatBoost, biblioteca de gradient boosting sobre árvores de decisão. Segundo a fonte, aplicar qualquer um dos modelos leva menos de 50 microssegundos, e centenas de heurísticas rodam em pouco menos de 20 microssegundos. A maior parte da lógica de negócio da borda é escrita em Lua (LuaJIT), e a API em C e Rust da biblioteca oferece a interface FFI compatível para aplicar os modelos.
Vários modelos CatBoost rodam em modo shadow em toda requisição de toda máquina, e um deles roda em modo ativo, influenciando o score final. Os resultados e atributos de toda detecção por ML são registrados no ClickHouse para análise e melhoria dos modelos.
Novos modelos entram em produção em questão de segundos pelo Quicksilver, o banco de configuração, e o mesmo mecanismo define qual versão de modelo roda em modo ativo para um cliente específico.
O módulo na borda aplica vários modelos a cada requisição: um ativo e os demais em modo shadow.
Só o modelo ativo influencia o score final que segue para o firewall.
Os resultados e atributos das detecções por ML são registrados no ClickHouse.
Esses registros servem à análise e à melhoria dos modelos.
Novos modelos chegam à borda pelo Quicksilver em segundos, e a mesma configuração escolhe a versão ativa de cada cliente.
06 · LEITURA CRÍTICA
O que levar para a entrevista
Os números da fonte são da época da publicação do texto. A Cloudflare dizia cobrir mais de 26 milhões de propriedades na internet, processar em média 11 milhões de requisições por segundo, com picos acima de 14 milhões, e examinar mais de 250 atributos de cada requisição.
Calcular o score em toda requisição e para todos os clientes tem benefícios que a fonte lista: avaliar como a proteção funcionaria para um cliente antes de ativar o modo ativo e manter um ciclo de feedback que melhora os mecanismos de detecção.
Perguntas frequentes
O que é ML de bot management da Cloudflare?
Arquitetura real em produção. Pontos centrais: inferência na borda e camadas de heurística + ML.
O que o design de ML de bot management da Cloudflare cobre?
Ele está organizado nestas seções: Bot bom, bot mau e o problema de classificar cada requisição, O que a plataforma precisava cumprir, Uma nota como contrato entre detecção e cliente, Vários mecanismos, um único score, Velocidade, modo shadow e implantação de modelos e O que levar para a entrevista.
Quanto tempo leva ML de bot management da Cloudflare e qual é o nível?
Leva cerca de 17 minutos para ler e tem nível Sênior.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.