Content Delivery Networks

    Caio Guimarães Souza
   Rodolfo Henrique Carvalho
Distribuição de conteúdo na Internet

  Agentes
     Usuário
     Provedor de conteúdo
        Proprietário de conteúdo
        Distribuidores de conteúdo
Distribuição de conteúdo na Internet

  Expectativas do usuário
     Desempenho
     Disponibilidade
     Segurança
     Anonimato
     Acessibilidade
     Personalização / relevância
     Privacidade
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
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
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
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
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)
Funcionamento de um CDN

 Arquitetura




           http://ww2.cs.mu.oz.au/~apathan/CDNs.html
Funcionamento de um CDN

 Fluxo básico




           http://ww2.cs.mu.oz.au/~apathan/CDNs.html
Funcionamento de um CDN
 Página típica com conteúdo servido por um CDN




          http://ww2.cs.mu.oz.au/~apathan/CDNs.html
Funcionamento de um CDN

 Tipos de conteúdo providos




          http://ww2.cs.mu.oz.au/~apathan/CDNs.html
Elementos básicos de um CDN

 Servidores de origem

 Servidores de cache

 Balanceadores de carga / redirecionadores
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
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
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, ...)
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
      -
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
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 ...)
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
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
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
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
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
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
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
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
Obrigado!

Perguntas?
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

Content Delivery Networks

  • 2.
    Content Delivery Networks Caio Guimarães Souza Rodolfo Henrique Carvalho
  • 3.
    Distribuição de conteúdona Internet Agentes Usuário Provedor de conteúdo Proprietário de conteúdo Distribuidores de conteúdo
  • 4.
    Distribuição de conteúdona Internet Expectativas do usuário Desempenho Disponibilidade Segurança Anonimato Acessibilidade Personalização / relevância Privacidade
  • 5.
    Distribuição de conteúdona 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údona 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údona 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údona 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 umCDN Arquitetura http://ww2.cs.mu.oz.au/~apathan/CDNs.html
  • 11.
    Funcionamento de umCDN Fluxo básico http://ww2.cs.mu.oz.au/~apathan/CDNs.html
  • 12.
    Funcionamento de umCDN Página típica com conteúdo servido por um CDN http://ww2.cs.mu.oz.au/~apathan/CDNs.html
  • 13.
    Funcionamento de umCDN Tipos de conteúdo providos http://ww2.cs.mu.oz.au/~apathan/CDNs.html
  • 14.
    Elementos básicos deum 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 principaisCDNs 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çosCDN 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 oCDN 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 oCDN 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 oCDN 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
  • 29.
  • 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