CDN vs Cache Local
Se você já usa ferramentas de cache local, como Varnish ou plugins de cache, provavelmente está se perguntando quais as vantagens de utilizar os recursos de cache de uma CDN.
Neste artigo vamos falar um pouco sobre o funcionamento do cache local e da CDN, apresentando as vantagens, desvantagens e aplicações de cada um dos recursos.
Como funciona uma cache local?
Os caches locais são camadas de armazenamento físico, normalmente alocados dentro de sua infraestrutura web com o objetivo de armazenar dados, geralmente temporários para entregá-los em futuras solicitações com maior performance, além de desonerar parte de sua infraestrutura, já que a partir de uma entrega em cache, provavelmente determinados arquivos não precisarão mais ser acessados de sua origem.
Em sua grande maioria, caches locais são armazenados em hardwares de acesso rápido, como Random-access memory (RAM), sendo assim, caches locais costumam aumentar o uso de RAM dos servidores.
Como funciona o cache de uma CDN?
Assim como o cache local, a CDN também cria uma camada de armazenamento físico, mas diferente do cache local, esse armazenamento é feito pela própria CDN. Já em relação a entrega dos itens em cache, a CDN também utiliza recursos de RAM, porém, essa utilização é feita a partir do ponto de distribuição do serviço da CDN, fazendo com que sua infraestrutura não precise processar determinadas informações, logo, diferente do cache local, o cache de uma CDN tende a liberar memória ram de sua infraestrutura, principalmente quando consideramos o cache de assets dinâmicos, como HTML e json.
Outro ponto que diferencia o cache de uma CDN de um cache local é a distribuição com capilaridade da CDN, já que seus assets serão cacheados em múltiplos pontos, e serão servidos para seus usuários com base na localização geográfica do requisitante, logo, caches feitos a partir de CDN tendem a reduzir latência de entrega, trazendo ganhos em performance.
Qual a vantagem e desvantagem de usar cache local e cache de CDN?
Cache local:
Usar cache local pode ser vantajoso em alguns casos, como por exemplo, quando seu uso de banda é baixo ou irrestrito. Neste caso, a entrega do cache local fará com que você consiga acelerar a entrega de parte de seu conteúdo e trará alguma escalabilidade para sua aplicação, porém, deve-se levar em consideração que o cache local não será distribuído com capilaridade, sendo assim, você não conseguirá reduzir latência de entrega com esse método de cache.
Outro ponto negativo do cache local é sua configuração, já que na grande maioria dos casos será necessário que você altere ou insira cabeçalhos de cache, o que pode tomar bastante tempo e exigira algum esforço técnico para implementação.
Caso queira entender mais sobre o assunto, recomendamos a leitura do artigo – Cache Headers: Aprenda da inspecionar
Vale citar também que o uso de memória RAM dentro de aplicações com cache local costuma ser alto. Dependendo do volume de requisições de seu cache local, existe a possibilidade de aumentar o investimento em processamento de sua infraestrutura, resultando em mais custos para sua operação.
CDN:
O cache feito pela CDN é distribuído por diferentes pontos geográficos, acelerando a entrega de seus assets e trazendo ainda mais performance para seu site ou app. Por exemplo, digamos que sua infraestrutura de hospedagem esteja em São Paulo, mas seu usuário está no norte do país. Neste caso, a CDN entregará seus itens cacheados através de uma rota mais próxima, fazendo com que a latência de entrega seja menor, contribuindo para uma melhor experiência de uso.
Outra vantagem do cache feito pela CDN é a facilidade de configuração. Basicamente, dentro do painel da CDN é possível determinar tempos de expiração de cache e sua granularidade, escolhendo de forma simples quais itens devem ser entregues por cache e quais devem ser entregues diretamente por sua infraestrutura. Certamente o esforço técnico de implementação de um serviço de CDN é consideravelmente menor do que um serviço de cache local.
Vale citar também que em alguns cenários, a CDN pode ser utilizada para reduzir custos com uso de banda, principalmente em casos de VPS como AWS, Amazon e Google que tem um custo de banda alto.
E para finalizar, o uso de CDN também pode trazer a facilidade de integrações com outros produtos de performance e segurança, como por exemplo, produtos de otimização de imagens, rate limit, WAF entre outros, fazendo com que sua estratégia de cache seja ainda mais completa.
Caso queira conhecer mais sobre CDN e seu funcionamento, recomendamos a leitura da página – O que é CDN e como ela funciona
Caso você tenha qualquer dúvida sobre as diferenças entre o uso de cache local e CDN, por favor, deixe um comentário. Será um prazer ter essa conversa com você :)