Práticas recomendadas para envio de conteúdo

Nesta página, você encontrará as práticas recomendadas para otimizar e acelerar o fornecimento de conteúdo com o Cloud CDN. Os tópicos são divididos em várias áreas principais.

O Cloud CDN usa o balanceamento de carga HTTP(S) como a origem de conteúdos armazenáveis em cache. Um balanceador de carga HTTP(S) externo pode fornecer uma combinação de conteúdo estático e dinamicamente criado para os usuários por meio de um endereço IP global dos seguintes tipos de back-ends:

Devido à integração perfeita com o Google Cloud, há várias opções para implantar o Cloud CDN e gerenciar conteúdo. Use as práticas recomendadas listadas aqui para planejar e refinar sua implantação. Para mais informações, consulte Como usar o Cloud CDN.

Como otimizar a proporção de ocorrência em cache

Várias práticas recomendadas ajudam a otimizar a proporção de ocorrência em cache.

Como armazenar conteúdo estático em cache

Como prática recomendada para melhorar o desempenho, ao ativar o Cloud CDN, é preciso escolher o modo de cache correto para o aplicativo.

O método mais flexível e geralmente preferido para gerenciar regras de cache é usar o cabeçalho de controle de cache. Se você não conhecer bem o uso de cabeçalhos de controle de cache de origem, a prática recomendada é permitir que o Cloud CDN armazene automaticamente conteúdo estático em cache.

Para armazenar automaticamente respostas estáticas da sua origem, use a configuração --cache-mode=CACHE_ALL_STATIC (padrão). Essa configuração permite que o Cloud CDN armazene em cache os tipos de conteúdo estático comuns. Verifique se o conteúdo corresponde às categorias descritas. Caso contrário, ele não será armazenado em cache.

Não fragmente desnecessariamente o cache

Ao usar o Cloud CDN, uma prática recomendada é garantir que o conteúdo reutilizado em domínios ou aplicativos seja armazenado em cache na mesma chave de cache. Por exemplo, se houver dois buckets de back-end com o mesmo objeto. Ativar o Cloud CDN para os dois cria duas entradas separadas no cache, mesmo que o objeto seja o mesmo.

Usar chaves de cache personalizadas para melhorar a proporção de ocorrência em cache

Por padrão, o Cloud CDN usa o URL de solicitação completo para criar a chave de cache. Para desempenho e escalabilidade, é importante otimizar a proporção de ocorrência em cache. Para ajudar a otimizar essa proporção, use as chaves de cache personalizadas.

Armazenamento de chave-valor do Cloud CDN
Armazenamento de chave-valor do Cloud CDN

Personalize as chaves de cache para incluir ou omitir qualquer combinação de protocolo, host e string de consulta. Por exemplo, vamos supor que você tem dois sites em domínios diferentes que usam o mesmo logotipo. Para exibir o logotipo, use chaves de cache personalizadas da seguinte maneira:

  • O conteúdo do site é diferente, mas você usa o mesmo logotipo da empresa nos dois domínios. Ao ativar o Cloud CDN e personalizar as chaves de cache do serviço de back-end que detém o logotipo, desmarque a caixa de seleção Host para que o cache ignore o domínio, mas armazene o logotipo.

  • Seja exibido por meio de HTTP ou de HTTPS, o logotipo precisa estar armazenado em cache. Ao personalizar as chaves de cache para o serviço de back-end que detém o logotipo, limpe a caixa de seleção Protocolo para que as solicitações por meio de HTTP e HTTPS contem como correspondências para a entrada de cache do logotipo.

Para saber como personalizar as chaves de cache, consulte Como usar chaves de cache.

Como otimizar o desempenho

Várias práticas recomendadas ajudam a otimizar o desempenho.

Verificar se o suporte ao protocolo HTTP/3 e QUIC está ativado

O HTTP/3 é um protocolo de Internet de última geração. Ele é baseado no QUIC, um protocolo desenvolvido a partir do protocolo Google QUIC (gQUIC) original. O HTTP/3 é compatível entre o balanceador de carga HTTP(S) externo, o Cloud CDN e os clientes.

Para aumentar o desempenho com o Cloud CDN, verifique se o HTTP/3 está ativado.

Usar armazenamento em cache negativo

O armazenamento em cache negativo fornece controle detalhado do armazenamento em cache para erros ou redirecionamentos comuns. Quando o Cloud CDN encontra códigos de resposta específicos, ele mantém essa resposta no cache para um TTL definido. Isso diminui a latência da resposta, o que possibilita reduzir a carga nas origens e melhorar a experiência do usuário final.

Como otimizar a segurança

Várias práticas recomendadas ajudam a otimizar a segurança.

Usar o Google Cloud Armor

O Google Cloud Armor se integra ao Cloud CDN para conteúdo em cache e sem cache. Uma prática recomendada é usar o Google Cloud Armor em conjunto com o Cloud CDN sempre que possível para aumentar a segurança dos aplicativos da Web.

Usar URLs assinados

Se você estiver usando URLs assinados, observe o seguinte:

Como otimizar o cache

Como otimizar TTLs de cache

