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.
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.
Por isso que hospedar arquivos em diferentes domínios é uma boa dica de performance.
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:
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:
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!