Introdução à CDN: Content Delivery Network

Oque é e que vantagens ela pode trazer para sua empresa. Content Delivery Network é um grande sistema distribuído de servidores instalados em múltiplos datacenters ao redor do mundo. O objetivo principal das CDNs é prover distribuição de conteúdo online com alta performance, disponibilidade e segurança aos usuários finais.

Iremos falar desse assunto e iremos fazer esse artigos em 2 partes, acompanhe.

Mas o que é Content Delivery Network?

Antes de respondermos a essa pergunta, vamos entender um pouco mais sobre o problema de performance da internet.  A internet é uma rede de redes, e para ter acesso a ela, o usuário paga para um provedor de internet, que tem a sua própria rede. O provedor, por sua vez, precisa se conectar com as outras redes da internet, o que é feito através de contratos comerciais, os chamados contratos de peering. Esses contratos, e os termos monetários definidos neles, é o que determinam como o tráfego dos usuários da rede será roteado.

Portanto, além de o usuário poder estar topológica e fisicamente longe do servidor que ele pretende acessar, sua performance será impactada devido ao fato de que os roteadores estão programados para economizar dinheiro para as operadoras no caminho e não necessariamente para melhorar a performance da comunicação.

cdn_commitlinux

Figura 1. Distância e peering não otimizados geram performance insatisfatória.

Esse problema é ainda mais intensificado no Brasil e na América Latina, onde as grandes operadoras fazem contratos de peering muito limitados, e uma grande parte da troca de conteúdo entre elas acontece em redes de interconexão nos Estados Unidos, já que o custo para as operadoras se conectarem a essas redes é baixo e elas evitam trocar dados diretamente devido à concorrência. A Figura 1 mostra uma representação mais realista e detalhada da internet e o caminho que os pacotes de dados devem percorrer para chegar do usuário final até o servidor de origem da aplicação.

Além do problema de interesse financeiro, o BGP (Border Gateway Protocol), criado para uso nos roteadores da internet, não leva em consideração a carga de uma rota. Ou seja, mesmo que a rota esteja extremamente congestionada, o protocolo ainda enviará pacotes por aquele caminho, causando ainda mais congestionamento, perda de pacotes e piora da performance. Além disso, o algoritmo BGP ainda fica sujeito à perda de rotas acidentais ou, efetivamente, a roubos de rotas. Veja na seção Links um artigo explicando essa vulnerabilidade do BGP mais detalhadamente.

Como a CDN resolve o problema de desempenho da internet?

Content Delivery Network é uma rede distribuída, com servidores hospedados dentro dos provedores de internet ao redor do mundo. Assim, quanto maior o número de servidores e mais distribuída for a rede, melhor a qualidade da CDN para os usuários finais (Figura 2). A ideia básica desta tecnologia é que o usuário é servido por um servidor próximo e, portanto, com latência, taxa de erros e reenvio muito menores. Para conteúdos transacionais ou individualizados, como um carrinho de compras ou um extrato de conta, o servidor da CDN ainda precisa buscar a informação no servidor de origem da aplicação, mas geralmente usando métodos otimizados para atravessar a internet, como uso de rotas alternativas e otimização da camada TCP.

cdn_commitlinux_isp

Figura 2. CDNs aproximam o usuário dos servidores.

Todo esse processo acontece de forma transparente para o usuário final, e normalmente é feito no nível de DNS. A empresa que contrata uma Content Delivery Network redireciona os usuários para o servidor de DNS da CDN via um registro cname (canonical name­ – ver Nota DevMan 1). A partir daí, o DNS da CDN passa a ser o responsável por eleger o servidor com a melhor performance para servir àquele determinado usuário.

Nota DevMan 1. CNAME Record

CNAME Record, ou Canonical Name Record, é um tipo de registro DNS que especifica que o domínio é um sinônimo de outro domínio. O registro mais comum de DNS é o registro A, que mapeia um hostname a um endereço IP. O registro CNAME mapeia um hostname a outro, permitindo a delegação da resolução do nome a outro servidor DNS.

Vantagens para a empresa em usar uma CDN

As CDNs melhoram a performance das aplicações web para o usuário, mas o que uma empresa ganha em adotar uma solução como esta? Em suma, a empresa obtém benefícios como aumento de receita, redução de custos e otimização de investimento em tecnologia.

 

Fonte: http://www.devmedia.com.br/introducao-a-cdn-content-delivery-network-revista-infra-magazine-7/25684

Links:

Especificação do registro CNAME
http://tools.ietf.org/html/rfc1034

Home Page da Akamai
http://www.akamai.com/

Artigo sobre a vulnerabilidade do protocolo BGP
http://www.wired.com/threatlevel/2008/08/revealed-the-in/