Por Leandro Damascena
Vivemos em um mundo conectado em que a tecnologia é bastante presente em nosso estilo de vida. Ela nos ajuda a realizar as mais diversas atividades do nosso cotidiano através de um simples site, como assistir vídeos, acessar as redes sociais, ler notícias entre outras.
A grande missão destes sites é proporcionar uma boa experiência ao usuário para que seu uso seja rápido, simples e a adesão ao produto/serviço oferecido seja cada vez maior. Mas para atingir esse objetivo, é importante estar atento a vários fatores como por exemplo: o banco de dados utilizado, a linguagem de programação, a arquitetura de serviços, entre outros. Entretanto, existe uma tecnologia que é um dos pilares na garantia da boa experiência do usuário, estamos falando do cache.
O que é Cache?
Quem nunca teve problemas ao acessar um site, ligou no suporte da operadora de internet e o atendente falou: “vamos limpar o cache!”? Mas você já deve ter se perguntado: o que é cache? Cache é a tecnologia que permite armazenar localmente (ou em um ponto remoto muito próximo) os arquivos de um site para que este acesso seja mais rápido a partir da segunda vez. Parece um pouco confuso ainda, não é? Ok, vamos a um exemplo prático: Você ganhou um computador novo, abriu o seu navegador e digitou https://www.darede.com.br/blog. A primeira vez que você acessou este site o seu navegador recebeu instruções para armazenar o que puder localmente e tornar o acesso mais rápido na próxima vez. Consequentemente na segunda vez que você acessar o navegador tem armazenado localmente imagens, fontes, textos e com isto aumenta a velocidade com a qual o site é exibido para você.
CDN (Content Delivery Network)
CDN é a abreviação de Content Delivery Network (Rede de distribuição de conteúdo em tradução livre). CDN é uma rede de computadores com diversos pontos distribuídos ao redor do mundo e que armazenam cópia de sites e arquivos para distribuí-los de forma mais rápida, ou seja, podemos considerar o CDN como um grande cache da internet.
Para exemplificar melhor o funcionamento do CDN vamos imaginar uma startup americana que criou um site que será acessado mundialmente. Essa startup hospedou esse site em instâncias EC2 localizadas na região de Norte Virgínia (EUA). Durante a semana de lançamento, usuários do Brasil começaram a reclamar que o site apesentava lentidão em alguns pontos, enquanto usuários dos Estados Unidos reportavam uma excelente experiência e velocidade no acesso.
Isso acontece porque o site não tem um CDN configurado, ou seja, todas as vezes que os navegadores precisam buscar um arquivo que não está no cache local os usuários do Brasil têm que “percorrer” toda a internet para ir buscá-lo arquivo em Norte Virginia (EUA). Esse caminho de São Paulo até Norte Virginia (EUA) aumenta a latência (tempo de comunicação) e consequentemente o tempo de espera de acesso. Mas para resolver este problema é simples, basta a startup configurar um Amazon Cloudfront e colocá-lo entre seus usuários e seu site nas instâncias EC2.
As funcionalidades do Amazon CloudFront
O Amazon Cloudfront é o serviço de CDN da AWS que serve como serviço rápido de entrega de conteúdo e que escala para milhões de acessos simultâneos. Contando com mais de 225 pontos de presença em 90 cidades de 47 países, o Amazon Cloudfront ajuda a servir o conteúdo do site a partir do ponto de presença mais próximo do usuário. Lembram do exemplo da startup no parágrafo anterior? Agora com o Amazon Cloudfront configurado, os usuários do Brasil não terão que ir até Norte Virginia (EUA) buscar os arquivos, pois o Amazon Cloudfront armazenou o conteúdo deste site em algum ponto de presença (no Brasil) próximo ao usuário e a experiência será muito melhor e mais rápida.
*Revisão de Cassius Oliveira e Ana Carolina Fernandes