O Que É um CDN Cache? Servindo Assets a Partir da Borda
Um CDN cache armazena cópias dos seus assets estáticos em servidores de borda ao redor do mundo, para que os usuários façam download de um local próximo em vez da sua origem.
Servir todo asset a partir de um único servidor de origem é lento para usuários distantes e caro sob carga. Um CDN faz cache da saída do seu build em locais de borda próximos aos usuários. Extrair o máximo dele depende de como o seu build nomeia e rotula os arquivos, o que torna o comportamento de cache uma consequência direta do build do CI.
Como o cache de borda funciona
Quando um usuário requisita um asset, a borda mais próxima o serve do cache se presente, ou o busca da origem uma vez e faz cache dele para o próximo usuário. Após a primeira requisição, a maioria dos usuários recebe uma resposta rápida e próxima.
Cabeçalhos de cache controlam o comportamento
Cabeçalhos de resposta como Cache-Control informam ao CDN e ao navegador por quanto tempo fazer cache de um asset. Assets com hash podem ser mantidos em cache efetivamente para sempre, enquanto arquivos que mudam no lugar precisam de cache breve ou revalidação.
Assets imutáveis vs HTML
- JS e CSS com content-hash podem fazer cache de longo prazo e de forma imutável.
- O ponto de entrada HTML precisa atualizar a cada deploy, então faz cache brevemente.
- O HTML referencia os novos assets com hash após um deploy.
Invalidação no deploy
Como os nomes de arquivo com hash mudam quando o conteúdo muda, um deploy adiciona novos arquivos em vez de sobrescrever os antigos, então o cache naturalmente serve a versão correta. Arquivos que mantêm o nome, como o HTML, podem precisar de invalidação explícita.
CDN caching no CI/CD
O pipeline envia a saída do build para o CDN e define os cabeçalhos de cache por tipo de arquivo: longo e imutável para assets com hash, curto para o HTML. Fazer isso corretamente na etapa de deploy é o que permite que usuários recorrentes pulem downloads enquanto ainda recebem o deploy mais recente.
Principais conclusões
- Um CDN cache serve assets a partir de locais de borda próximos aos usuários.
- Assets com hash fazem cache de longo prazo; o HTML faz cache brevemente e aponta para os novos hashes.
- O deploy do CI define os cabeçalhos de cache corretamente para que os usuários recebam conteúdo rápido e correto.