3. Distribuição de conteúdo na Internet
Agentes
Usuário
Provedor de conteúdo
Proprietário de conteúdo
Distribuidores de conteúdo
4. Distribuição de conteúdo na Internet
Expectativas do usuário
Desempenho
Disponibilidade
Segurança
Anonimato
Acessibilidade
Personalização / relevância
Privacidade
5. Distribuição de conteúdo na Internet
Expectativas do proprietário de conteúdo
Escalabilidade
Flexibilidade
Lucratividade
Segurança
Controle
Gerenciabilidade
Diversidade (usuários e dispositivos)
Personalização de serviço
Diferenciação
6. Distribuição de conteúdo na Internet
Obstáculos para uma boa distribuição
Latência e falta de garantia de qualidade de serviço
Links lentos
Backbones de tráfego lento
Grande quantidade de hops
Distância física
7. Distribuição de conteúdo na Internet
Exemplo: infraestrutura de fotos do Facebook (maio 2007)
1,7 bilhão de fotos de usuário (160 TB)
2,2 bilhões de amigos marcados em fotos
60 milhões de fotos adicionadas por semana (5 TB)
3 bilhões de imagens servidas por dia
100 mil imagens servidas por segundo em picos
http://www.facebook.com/blog.php?post=2406207130
8. Distribuição de conteúdo na Internet
Problema: alcançar, simultaneamente,
otimização de distribuição de conteúdo
satisfação de expectativas do usuário
satisfação de expectativas do provedor de conteúdo
Uma solução: CDN
9. Content Delivery Network (CDN)
"Um CDN representa um grupo de servidores geograficamente
dispersos implantados para facilitar a distribuição de
informação gerada por provedores de conteúdo de maneira
oportuna e eficiente."
(Held, 2006)
10. Funcionamento de um CDN
Arquitetura
http://ww2.cs.mu.oz.au/~apathan/CDNs.html
11. Funcionamento de um CDN
Fluxo básico
http://ww2.cs.mu.oz.au/~apathan/CDNs.html
12. Funcionamento de um CDN
Página típica com conteúdo servido por um CDN
http://ww2.cs.mu.oz.au/~apathan/CDNs.html
13. Funcionamento de um CDN
Tipos de conteúdo providos
http://ww2.cs.mu.oz.au/~apathan/CDNs.html
14. Elementos básicos de um CDN
Servidores de origem
Servidores de cache
Balanceadores de carga / redirecionadores
15. Servidores de origem
Fonte original do conteúdo
Onde o conteúdo pode ser alterado
Cópias do conteúdo são transferidas para servidores de
cache
16. Servidores de cache
Armazenam parte do conteúdo dos servidores de origem
localmente
Com CDN, a comunicação cliente-servidor é divida em:
comunicação cliente / servidor de cache
comunicação servidor de cache / servidor origem
17. Servidores de cache
O conteúdo a ser cacheado pode ser:
Total
Parcial
Se parcial, os critério de seleção desse conteúdo podem
ser:
Empírico
Baseado em popularidade
Baseado em correlação (sessão de usuário, URL, ...)
18. Servidores de cache
Alguns métodos de "terceirização de conteúdo" são:
Método cooperativo baseado em push
Método não-cooperativo baseado em pull
Método cooperativo baseado em pull
Pull Push
Protocolo de automático FTP, SFTP, rsync,
transferência WebDAV, Amazon S3,
...
praticamente não flexível
+ requer configuração
falta de flexibilidade requer configuração
-
19. Servidores de cache
Alguns métodos de atualização de cache são:
Atualização periódica
Propagação de atualização
Atualização sob demanda
Invalidação
20. Servidores de cache
O problema das réplicas de servidores Web
Objetivo
Maximizar o desempenho percebido pelo cliente
Minimizar o custo de infraestrutura
Alguns algoritmos foram propostos (Greedy, Tree-based
replicas ...)
21. Balanceadores de carga / redirecionadores
O uso de múltiplos servidores (origem ou cache) pode ser
motivado por, entre outros:
Vantagem econômica sobre o uso de um número menor
de servidores mais robustos
Facilitar a obtenção de escalabilidade, disponibilidade e
desempenho adequado
O balanceamento de carga/redirecionamento é necessário
para manter o sistema, à medida que cresce,
Confiável
Apto a expandir-se mais
22. Balanceadores de carga / redirecionadores
Algumas técnicas de balanceamento/redirecionamento são
Balanceamento de carga DNS
Mapeamento de endereço IP
Endereçamento por IP virtual
23. Balanceadores de carga / redirecionadores
Alguns critérios para distribuir o tráfego entre dois ou mais
servidores são:
Alocação aleatória
Alocação round-robin
Alocação round-robin ponderada
24. Alguns dos principais CDNs no mundo
Akamai
CDNetworks
Mirror Image
Level 3
LimeLight Networks
LocalMirror
Distribui
Exceda
Global Crossing
Samba TechAdmotion
http://ww2.cs.mu.oz.au/~apathan/CDNs.html e
http://www.dirceupauka.com/opcoes-de-cdn-no-brasil
25. Preços de serviços CDN
Alguns dos principais critérios para determinação de preços
são:
Custo de largura de banda
Tamanho do conteúdo replicado em servidores
delegados
Número de servidores delegados
Confiabilidade e estabilidade do sistema
Questões de segurança relacionadas à entrega de
conteúdo terceirizado
Em 2004, o preço médio era, em dólares por gigabyte
transferido:
$1 para rádio na Internet
$1,75 para streaming de vídeo
26. Conclusão: como o CDN soluciona o
problema proposto
Otimização de distribuição de conteúdo
Diminui o número de hops e redes atravessadas
Evita links e backbones lentos
Diminui a distância entre cliente e servidor de conteúdo
27. Conclusão: como o CDN soluciona o
problema proposto
Satisfação de expectativas do usuário
Disponibilidade e desempenho
A minimização da latência e a melhoria da qualidade
de serviço são garantidas pela distribuição ótima de
conteúdo
28. Conclusão: como o CDN soluciona o
problema proposto
Satisfação de expectativas do proprietário de conteúdo
Escalabilidade
Garantida por uma distribuição de tráfego adequada
Flexibilidade e lucratividade
Terceirização evita necessidade de investimento em
infraestrutura complexa e cara
Terceirização reduz os custos de gerenciar tal
infraestrutura
Exemplo: Facebook
30. Referências bibliográficas
Beaver, D. Facebook Photos Infrastructure. Acesso em: 12/04/2011. Disponível em: <http:
//www.facebook.com/blog.php?post=2406207130>
Content delivery network. Acesso em: 12/04/2011. Disponível em: <http://en.wikipedia.
org/wiki/Content_delivery_network>
Hull, S. Content Delivery Networks: Web Switching for Security, Availability, and Speed.
McGraw-Hill/Osborne, 2002.
Held, G. A Practical Guide to Content Delivery Networks. Auerbach Publications, Taylor &
Francis Group, 2006.
Leers, W. Faster & more flexible CDN integration. DrupalCon Paris, 2009. Acesso em:
12/04/2011. Disponível em: <http://www.slideshare.net/wimleers/faster-more-flexible-cdn-
integration>
Manikandan, V. M. Content Delivery Networks. 2008. 30 f. Dissertação (Mestrado em
Engenharia de Software) – Department of Computer Science, Cochin University of Science
& Technology, India.
Pallis, G.; Vakali, A. Insight and Perspectives for Content Delivery Networks: Striking a
balance between the costs for Web content providers and the quality of service for Web
customers. Communications of the ACM, Jan. 2006. Vol. 49, No. 1