02.01 Taxinomia das CDNs RDC/ISEL-DEETC-SRT 1
Taxinomia? Taxinomia = classificação científica; nomenclatura das classificações; O que é necessário para a criação de uma CDN? Como fazer a distribuição e gestão do conteúdo de forma eficiente? Como encaminhar os pedidos dos clientes para o nó correcto? Como medir a performance da CDN? Como detectar falhas numa CDN? RDC/ISEL-DEETC-SRT 2
Composição de uma CDN RDC/ISEL-DEETC-SRT 3
Composição de uma CDN RDC/ISEL-DEETC-SRT 4
Organização Overlay Servidores específicos a uma aplicação ou caches são distribuídos por vários locais na rede Fazem a distribuição de conteúdo Os componentes de rede (switches e routers) não têm qualquer papel na distribuição do conteúdo Fornecimento de conectividade Garantias de QoS para um determinado pedido/tráfego Solução adoptada pela maioria das CDNs comerciais Existe um mecanismo que trata da replicação do conteúdo para os servidores A gestão é simplificada uma vez que não precisam de se preocupar com os elementos de rede O utilizador ao pedir um conteúdo é sempre redireccionado para o servidor de CDN mais próximo RDC/ISEL-DEETC-SRT 5
Organização Network Os routers e switches de uma rede são equipados com código que os permite identificar aplicações específicas e que permitem encaminhar os pedidos baseados em políticas pré-definidas Exemplos Layer-7 switches SLBs (Server Load Balancers) Distribuição de carga por múltiplos servidores Usado em conjunto com o Overlay por algumas empresas comerciais RDC/ISEL-DEETC-SRT 6
Servidores Dois servidores possíveis Réplica ou original A réplica contém uma imagem do conteúdo presente no servidor original Pode ser um media server, servidor Web ou cache/proxy O servidor original contém o conteúdo como definido pela entidade que o criou Comunicam entre si para replicarem o conteúdo RDC/ISEL-DEETC-SRT 7
Relações Client-to-surrogate-to-origin server Network element-to-caching proxy Caching proxy arrays Caching proxy meshes RDC/ISEL-DEETC-SRT 8
Relações (2) Relação entre clientes, surrogates e servidores originais Relação entre clientes, elementos de rede e caches/proxies Os proxies podem comunicar entre si Uma cache é um serviço da camada de aplicação para efectuar cache de objectos Web Arrays de proxies Conjunto de proxies bem conhecidos onde existe um Master Mesh de proxies Conjunto de relações de 1 para 1 entre proxies que acaba por formar uma malha RDC/ISEL-DEETC-SRT 9
Protocolos de Interacção RDC/ISEL-DEETC-SRT 10
Tipo de conteúdo/serviço Conteúdos Estático Dinâmico Streaming Serviços Directoria E-commerce File transfer RDC/ISEL-DEETC-SRT 11
Gestão e Distribuição de Conteúdos RDC/ISEL-DEETC-SRT 12
Gestão e distribuição de conteúdos RDC/ISEL-DEETC-SRT 13
Selecção e entrega de conteúdos RDC/ISEL-DEETC-SRT 14
Selecção e entrega de conteúdos (2) Full site forma mais simples para replicar os conteúdos Partial site apenas parte do conteúdo é replicado (ex.: Imagens), implica a modificação de links no conteúdo que se mantem no site original Empirical o administrador escolhe de forma empírica qual o conteúdo a ser distribuido pela CDN, pode ser usada heurística na escolha. Popularity Os objectos mais populares são replicados, problema dos conteúdos novos Object O conteúdo é replicado em unidades de objectos Cluster Sessão do utilizador O cluster pode ser a sessão do utilizador, que em conjunto com logs podem descrever padrões de acesso ao site URL Baseia-se na topologia do site, a replicação é feita correlacionando os objectos, a relação é obtida a partir de uma métrica RDC/ISEL-DEETC-SRT 15
Localização de surrogates A localização óptima permite que os utilizadores tenham menor latência até ao conteúdo Minimizar a largura de banda utilizada ao longo dos troços RDC/ISEL-DEETC-SRT 16
Outsourcing do conteúdo Assumindo que a localização dos surrogates e a escolha dos conteúdos já estão definidas, é necessária escolher a prática para transporte do conteúdo Cooperative push-based Pre-fetching do conteúdo para os surrogates O conteúdo é enviado a partir da origem Os surrogates cooperam de forma a reduzir a replicação e custos de actualização Teórico e não utilizador Non-cooperative pull-based Os pedidos dos clientes são direccionados para o surrogate mais próximo Se existir um cache-miss o conteúdo é puxado do servidor de origem Cooperative pull-based Numa situação de cache-miss o conteúdo é puxado de um surrogate próximo em vez de ser da origem RDC/ISEL-DEETC-SRT 17
Organização e gestão da cache Técnicas Intra-cluster Query-based Num cache miss um servidor da CDN envia um broadcast aos outros servidores em busca do conteúdo Digest-based Cada servidor mantém um digest do conteúdo existente noutros surrogates. Todos os servidores têm de receber notificações em caso de actualização Directory-based É uma versão centralizada do digest-based. O servidor de directoria só é notificado de actualizações caso exista uma actualização local num dos surrogates Hashing-based Um servidor contém o conteúdo baseado no URL, endereço IP dos servidores da CDN e uma função de hashing. Os pedidos dos clientes são redireccionados para outros servidores Semi-hashing-based Um servidor tem uma parte do disco usada para caching de conteúdo popular, e o restante para cooperar com outros servidores Inter-cluster Só o query-based é viável, devido à distribuição geográfica entre clusters impossibilitar o funcionamento dos restantes. Usa mecanismos de TTL para permitir controlar a validade do conteúdo. RDC/ISEL-DEETC-SRT 18
Organização e gestão da cache (2) Actualizações Actualizações periódicas A origem define qual a validade do conteúdo que é cacheable e a periodicidade da verificação. Propagação de actualizações Assim que um conteúdo é actualizado na origem, este é propagado até aos surrogates On demand A ultima versão do conteúdo é enviada aos surrogates depois de ter sido despoletado a actualização (one-shot) Invalidação Assim que um conteúdo é alterado na origem é enviada uma mensagem de invalidação aos surrogates RDC/ISEL-DEETC-SRT 19
Request-Routing RDC/ISEL-DEETC-SRT 20
Introdução Responsável por encaminhar os pedidos dos clientes para o surrogate apropriado. Colecção de elementos rede para suportar o encaminhamento de pedidos dos clientes para uma única CDN. Usa um conjunto de métricas para determinar a proximidade do cliente, latência, distancia e carga do servidor réplica. As técnicas de selecção e entrega de conteúdos (full-site vs partial-site), afectam estes mecanismos. Composto por duas partes: Algoritmo escolha do servidor Mecanismo forma de reencaminhar o pedido RDC/ISEL-DEETC-SRT 21
Funcionamento RDC/ISEL-DEETC-SRT 22
Algoritmos Adaptativos Consideram as condições actuais para escolher qual o servidor para a entrega do conteúdo (carga do servidor ou largura de banda disponível) Latência cliente-servidor (através de logs ou medidas do lado do servidor) Não Adaptativos Usam heurísticas Round-robin De acordo com a carga prevista Percentagem de clientes servidos Baseados na localização geográfica dos clientes vs réplicas Proximidade de rede (BGP path) RDC/ISEL-DEETC-SRT 23
Mecanismos Servem para informar o cliente da selecção do servidor réplica gerado pelos algoritmos de reencaminhamento dos pedidos dos clientes. RDC/ISEL-DEETC-SRT 24
Global Server Load Balancing (GSLB) Service Nodes Servem o conteúdo aos utilizadores. Compostos por Web Switches (com suporte de GSLB) e um número de servidores Web reais distribuídos ao longo do mundo. Global Awareness Os service nodes conhecem o estado em termos de performance e saúde dos restantes servidores Smart Authoritative DNS Usa a informação de global awareness Como todos os service nodes se conhecem entre si, conseguem seleccionar o melhor surrogate para qualquer pedido. A escolha pode ser se servidores reais locais mas também se service nodes remotos. RDC/ISEL-DEETC-SRT 25
Baseado em DNS Um domain name tem múltiplos endereços IP associados a ele. Quando um pedido de um cliente chega o servidor de DNS devolve o endereço IP dos servidores que contêm a réplica do objecto. O resolver local do cliente escolhe um dentro destes. O resolver pode pegar neste conjunto de IPs e medir tempos de resposta dos múltiplos servidores. A grande vantagem é a transparência, uma vez que a referência é ao nome e não ao seu endereço IP Pode ser usada em qualquer aplicação. Aumenta a latência dos pedidos dos clientes. Normalmente em CDNs comerciais o DNS está dividido em dois níveis para distribuição de carga. O endereço IP que aparece aos servidores da CDN é o do forwarder/cache que o cliente usa assume-se que são próximos. Nem todos os pedidos chegam aos servidores de DNS da CDN devido às caches. Para permitir que exista redundância não é possível permitir que existam mecanismos de cache do DNS ou decisões locais ao cliente. RDC/ISEL-DEETC-SRT 26
Redireccionamento HTTP Propaga a informação sobre servidores de réplica em conjuntos de cabeçalhos HTTP. Usa mensagens de Redirect HTTP Pode ser usado para construir um servidor Web especializado que aceita os pedidos dos clientes, escolhe qual o servidor réplica e redirecciona o cliente para este. No caso de não usarmos o redirect normal do HTTP precisava de alterações também do lado do cliente. A replicação pode ser feita ao nível do objecto tal como o redireccionamento. Os grandes problemas são a falta de transparência, e o overhead introduzido. RDC/ISEL-DEETC-SRT 27
URL rewriting Normalmente usado em esquemas de replicação parciais e entrega onde os objectos embebidos são enviados como uma resposta aos clientes O servidor de origem redirecciona os clientes para diferentes surrogates, através da reescrita dos URLs dinamicamente gerados. Visto que é necessário reescrever as páginas, os fornecedores de CDNs fornecem scripts para alterar as páginas Web e alterar os URLs do conteúdo embebido. Pró-activo alterações efectuadas antes do conteúdo ser colocado no servidor de origem. Reactivo Reescreve os URLs quando o cliente acede ao conteúdo. Granular ao ponto do objecto Web. RDC/ISEL-DEETC-SRT 28
Anycast IP Anycast O mesmo endereço IP é partilhado por múltiplas máquinas ao longo da rede e cada router na tabela de encaminhamento tem a rota para o host mais próximo. Interessante para request-routing Application Level Anycasting Consiste num conjunto de anycast routers que convertem nomes de domínios anycast para endereços IP Implica mudanças do lado do cliente RDC/ISEL-DEETC-SRT 29
Peer-to-peer Ligações simétricas entre os clientes A entrega dos conteúdos é feita em cooperação entre os peers O peer pode ser uma CDN Localização do conteúdo Directoria central Selecciona o melhor peer que detém o conteúdo baseado em métricas Distributed Hash Tables (DHT) Os peers são indexados a partir de um conjunto de chaves de hash Floods de pedidos O pedido de um peer é enviado para os restantes que estão directamente ligados e que por sua vez reencaminham para os restantes RDC/ISEL-DEETC-SRT 30
Medidas de performance RDC/ISEL-DEETC-SRT 31
Introdução Usada para medir a capacidade de uma CDN servir os clientes. Baseia-se num conjunto de métricas: Cache hit ratio rácio do número de documentos cached vs documentos pedidos. Reserved bandwidth Largura de banda usada pelo servidor de origem. Latência Tempo de resposta perceptível pelo utilizador. Utilização dos surrogates Tempo de utilização do surrogate Fiabilidade Medidas de perdas de pacotes usadas para definir a fiabilidade da CDN. Perspectiva do cliente e interna à CDN. Conjunto de empresas externas dedicadasà medidas de performance. Keynote Systems, Giga Information Group, etc RDC/ISEL-DEETC-SRT 32
Técnicas para obter as estatísticas Network Probing Monitorização das entidades que podem fazer pedidos (utilizadores). ICMP Echo-request enviados a partir dos surrogates Introduz latência, e por vezes pode não ser utilizado (Firewalls, IDS, QoS, etc.) Traffic Monitoring Monitoriza o tráfego entre os clientes e os surrogates Serve de feedback ao request-routing Feedback dos surrogates Obtido através de HTTP (por exemplo) Parâmetros Proximidade geográfica Proximidade da rede Latência Carga do servidor Performance do servidor RDC/ISEL-DEETC-SRT 33