Conceitos
CDN: mapeamento por DNS e montagem na borda (ESI)
Intuição
Imagine uma rede de lojas de bairro de uma mesma marca, em vez de uma única loja gigante no centro da cidade. Quando você pergunta por telefone onde comprar, uma central te indica a loja mais perto de você que esteja aberta, sem fila e com o produto em estoque, e essa indicação muda conforme as lojas ficam cheias ou fecham. Para produtos personalizados, a loja de bairro não precisa buscar tudo na fábrica: ela guarda as partes comuns e só pede à fábrica a parte que mudou, montando o pedido ali mesmo.
Como funciona
Uma CDN (rede de entrega de conteúdo) como a Akamai serve requisições a partir de servidores substitutos da origem espalhados na borda da Internet (mais de 12.000 servidores em mais de 1.000 redes na época do paper). O direcionamento de cada cliente, chamado de mapeamento, é feito por um sistema DNS dinâmico e tolerante a falhas: servidores DNS de topo delegam a servidores de baixo nível no local mais próximo do cliente, que resolvem o hostname escolhendo um servidor conforme o serviço pedido, a localização do usuário e o estado da rede. O critério combina proximidade (menor RTT e perda de pacotes), disponibilidade (saúde, carga de CPU, disco e rede, banda do data center) e probabilidade de ter o conteúdo, decidida por um algoritmo de hashing consistente. O monitoramento em tempo real alimenta essa escolha: cada servidor reporta sua carga, e se ela passa de um limiar o DNS atribui o conteúdo a mais servidores, e passando de outro o IP deixa de ser devolvido; agentes que simulam usuários baixando objetos detectam e suspendem servidores ou data centers problemáticos. As respostas finais têm TTL curto (de alguns segundos a um minuto), o que permite redirecionar clientes quando as condições mudam; os cálculos do servidor ideal são feitos offline para não atrasar o DNS. Para conteúdo dinâmico, que proxy caches comuns não conseguem cachear, usa-se Edge Side Includes (ESI): o provedor divide a página em fragmentos com cacheabilidade independente, guardados como objetos separados no cache da borda e montados a cada requisição, de modo que só fragmentos não cacheáveis ou expirados vão à origem. Para objetos não cacheáveis, a borda ainda divide a conexão TCP em cliente-borda e borda-origem.
Na prática
O paper relata que, em sites dinâmicos estudados (portais e sites financeiros), a montagem por ESI reduziu a banda de origem em 95 a 99 por cento, e que a abordagem evita o custo de capacidade ociosa de clusters, espelhos e multihoming para absorver flash crowds, além das taxas de acerto baixas (25 a 40 por cento) de caches proxy independentes. Você escolhe esse desenho quando há um público geograficamente disperso, picos de tráfego difíceis de prever e páginas mistas, com partes estáticas e partes personalizadas, que podem ser fragmentadas. A consistência de fragmentos cacheáveis continua sendo tratada com TTLs, URLs versionadas e purgas sob demanda, e a ideia de levar lógica para a borda é a base do edge computing atual.
Use em um desenho
Pratique na escola de System Design os casos que dependem deste conceito.