O que é um servidor de borda de CDN?

Um servidor de borda de CDN é um nó de uma rede distribuída que entrega conteúdo em cache ou via proxy relativamente próximo de quem faz a requisição. Ele também pode aplicar políticas de roteamento, acesso ou transformação na borda.

Como funcionam os servidores de borda de CDN

Um servidor de borda é o ponto de atendimento de requisições selecionado entre os pontos de presença distribuídos de uma CDN para um cliente e um momento específicos. Ele termina a conexão, avalia a configuração de borda, verifica o estado do cache local ou hierárquico e responde ou contata uma camada superior. Como o roteamento e os objetos em cache são específicos de cada localidade, URLs idênticas podem apresentar latência, idade ou comportamento em caso de falha diferentes entre regiões.

Informações essenciais

  1. O nó de borda que atende uma requisição é determinado pelo roteamento, não pela distância em um mapa. O Amazon CloudFront usa DNS para direcionar o usuário ao ponto de presença que pode atender melhor à requisição, normalmente o mais próximo em termos de latência. A Cloudflare responde às consultas DNS com um endereço anycast, e, com anycast, o sistema de roteamento da Internet escolhe o nó com base na topologia da rede e no ponto em que a requisição entra na rede. A seleção baseada em DNS normalmente vê o endereço do resolvedor recursivo do usuário, que, conforme observado na RFC 7871, pode estar longe do usuário quando um resolvedor centralizado é usado. Assim, uma requisição pode chegar a uma cidade ou país diferente do esperado, e dois usuários no mesmo lugar, em redes diferentes, podem alcançar nós de borda diferentes.
  2. Uma ausência no cache de borda nem sempre significa uma requisição à origem. Os pontos de presença de borda do CloudFront normalmente consultam um cache regional de borda antes da origem, e o Origin Shield acrescenta outra camada; o cache em camadas da Cloudflare permite que apenas os data centers das camadas superiores contatem a origem; a proteção da origem da Fastly concentra as requisições em um ponto de presença designado para essa proteção. O uso dessas camadas é condicional. O Origin Shield, o cache em camadas e a proteção da origem precisam ser habilitados. O CloudFront encaminha requisições dinâmicas e métodos como POST sem passar pelos caches regionais de borda, embora a AWS descreva o Origin Shield habilitado como ainda presente no caminho das requisições dinâmicas. A Cloudflare aplica o cache em camadas somente às requisições elegíveis para armazenamento em cache no momento da requisição. Para uma requisição que passa por uma camada superior, a origem vê essa camada, e não o nó de borda alcançado pelo usuário, de modo que os logs da origem, por si só, não mostram qual nó de borda atendeu ao usuário. Na Cloudflare, por exemplo, o valor de Cf-Ray enviado à origem nesse caso identifica o data center que se conectou à origem.
  3. Os cabeçalhos de resposta e os logs podem mostrar qual nó de borda respondeu e se houve um acerto no cache, mas os nomes dependem do provedor. O cabeçalho de resposta Cf-Ray da Cloudflare termina com um código de data center de três letras, e CF-Cache-Status informa o resultado da consulta ao cache. Na Fastly, X-Served-By identifica os servidores de cache, e X-Cache informa HIT ou MISS. Com a proteção da origem habilitada, a resposta normalmente lista duas entradas, primeiro a da camada de proteção e depois a do nó de borda que atende ao usuário, e, quando há um acerto no cache de borda, a entrada da camada de proteção corresponde ao momento em que o objeto foi armazenado em cache pela primeira vez, não à requisição atual. Os logs do CloudFront registram x-edge-location e x-edge-result-type, e seu cabeçalho de resposta opcional Server-Timing contém cdn-pop e um resultado da consulta ao cache: cdn-cache-hit, cdn-cache-miss ou cdn-cache-refresh (uma cópia em cache entregue depois que o CloudFront verificou com a origem que ela ainda é válida). Os significados também variam: a Fastly informa uma passagem sem uso do cache como MISS, e a Cloudflare observa que, com o cache em camadas, o valor de Age de um acerto no cache local pode ser herdado de uma camada superior. A RFC 9211 define um cabeçalho comum, Cache-Status, para essa finalidade, mas cada cache decide se o envia, portanto normalize os dados por provedor antes de compará-los.
  4. Cada ponto de presença tem seu próprio conteúdo em cache e, por algum tempo após uma alteração, possivelmente sua própria configuração. Um objeto é adicionado ao cache do ponto de presença que atendeu à requisição, e um ponto de presença pode remover objetos menos populares antes de outro. A validade é independente da configuração: o armazenamento em cache HTTP permite que um cache responda com uma cópia armazenada ainda dentro do prazo de validade sem contatar a origem, de modo que, depois que um arquivo muda na origem, um ponto de presença pode continuar entregando a cópia antiga até que ela expire ou seja invalidada, e o conteúdo dos caches não precisa ser igual entre os pontos de presença. Após uma atualização de configuração, o CloudFront informa que as alterações não chegam a todos os pontos de presença de borda ao mesmo tempo e que, durante a propagação, não é possível determinar se um ponto de presença específico está usando a configuração anterior ou a nova. Portanto, um teste em um ponto de presença não mostra o que outro entrega.

Quando os servidores de borda de CDN são importantes

Inspecione o comportamento dos nós de borda quando usuários de uma região enfrentarem latência, ausências no cache ou respostas inconsistentes. Os resultados podem diferir entre pontos de presença porque o roteamento, o estado do cache e a propagação da configuração variam.

Como a Transloadit ajuda com os servidores de borda de CDN

O Smart CDN da Transloadit entrega resultados em cache a partir de pontos de presença de borda por meio do Robot /tlcdn/deliver, usado implicitamente nas requisições ao domínio tlcdn.com. Quando há um acerto no cache, o nó de borda responde sem executar o Template; quando não há resultado no cache, a Assembly do Template é executada primeiro, de modo que a primeira requisição a uma URL sem resultado em cache inclui o tempo de busca do arquivo de origem e de processamento.

As páginas vinculadas não listam os pontos de presença de borda nem nomeiam os cabeçalhos de resposta que identificam o nó de borda que atende à requisição ou o status de seu cache.

Explore os recursos de entrega da Transloadit

Fontes

Transforme conhecimento sobre mídia em um pipeline funcional

Conecte uploads, processamento, IA, armazenamento e entrega por meio de uma única API declarativa, com o stack de codificação, o ajuste de escala e as constantes mudanças de formatos gerenciados para você.

Experimente a Transloadit gratuitamente