O que é armazenamento em cache na CDN?

O armazenamento em cache na CDN guarda cópias do conteúdo em localidades de borda distribuídas geograficamente. As solicitações podem ser atendidas perto de seus destinatários sem buscar repetidamente a mesma representação na origem.

Como funciona o armazenamento em cache na CDN

Uma CDN mapeia uma solicitação para uma localidade de borda e tenta reutilizar um objeto armazenado ali ou em uma camada de proteção intermediária. Na ausência de resultado no cache, a rede busca a representação em um cache anterior ou na origem e a armazena de acordo com as regras de validade e elegibilidade. Cada localidade preenche seu próprio cache, portanto um objeto já presente no cache de uma região ainda pode estar ausente no de outra, e um objeto pouco solicitado pode ser removido antes de expirar. Para mídia, segmentos e arquivos derivados imutáveis podem receber tempos de validade longos, enquanto manifestos e respostas que dependem de autorização geralmente precisam de um tratamento mais seletivo ou de tempos de validade mais curtos.

Informações essenciais

  1. O manifesto de um fluxo e seus segmentos de mídia precisam de tempos de validade diferentes. No HLS, uma playlist de mídia ao vivo é substituída por uma nova versão com pelo menos um novo segmento aproximadamente a cada duração-alvo (a RFC 8216 exige que isso ocorra não antes de metade e não depois de uma vez e meia essa duração), portanto um nó de borda que mantém a playlist por mais tempo oculta os novos segmentos dos players. Uma playlist marcada com VOD não deve mudar e pode ser armazenada em cache como um arquivo estático. Os segmentos são obtidos separadamente da playlist, cada um com sua própria URL ou como um intervalo de bytes de um arquivo maior, e podem receber tempos de validade longos desde que o empacotador nunca altere os bytes associados a uma URL publicada, o que a própria especificação não garante. O rascunho da segunda edição do HLS da Apple recomenda, em seu perfil de servidor de baixa latência, armazenar respostas de playlists comuns em cache por metade da duração-alvo e usar Cache-Control para informar o tempo de validade.
  2. A chave de cache determina quais requisições compartilham uma entrada, e sua composição padrão varia conforme a CDN. A chave padrão do Amazon CloudFront é composta pelo nome de domínio da distribuição e pelo caminho da URL, sem strings de consulta, cabeçalhos ou cookies. A chave padrão da Cloudflare inclui o esquema, o host e o caminho com a string de consulta, além do cabeçalho Origin da requisição, de modo que a mesma URL acessada com e sem Origin é armazenada separadamente. O Google Cloud CDN usa a URI completa da requisição para serviços de backend. As requisições compartilham uma entrada sempre que suas chaves são idênticas, algo que uma configuração padrão já pode causar: no padrão do CloudFront, URLs que diferem apenas na string de consulta recebem a mesma resposta em cache. Inclua na chave todos os valores da requisição que alteram a resposta e deixe os demais de fora, pois um componente que varia entre requisições sem alterar a resposta fragmenta o cache e reduz a taxa de acertos.
  3. Para arquivos grandes, descubra como a CDN trata requisições Range, pois isso altera a carga na origem e o comportamento ao navegar pela linha do tempo. O CloudFront encaminha à origem um intervalo que não tem em cache, possivelmente solicitando um intervalo maior, e armazena em cache a parte retornada; se a origem não oferece suporte a intervalos, o CloudFront recebe e armazena em cache o objeto inteiro. O Google Cloud CDN preenche seu cache com requisições próprias de intervalos de bytes depois de registrar que a origem oferece suporte a elas, o que exige Accept-Ranges: bytes, um comprimento total conhecido, além de Last-Modified e de um ETag forte, e aplica um tamanho máximo muito menor para armazenamento em cache quando a origem não oferece esse suporte. A Fastly armazena objetos grandes em cache por partes somente quando o cache segmentado está habilitado. Portanto, uma origem que responde corretamente a requisições de intervalos é um pré-requisito para armazenar mídias grandes em cache por partes.
  4. A elegibilidade de uma resposta para armazenamento em cache é determinada separadamente de seu prazo de validade, e a regra depende do provedor. Por padrão, a Cloudflare armazena em cache com base na extensão do arquivo e não armazena HTML ou JSON sem uma regra. O modo padrão do Google Cloud CDN armazena tipos de conteúdo estático em cache com base em Content-Type e exige diretivas explícitas para HTML e JSON. Uma resposta que define um cookie não é armazenada em cache pelo Google Cloud CDN; a Cloudflare, dependendo da configuração, deixa a resposta fora do cache ou remove o cookie e a armazena em cache. Quando um acerto esperado no cache não acontece, consulte o status de cache informado pela CDN: na Cloudflare, o cabeçalho de resposta CF-Cache-Status mostra MISS quando a resposta era elegível, mas não estava naquele cache, BYPASS quando a resposta da origem não podia ser armazenada em cache e DYNAMIC quando a requisição nunca foi elegível.

Quando o armazenamento em cache na CDN é importante

Configure o armazenamento em cache na CDN para diminuir a latência da mídia, reduzir a carga na origem e absorver picos de tráfego. Chaves de cache ou regras de validade inadequadas podem entregar variantes incorretas ou deixar os usuários com conteúdo desatualizado.

Como a Transloadit ajuda com o armazenamento em cache na CDN

O Smart CDN da Transloadit coloca um cache de CDN à frente do processamento sob demanda. As requisições a uma URL tlcdn.com são atendidas pelo Robot /tlcdn/deliver, que armazena os resultados em cache e os entrega a partir de pontos de presença de borda. Quando não há resultado no cache, a Assembly do Template é executada; quando há um acerto no cache, o nó de borda responde sem executar nada. Os valores de Cache-Control enviados pelo Robot /file/serve definem por quanto tempo um resultado em cache permanece dentro do prazo de validade.

A primeira requisição a uma URL sem resultado em cache inclui o tempo de busca do arquivo de origem e de processamento. Os prazos de validade padrão atuais estão listados na página de /file/serve e não são repetidos aqui porque podem mudar.

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