Site fora do ar/indisponível? Saiba como a CDN pode dar mais poder de escala para sua aplicação

Disponibilidade é essencial para qualquer aplicação na internet, ainda mais se considerarmos o nível de maturidade de todas as verticais de serviços e produtos. Você se lembra a última vez em que viu algum site indisponível? Provavelmente não.

Porém, desenvolver aplicações de alta disponibilidade é um trabalho árduo, principalmente se considerarmos que essa aplicação ou site recebe um volume considerável de acessos simultâneos.  Para isso, precisamos entender um pouco mais sobre escalabilidade, algo em que estratégias de cache com CDN podem ajudar bastante.

O modelo tradicional de entrega de sites e aplicações, basicamente, acontecia através dos usuários que falavam diretamente com a infraestrutura de hospedagem de um site. Com a evolução da internet e consequentemente com o aumento de tráfego na rede, foi natural que novas modalidades de entrega fossem criadas, entre elas, o método de entrega via CDN.

Como uma CDN funciona?

A CDN está posicionada entre seus usuários e sua infraestrutura de hospedagem, analisando cada uma das requisições que sua aplicação recebe, e com base em suas configurações de cache, a CDN vai entregar determinados itens (assets) diretamente pela rede da CDN, reduzindo o consumo de banda de sua infraestrutura.

Por padrão, a maior parte dos serviços de CDN faz cache de assets estáticos por padrão, lendo a extensão de seus objetos, sendo assim, quando um site passa a ser distribuído via CDN, arquivos como imagens, css e js serão entregues automaticamente pela rede.

Porém, se você busca aumentar a disponibilidade de seu site ou aplicação, a sugestão é analisar a possibilidade de fazer cache dinâmico (html, json…), desonerando o volume de consultas em sua infraestrutura de hospedagem e dando efetivamente mais poder de escala para sua aplicação.

Leia – O que é CDN?

O que devo avaliar para fazer cache dinâmico?

Se partirmos do principio que o cache dinâmico faz com que itens como html e json sejam cacheados e entregues pela CDN, para aplicar uma estratégia de cache dinâmico, é necessário determinar quais áreas ou páginas de seu site ou aplicação são elegíveis a cache.

Portais de noticia / Portais de conteúdo: 

A maior parte dos portais de noticias e conteúdo são elegíveis a cache dinâmico, já que quase não existem ações de login ou de compra dentro de aplicações deste tipo.

Por aqui, o que deve ser avaliado são páginas sensíveis a cache, como por exemplo, áreas de login para administração de backend (/administrador /wp-login), usuários logados em paywall entre outros.

Caso você use WordPress como CMS, o esforço técnico de implementação de cache dinâmico dentro da GoCache é mínima, já que nosso painel conta com um recurso chamado “SmartCache”.

Smart Cache para WordPress

Basicamente, o SmartCache é um recurso que faz com que sua aplicação entregue cache dinâmico, considerando todas as particularidades do WordPress automaticamente.

E-commerces:

Já para e-commerces, a aplicação de cache dinâmico deve ser mais criteriosa, afinal, o comportamento de uso em lojas virtuais faz com que os usuários precisem receber informações atualizadas, respeitando as ações executadas dentro da loja.

Dentro da GoCache, por exemplo, é possível criar regras com base em cookies, permitindo que usuários logados ou que colocaram itens dentro de seu carrinho, deixem de receber assets dinâmicos do cache. Além disso, atualmente é frequente encontrar carrinhos de compras feitos em ajax, permitindo que o webmaster deixe de fazer cache somente nessa área da aplicação, o que pode dar grande poder de escala para a aplicação com alta eficiência de cache.

Se você usa Magento ou Woocomerce, utilize nossos recursos de SmartCache para reduzir o esforço técnico de implementação.

Sites institucionais / Landing pages: 

Sites estáticos e landing pages, costumam ser elegíveis a cache dinâmico, já que não existem ações de uso como logins que precisem identificar usuários. E ainda que exista comportamento sensível a cache nessas páginas, existem formas de informar para a CDN que o determinado conteúdo deve ser excluído de cache, como por exemplo, utilizar critérios de cookies para usuários logados ou excluindo determinadas áreas de cache, como por exemplo, áreas de login em backend ou sistema.

Trata-se de um cenário bem simples para implementar cache dinâmico, sendo assim, se você possui um site com estas características e tem tido problemas de disponibilidade, certamente uma CDN com a configuração correta pode aumentar a escalabilidade de sua aplicação.

Sistemas / Backend / APIs: 

Provavelmente este é o cenário mais delicado para estratégias de cache dinâmico. Sistemas costumam ser aplicações extremamente dinâmicas, onde o usuário solicita diferentes informações, imputando dados e recebendo os mais diversos resultados.

É claro que existem possibilidades de cache dinâmico para sistemas, porém, é fundamental entender o comportamento de cada área da aplicação, buscando fazer cache apenas de itens elegíveis.