No início deste ano, apresentamos o Cache Reserve. O Cache Reserve ajuda os usuários a distribuir o conteúdo a partir do cache da Cloudflare por mais tempo usando o armazenamento de dados persistente do R2. Distribuir o conteúdo a partir do cache da Cloudflare beneficia os operadores do site, reduzindo suas contas de taxas de saída das origens, ao mesmo tempo em que beneficia os visitantes do site, pois o conteúdo é carregado mais rapidamente.
O Cache Reserve esteve em beta fechado por alguns meses, enquanto coletávamos feedback de nossos usuários iniciais e continuávamos a desenvolver o produto. Depois de várias rodadas de iteração sobre esse feedback, hoje estamos extremamente empolgados em anunciar que o Cache Reserve está passando para o beta aberto. Os usuários agora podem testá-lo e integrá-lo à sua estratégia de distribuição de conteúdo sem ter que esperar mais.
Se você quiser conferir os benefícios do Cache Reserve e nos dar feedback, pode acessar o Painel de controle da Cloudflare, navegar até a seção Caching e habilitar o Cache Reserve pressionando apenas um botão.
Como o Cache Reserve se encaixa no panorama geral?
O conteúdo fornecido pelo cache da Cloudflare começa sua jornada em um servidor de origem, onde o conteúdo fica hospedado. Quando uma solicitação chega à origem, a origem compila o conteúdo necessário para a resposta e o envia de volta ao visitante.
A distância entre o visitante e a origem pode afetar o desempenho do ativo, pois ele pode percorrer uma longa distância para obter a resposta. É também aqui que é cobrada uma taxa do usuário para mover o conteúdo de onde está armazenado, na origem, até o visitante que o solicita. Essas taxas, conhecidas como taxas de “largura de banda” ou de “saída”, são itens de linha mensais habituais nas faturas de usuários que hospedam seu conteúdo em provedores de nuvem.
A CDN da Cloudflare fica entre a origem e o visitante e avalia a resposta da origem para ver se ela pode ser armazenada em cache. Se puder ser adicionada ao cache da Cloudflare, da próxima vez que receber uma solicitação desse conteúdo, a Cloudflare poderá responder com o ativo armazenado em cache, o que significa que não há necessidade de enviar a solicitação à origem, reduzindo as taxas de saída para nossos clientes. Também armazenamos conteúdo em cache em data centers próximos ao visitante para melhorar o desempenho e reduzir o tempo de trânsito de uma resposta.
Para ajudar os ativos a permanecerem armazenados em cache por mais tempo, introduzimos há alguns anos o Armazenamento em Camadas, que organiza todos os nossos mais de 250 data centers globais em uma hierarquia de níveis inferiores (geralmente mais próximos dos visitantes) e superiores (geralmente mais próximos das origens). Quando uma solicitação de conteúdo não pode ser atendida a partir do cache de uma camada inferior, a camada superior é verificada antes de ir para a origem para uma nova cópia do conteúdo. Organizar nossos data centers em camadas nos ajuda a armazenar o conteúdo nos lugares certos por mais tempo, colocando vários caches entre a solicitação do visitante e a origem.
Por que ocorrem erros de cache?Os erros ocorrem quando a Cloudflare não pode distribuir o conteúdo a partir do cache e deve voltar à origem para recuperar uma nova cópia. Isso pode acontecer quando um cliente define o tempo de controle de cache para indicar quando o conteúdo está desatualizado (obsoleto) e precisa ser revalidado. O outro elemento em questão é quanto tempo a rede deseja que o conteúdo permaneça em cache. É um pouco mais complicado e pode variar dependendo dos critérios de remoção.
As CDNs devem considerar se precisam remover o conteúdo antecipadamente para otimizar o armazenamento de outros ativos quando o espaço em cache estiver completo. Na Cloudflare, priorizamos a remoção com base na solicitação de um conteúdo em cache recentemente usando um algoritmo chamado “least recently used” ou LRU. Isso significa que, mesmo que o controle de cache mostre que uma parte do conteúdo deva ser armazenada em cache por muitos dias, talvez seja necessário removê-la antes (se ela for menos solicitada nesse cache) para armazenar um conteúdo mais popular.
Isso funciona bem para a maioria dos clientes e visitantes do site, mas costuma ser um ponto de confusão para as pessoas que se perguntam por que o conteúdo está exibindo uma falha inesperada. Se a remoção não acontecesse, o conteúdo precisaria ser armazenado em cache em data centers mais distantes dos visitantes que solicitam esses dados, prejudicando o desempenho do ativo e injetando ineficiências na operação da rede da Cloudflare.
Alguns clientes, no entanto, possuem grandes bibliotecas de conteúdo que podem não ser solicitadas por longos períodos de tempo. Usando o cache tradicional, esses ativos provavelmente seriam removidos e, se fossem solicitados novamente, seriam distribuídos a partir da origem. Manter ativos em cache exige que eles permaneçam populares na internet, o que é difícil, pois o que é popular ou atual está em constante mudança. Remover conteúdo que se torna frio significa mais saída de origem para o cliente se esse conteúdo precisar ser extraído repetidamente da origem.
O Cache Reserve entra em açãoÉ aqui que o Cache Reserve se destaca. O Cache Reserve funciona como o data center de nível superior definitivo para conteúdo que, de outra forma, poderia ser removido do cache. Uma vez admitido no Cache Reserve, o conteúdo pode ser armazenado por um período de tempo muito maior, 30 dias por padrão. Se outra solicitação chegar durante esse período, ele pode ser estendido por mais 30 dias (e assim por diante) ou até que o controle de cache indique que não devemos mais distribuir esse conteúdo do cache. O Cache Reserve serve como uma rede de segurança para proteger todo o conteúdo que pode ser armazenado em cache, para que os clientes não precisem se preocupar com a remoção indesejada do cache e taxas de saída de origem.
Como o Cache Reserve economiza a saída?
A promessa do Cache Reserve é que as taxas de acesso aumentam e as taxas de saída das origens diminuem para o conteúdo de cauda longa que raramente é solicitado e pode ser removido do cache.
No entanto, há economias de saída adicionais incorporadas ao produto. Por exemplo, os objetos são gravados no Cache Reserve nas falhas. Isso significa que, ao buscar o conteúdo da origem em uma falha de cache, usamos isso para responder a uma solicitação enquanto também gravamos o ativo no Cache Reserve, desta forma os clientes não experimentam a saída a partir da distribuição desse ativo por muito tempo.
O Cache Reserve foi projetado para ser usado com o armazenamento em camadas habilitado para blindagem máxima da origem. Quando há uma falha de cache nas camadas inferior e superior, o Cache Reserve é verificado e, se houver um acerto, a resposta será armazenada em cache nas camadas inferior e superior em seu caminho de volta para o visitante sem que a origem precise notar a solicitação ou fornecer quaisquer dados adicionais.
O Cache Reserve realiza essas economias de saída de origem por um preço baixo, com base nos custos do R2. Para mais informações sobre os preços e operações do Cache Reserve, consulte a documentação aqui.
Escalar o Cache Reserve na plataforma para desenvolvedores da Cloudflare
Quando anunciamos o Cache Reserve pela primeira vez, a resposta foi impressionante. Mais de 20.000 usuários queriam acesso ao beta, e rapidamente fizemos várias descobertas interessantes sobre como as pessoas queriam usar o Cache Reserve.
O primeiro grande desafio que encontramos foi que os usuários odiavam as taxas de saída tanto quanto nós e queriam garantir que o máximo de conteúdo possível estivesse no Cache Reserve. Durante o beta fechado, vimos o uso acima de 8.000 operações PUT por segundo sustentadas e objetos apresentados a uma taxa de mais de 3.000 GETs por segundo. Também estávamos armazenando em cache cerca de 600 Tb para alguns de nossos grandes clientes. Sabíamos que queríamos abrir o produto para qualquer pessoa que quisesse usá-lo e, para escalar para atender a essa demanda, precisávamos fazer várias alterações rapidamente. Então fomos para a plataforma para desenvolvedores da Cloudflare.
O Cache Reserve armazena dados em R2 usando sua API compatível com S3. Em segundo plano, o R2 lida com toda a complexidade de um sistema de armazenamento de objetos usando nossos originais para desenvolvedores escaláveis e de alto desempenho: Workers e Durable Objects. Decidimos usar as ferramentas da plataforma para desenvolvedores porque isso nos permitiria implementar diferentes estratégias de escala rapidamente. A vantagem de criar na plataforma para desenvolvedores da Cloudflare é que o Cache Reserve foi facilmente capaz de experimentar para verificar como poderíamos distribuir melhor a alta carga que estávamos observando e ao mesmo tempo proteger a complexidade de como o Cache Reserve funciona a partir dos usuários.
Com o simples toque de um botão, o Cache Reserve executa estas funções:
Em uma falha de cache, o Pingora (nosso novo proxy da camada 7) alcança a origem do conteúdo e grava a resposta em R2. Isso acontece enquanto o conteúdo continua sua viagem de volta ao visitante (evitando assim uma latência desnecessária).
Dentro do R2, o Workers grava o conteúdo no armazenamento de dados persistente do R2, além de acompanhar os metadados importantes que o Pingora envia sobre o objeto (como cabeçalhos de origem, valores de atualização e informações de retenção) usando o armazenamento do Durable Objects.
Da próxima vez que o conteúdo for solicitado, o Pingora pesquisa onde os dados estão armazenados no R2, calculando a chave do cache. O hash da chave de cache determina o nome do objeto no R2 e em qual bucket ele foi gravado, pois os ativos de cada zona são fragmentados em vários buckets para distribuir a carga.
Uma vez encontrado, o Pingora anexa os metadados relevantes e envia o conteúdo do R2 para o nível superior mais próximo para ser armazenado em cache, depois para o nível inferior e, finalmente, de volta ao visitante.
Isto é mágico. Nenhuma das opções acima precisa ser gerenciada pelo usuário. Ao reunir R2, Workers, Durable Objects, Pingora e Armazenamento em Camadas, conseguimos criar e fazer alterações rapidamente no Cache Reserve para escalar conforme necessário…
O que vem a seguir no Cache Reserve
Além do trabalho que realizamos para escalar o Cache Reserve, abrir o produto também abre as portas para mais recursos e integrações na Cloudflare. Planejamos colocar análises e métricas adicionais nas mãos dos usuários do Cache Reserve, para que eles saibam exatamente o que está no Cache Reserve e quanto de saída estão economizando. Também planejamos criar integrações mais complexas com o R2 para que, se os clientes quiserem começar a gerenciar seu armazenamento, possam fazer essa transição facilmente. Por fim, vamos procurar fornecer mais opções para os clientes controlarem com precisão o que é qualificável para o Cache Reserve. Esses recursos representam apenas o começo de como os clientes vão controlar e personalizar seu cache na Cloudflare.
Qual foi o feedback até agora?
Como clientes de longa data da Cloudflare, estávamos ansiosos para implantar o Cache Reserve para proporcionar economia de custos e melhor desempenho para nossos usuários finais. Garantir que nosso aplicativo sempre tenha um desempenho ideal para nossos parceiros globais e entregadores é o foco principal do Delivery Hero. Com o Cache Reserve, nossa taxa de acertos de cache melhorou em 5%, permitindo reduzir nossa infraestrutura e simplificar o que é necessário para operar nosso site global e fornecer economia de custos adicionais.Wai Hang Tang, Diretor de Engenharia da Delivery Hero
A Anthology usa o cache global da Cloudflare para melhorar drasticamente o desempenho do conteúdo para nossos usuários finais em escolas e universidades. Ao apertar um único botão para habilitar o Cache Reserve, conseguimos oferecer uma ótima experiência para professores e alunos e reduzir dois terços de nosso tráfego diário de saída.Paul Pearcy, engenheiro sênior da Anthology
Na Enjoei, estamos sempre procurando maneiras de ajudar a tornar nossos sites de usuário final mais rápidos e eficientes. Ao usar o Cache Reserve da Cloudflare, conseguimos melhorar drasticamente nossa taxa de acertos de cache em mais de 10%, o que reduziu nossos custos de saída de origem. O Cache Reserve também melhorou o desempenho de muitos dos sites de nossos comerciantes na América do Sul, o que melhorou seu SEO e a capacidade de descoberta na internet (Google, Criteo, Facebook, Tiktok). E foi muito rápido para configurar.Elomar Correia, Chefe de DevOps SRE | Arquiteto de soluções corporativas na Enjoei
Na indústria de eventos ao vivo, o tamanho e a demanda por nosso conteúdo armazenável em cache podem ser extremamente voláteis, o que causa oscilações imprevisíveis em nossas taxas de saída. Além disso, manter os dados o mais próximo possível de nossos usuários é fundamental para a experiência do cliente nos cenários de alto tráfego e baixa largura de banda em que nossos produtos são usados, como convenções e festivais de música. O Cache Reserve nos ajuda a mitigar esses dois problemas com impacto mínimo em nossas equipes de engenharia, fornecendo custos mais previsíveis e menor latência do que as soluções existentes.Jarrett Hawrylak, vice-presidente de engenharia | Tickets empresariais na Patron Technology
Como posso usar ainda hoje?
A partir de hoje, o Cache Reserve está em beta aberto, o que significa que está disponível para quem quiser usá-lo.
Para usar o Cache Reserve:
Basta acessar o bloco Cache no painel.
Navegue até a página Cache Reserve e pressione o botão ativar sincronização de dados (ou botão de compra).
Os clientes Enterprise podem trabalhar com sua equipe de conta da Cloudflare para acessar o Cache Reserve.
Os clientes podem verificar se o Cache Reserve está funcionando observando as métricas de linha de base sobre quantos dados são armazenados em cache e quantas operações vimos na seção Cache Reserve do painel. Solicitações específicas atendidas pelo Cache Reserve estão disponíveis usando o Logpush v2 e encontrando solicitações HTTP com o campo “CacheReserveUsed”.
Asseguramos que vamos avaliar rapidamente seu feedback e fazer melhorias para ajudar a garantir que o Cache Reserve seja fácil de usar, extremamente benéfico e sua escolha para reduzir as taxas de saída para conteúdo armazenado em cache.
Experimente
Estamos muito entusiasmados em colocar o Cache Reserve em uso por mais pessoas. Vamos ter mais desenvolvimentos empolgantes do Cache Reserve, pois continuamos a investir em fornecer a você todas as ferramentas necessárias para criar seu cache perfeito.Experimente o Cache Reserve hoje e nos diga o que você acha.