Desenvolvimento

12 mar, 2013

A importância de uma CDN

Publicidade

Algumas semanas atrás, nós anunciamos, aqui mesmo no iMasters, o preview release do AlloyUI 2.0. Uma das coisas legais nesse lançamento é que começamos a usar uma CDN (Content Delivery Network). Portanto, ao invés de baixar o projeto para usar localmente, o usuário só precisa copiar e colar a linha de código abaixo para começar a brincar com o framework.

<script src="http://cdn.alloyui.com/2.0.0pr2/aui/aui-min.js"></script>

Só que os benefícios vão muito além de facilitar o uso de determinado framework JavaScript.

Por que usar um arquivo hospedado na CDN?

Basicamente para aprimorar a performance; vamos explorar alguns desses motivos.

Diminuir a latência

Vamos dizer que você está na China e seu servidor em Los Angeles. Quando você carrega um arquivo, seu navegador envia uma requisição HTTP que irá atravessar o globo até chegar no seu servidor, e como você deve imaginar, isso leva tempo.

Entretanto, se o arquivo está hospedado em uma CDN, ele será distribuido geograficamente entre diferentes servidores no mundo. Então, quando você fizer uma requisição ele irá procurar o servidor mais próximo, o que diminui muito o tempo de latência.

1

Wikipedia: (Esquerda) Modelo tradicional de distribuição – (Direita) Modelo CDN de distribuição

Mais downloads paralelos

Navegadores não conseguem lidar com muitos downloads paralelos por domínio.

2

Por isso que hospedar arquivos em diferentes domínios é uma boa dica de performance.

3

Cache

Vamos dizer que você visitou um site que usa o AlloyUI hospedado na CDN. Assim que você carregá-lo, o navegador irá automaticamente armazenar em cache na sua máquina. Depois ao visitar outro site que também usa o AlloyUI, você não precisará fazer o download de todos os arquivos novamente, já que você já os armazenou em cache.

Qual o benefício real?

Que tal experimentar essas melhorias de performance na vida real? Meu teste irá carregar exatamente o mesmo arquivo, usando e não usando a CDN.

Não usando a CDN:

4

Quando você carrega esse arquivo, que não está hospedado na CDN com uma conexão de 10mb, você irá levar 1.27 segundos com 404ms de latência.

Use CDN:

5

Mas quando você carrega esse arquivo, que está hospedado na CDN com a mesma conexão de internet, você leva 314ms com 155ms de latência. Uma diminuição de 75% e olha que isso é apenas um arquivo!

Agora imagine diversos módulos e suas dependências sendo carregados; causará uma diferença muito significativa.

Conclusão

Hoje vimos como uma simples mudança na distribuição de determinado arquivo pela rede pode alterar a performance para o usuário.

E você, já ouviu falar de CDN? Conte suas dúvidas e experiências nos comentários!