É possível definir ou modificar os TTLs para ajustar o tempo que o Cloud CDN armazena em cache suas respostas e quando o Cloud CDN revalida suas respostas.

Também é possível definir um TTL voltado para o cliente para aproveitar ao máximo o processo de cache do navegador

Para mais informações, consulte Como usar configurações e modificações de TTL.

Como definir a expiração de conteúdo temporário

Cada conteúdo de um cache do Cloud CDN tem um intervalo de expiração específico, e é importante definir um intervalo adequado para seu caso de uso. Você precisa escolher a expiração com cuidado, já que os servidores de origem reenviam o conteúdo que expira nos servidores de cache.

Uma maneira de escolher a expiração é classificar o conteúdo com base na frequência com que você o atualiza, por exemplo:

  • Atualizações quase em tempo real, como feeds ao vivo de eventos esportivos ou tráfego
  • Atualizações frequentes, como informações meteorológicas semanais, diárias ou por hora, ou imagens de notícias de primeira página.
  • Atualizações não frequentes, como um logotipo de um site ou arquivos CSS ou JavaScript.

Em seguida, escolha a expiração por categoria de conteúdo. Por exemplo, um intervalo de expiração de cinco segundos pode ser ideal para placares de jogos quase em tempo real. Já um intervalo de expiração de uma hora pode ser usado para atualizações meteorológicas. Para o conteúdo armazenado no Cloud Storage, defina os prazos de validade usando os metadados Cache-Control. Quando o conteúdo é exibido pelo Compute Engine, é possível controlar os prazos de validade por meio da configuração do software de servidor da Web.

Os prazos de validade são especificados pelos valores max-age e s-maxage no cabeçalho Cache-Control. Esse cabeçalho é definido pela especificação HTTP (em inglês). Por exemplo, o seguinte cabeçalho Cache-Control torna o conteúdo associado publicamente legível e armazenado em cache com uma expiração de cache de 72 horas (259.200 segundos):

  Cache-Control: public, max-age=259200

Para maximizar o armazenamento em cache, siga as diretrizes na Visão geral do armazenamento em cache. Lembre-se de que os valores max-age e s-maxage no campo de metadados Cache-Control funcionam juntos das seguintes maneiras:

  • Os valores max-age e s-maxage são medidos em segundos.
  • O valor s-maxage se aplica somente a caches compartilhados, não a caches do navegador.
  • O valor max-age se aplica a todos os caches, a menos que s-maxage o substitua.

Para conteúdo que é alterado com baixa frequência ou que mudar junto com o conteúdo relacionado, muitas vezes é adequado usar um intervalo de expiração mais longo com URLs de versão.

Como usar URLs de versão para atualizar conteúdo

O controle do conteúdo de versão veicula uma versão diferente do mesmo conteúdo, removendo-o efetivamente. Para isso, o conteúdo novo é exibido aos usuários antes que a entrada do cache expire. Como o controle de versão é gratuito e fácil de usar, recomendamos que você o utilize como abordagem padrão para atualizar o conteúdo armazenado em cache.

Para o conteúdo de versão, adicione um parâmetro ao URL, como um número de versão. Existem várias maneiras de incluir parâmetros em URLs:

  • Adicionar uma string de consulta: file.ext?v=100
  • Alterar o nome do arquivo: file.1.0.0.ext ou file_v100.ext
  • Mudar o caminho do arquivo: /v100/file.ext

Ao adicionar o parâmetro, o nome do arquivo e o URL são alterados. Essa alteração força o cache a ignorar qualquer entrada de cache atual.

Como usar a invalidação com moderação para remover conteúdo

A invalidação remove o conteúdo dos servidores de cache distribuídos do Cloud CDN antes da expiração do cache. A invalidação tem consistência eventual.

Use a invalidação com moderação e apenas como último recurso. Por exemplo, a invalidação é ideal para quando você precisa remover conteúdo por motivos legais ou por conta de um envio acidental. Caso contrário, use o controle de versão sempre que possível ou aguarde até que o conteúdo expire normalmente. Os servidores de cache do Cloud CDN despejam rotineiramente conteúdo acessado com pouca frequência para criar espaço para novos conteúdos. O conteúdo que não é acessado por 30 dias é removido incondicionalmente.

As invalidações de cache são limitadas por taxa.

Para saber mais sobre a invalidação, consulte a Visão geral da invalidação de cache.

Como otimizar o Monitoring e o Logging

Verificar se a geração de registros está ativada para o Cloud CDN

Uma prática recomendada para gerenciar o Cloud CDN é garantir que a geração de registros esteja ativada para todos os back-ends ativados do Cloud CDN.

Usar o painel de monitoramento personalizado do Cloud CDN

Para garantir maior confiabilidade e desempenho, uma prática recomendada é analisar regularmente as métricas de monitoramento relacionadas ao Cloud CDN. Um ótimo lugar para começar é o painel de monitoramento personalizado do Cloud CDN.

Analisar testes de desempenho de terceiros

Analise os relatórios de provedores terceirizados, como disponibilidade, latência e relatórios de capacidade fornecidos pelo Citrix Radar (links em inglês).