(Esquerda) Rede com somente um servidor (Direita) CDN com diversos servidores
CDN (em inglês: Content Delivery Network ou Content Distribution Network), termo técnico, traduzido literalmente para o português como Rede de fornecimento, entrega e distribuição de conteúdo,[1] é um termo criado em fins da década de 1990 para descrever um sistema de computadores e redes interligados através da Internet, que cooperam de modo transparente para fornecer conteúdo (particularmente grandes conteúdos de mídia) a usuários finais. a Maioria dos CDNs atuais utilizam Anycast para distribuição e roteamento. Simplificando, CDN, é uma maneira de enviar conteúdo massivo para usuários sem ter problemas com desempenho.
No entanto, uma CDN moderna vai muito além de apenas redistribuir conteúdo. Novas tecnologias foram agregadas e estas redes atualmente oferecem também proteção contra ataques de hackers, spammers e ataques de DDoS, através de mecanismos chamados WAF (Web Application Firewall). As CDN atuais são também capazes de armazenar e redistribuir conteúdos dinâmicos (gerados por scripts), algo que as anteriores não conseguiam, pois só armazenavam conteúdos estáticos como códigos HTML e imagens.
O funcionamento de uma CDN se dá pela alocação de servidores dentro de Datacenter, sendo que quando é solicitado aos servidores DNS a resolução de um nome, este obtem a resposta com o endereço do servidor local. O servidor local analisa a existência de cache, que caso haja, é entregue ao usuario. Se não houver a informação em cache, é solicitado a outro servidor dentro de seu backbone. Basicamente os servidores CDN trabalham em “malha”, interligados e realizando comunicações entre si, visando fornecer os conteúdos mais rapidamente e com a melhor qualidade possível.[2]
Apesar de sua importância, essas redes ainda tem um uso discreto no Brasil, sendo majoritariamente utilizada por grandes websites [3]. Acredita-se, no entanto, que com o crescimento do número de CDNs atuando no Brasil (como CloudFlare, CloudFront, GoCache, Fastly e Sucuri) uma parcela maior de sites brasileiros, pequenos e médios, deverão adotar a tecnologia nos próximos anos.
Tecnologia
Nodos de CDN são geralmente distribuídos em diversos locais, frequentemente utilizando de vários backbones. Os benefícios incluídos em utilizar CDNs são a redução dos custos de transferência de dados, melhorando o tempo de carregamento de páginas, ou aumentando a disponibilidade do conteúdo ao redor do mundo. O número de servidores e nodos que compõem uma CDN pode variar, dependendo da arquitetura, alguns alcançando milhares de nodos com dezenas de milhares de servidores em muitos Point of Presence ("pontos de presença" ou PoPs) remotos. Outros compõem uma rede global e tem um pequeno número de PoPs no mapa.[4]
As solicitações de conteúdo são normalmente direcionadas por algoritmos para os nodos que estão mais disponíveis. Quando otimizados para obter desempenho, os locais ideais podem ser escolhidos para oferecer o conteúdo ao usuário. Isso pode ser feito escolhendo locais que tem o menor número de saltos, o menor tempo entre o cliente e o servidor, ou a maior disponibilidade em termos de desempenho do servidor, de modo a otimizar a entrega de dados através da rede local. Para minimizar os custos, locais que vão exigir menos investimentos podem ser escolhidos. Em um cenário ideal, esses dois objetivos tendem a se alinhar, criando servidores de borda (edge) que são próximos ao usuário final, que estão na "borda" da rede, obtendo assim uma vantagem em desempenho ou custo.
A maioria dos provedores CDN irão prover os seus serviços sob uma quantidade, definida, de PoPs, dependendo da área desejada, tal como o Brasil, o Mundo todo, a região da Ásia-Pacifico, etc. Esses conjuntos de PoPs podem ser chamados de "nodos de borda" ou "redes de borda", pois seriam a borda mais próxima ao usuário final da CDN.[5]