Rede de distribuição de conteúdo - Content delivery network

(Esquerda) Distribuição de servidor único
(Direita) Esquema de distribuição de CDN

Uma rede de distribuição de conteúdo , ou rede de distribuição de conteúdo ( CDN ), é uma rede distribuída geograficamente de servidores proxy e seus data centers . O objetivo é fornecer alta disponibilidade e desempenho, distribuindo o serviço espacialmente em relação aos usuários finais . Os CDNs surgiram no final da década de 1990 como um meio de aliviar os gargalos de desempenho da Internet, uma vez que a Internet estava começando a se tornar um meio de missão crítica para pessoas e empresas. Desde então, os CDNs cresceram para servir uma grande parte do conteúdo da Internet hoje, incluindo objetos da web (texto, gráficos e scripts), objetos para download (arquivos de mídia, software, documentos), aplicativos ( e-commerce , portais ), streaming ao vivo mídia, mídia de streaming sob demanda e sites de mídia social .

Os CDNs são uma camada no ecossistema da Internet. Proprietários de conteúdo, como empresas de mídia e fornecedores de comércio eletrônico, pagam às operadoras de CDN para entregar seu conteúdo aos usuários finais. Por sua vez, um CDN paga a provedores de serviços de Internet (ISPs), operadoras e operadoras de rede para hospedar seus servidores em seus data centers.

CDN é um termo abrangente que abrange diferentes tipos de serviços de entrega de conteúdo: streaming de vídeo , downloads de software, aceleração de conteúdo da web e móvel, CDN licenciado / gerenciado, cache transparente e serviços para medir o desempenho de CDN, balanceamento de carga , comutação e análise Multi CDN e nuvem inteligência. Os fornecedores de CDN podem cruzar para outros setores, como segurança, com proteção DDoS e firewalls de aplicativos da web (WAF) e otimização de WAN.

Tecnologia

Os nós CDN são geralmente implantados em vários locais, geralmente em vários backbones da Internet . Os benefícios incluem a redução dos custos de largura de banda, melhorando o tempo de carregamento da página ou aumentando a disponibilidade global de conteúdo. O número de nós e servidores que compõem um CDN varia, dependendo da arquitetura, alguns alcançando milhares de nós com dezenas de milhares de servidores em muitos pontos de presença remotos (PoPs). Outros constroem uma rede global e têm um pequeno número de PoPs geográficos.

As solicitações de conteúdo são normalmente direcionadas por algoritmos a nós que são ótimos de alguma forma. Ao otimizar para desempenho, os locais que são melhores para servir conteúdo ao usuário podem ser escolhidos. Isso pode ser medido escolhendo os locais com o menor número de saltos , o menor número de segundos de rede do cliente solicitante ou a maior disponibilidade em termos de desempenho do servidor (atual e histórico), de modo a otimizar a entrega nas redes locais. Ao otimizar o custo, os locais mais baratos podem ser escolhidos. Em um cenário ideal, essas duas metas tendem a se alinhar, pois os servidores de borda que estão próximos ao usuário final na borda da rede podem ter uma vantagem em desempenho ou custo.

A maioria dos provedores de CDN fornecerá seus serviços em um conjunto variado e definido de PoPs, dependendo da cobertura desejada, como Estados Unidos, Internacional ou Global, Ásia-Pacífico, etc. Esses conjuntos de PoPs podem ser chamados de "bordas", " nós de borda "," servidores de borda "ou" redes de borda ", pois seriam os recursos de CDN mais próximos do usuário final.

Segurança e privacidade

Os provedores de CDN lucram com taxas diretas pagas por provedores de conteúdo usando sua rede, ou lucram com a análise do usuário e os dados de rastreamento coletados enquanto seus scripts são carregados nos sites dos clientes dentro de seus navegadores . Como tal, esses serviços estão sendo apontados como possíveis invasões de privacidade para fins de direcionamento comportamental e soluções estão sendo criadas para restaurar o serviço de origem única e o armazenamento em cache de recursos.

Os CDNs que servem JavaScript também foram direcionados como uma forma de injetar conteúdo malicioso nas páginas que os utilizam. O mecanismo de integridade de sub-recursos foi criado em resposta para garantir que a página carregue um script cujo conteúdo é conhecido e restrito a um hash referenciado pelo autor do site.

Técnicas de rede de conteúdo

A Internet foi projetada de acordo com o princípio de ponta a ponta . Este princípio mantém a rede central relativamente simples e move a inteligência tanto quanto possível para os pontos de extremidade da rede: os hosts e clientes. Como resultado, a rede central é especializada, simplificada e otimizada para encaminhar apenas pacotes de dados.

As redes de entrega de conteúdo aumentam a rede de transporte ponta a ponta, distribuindo nela uma variedade de aplicativos inteligentes que empregam técnicas projetadas para otimizar a entrega de conteúdo. A sobreposição totalmente integrada resultante usa cache da web, balanceamento de carga do servidor, roteamento de solicitação e serviços de conteúdo.

Os caches da Web armazenam conteúdo popular em servidores que possuem a maior demanda pelo conteúdo solicitado. Esses dispositivos de rede compartilhados reduzem os requisitos de largura de banda, reduzem a carga do servidor e melhoram os tempos de resposta do cliente para o conteúdo armazenado no cache. Os caches da Web são preenchidos com base em solicitações de usuários (cache de pull) ou com base no conteúdo pré-carregado disseminado de servidores de conteúdo (cache de push).

O balanceamento de carga do servidor usa uma ou mais técnicas, incluindo baseada em serviço (balanceamento de carga global) ou baseada em hardware (ou seja , switches da camada 4-7 , também conhecido como switch da web, switch de conteúdo ou switch de várias camadas) para compartilhar o tráfego entre vários de servidores ou caches da web. Aqui, o switch recebe um único endereço IP virtual . O tráfego que chega ao switch é então direcionado a um dos servidores web reais conectados ao switch. Isso tem a vantagem de balancear a carga, aumentar a capacidade total, melhorar a escalabilidade e fornecer maior confiabilidade ao redistribuir a carga de um servidor da Web com falha e fornecer verificações de integridade do servidor.

Um cluster de conteúdo ou nó de serviço pode ser formado usando um switch de camada 4-7 para balancear a carga em vários servidores ou em vários caches da web na rede.

O roteamento de solicitações direciona as solicitações do cliente para a fonte de conteúdo mais capaz de atender à solicitação. Isso pode envolver o direcionamento de uma solicitação do cliente para o nó de serviço que está mais próximo do cliente ou para aquele com maior capacidade. Vários algoritmos são usados ​​para encaminhar a solicitação. Isso inclui balanceamento de carga de servidor global, roteamento de solicitação baseado em DNS, geração de metarquivo dinâmico, reescrita de HTML e anycasting . A proximidade - escolha do nó de serviço mais próximo - é estimada usando uma variedade de técnicas, incluindo sondagem reativa, sondagem proativa e monitoramento de conexão.

Os CDNs usam uma variedade de métodos de entrega de conteúdo, incluindo, mas não se limitando a, cópia manual de ativos, caches da web ativos e balanceadores de carga de hardware globais.

Protocolos de serviço de conteúdo

Vários conjuntos de protocolos são projetados para fornecer acesso a uma ampla variedade de serviços de conteúdo distribuídos por uma rede de conteúdo. O Internet Content Adaptation Protocol (ICAP) foi desenvolvido no final dos anos 1990 para fornecer um padrão aberto para conectar servidores de aplicativos. Uma solução mais recentemente definida e robusta é fornecida pelo protocolo Open Pluggable Edge Services (OPES). Essa arquitetura define aplicativos de serviço OPES que podem residir no próprio processador OPES ou ser executados remotamente em um Callout Server. Edge Side Includes ou ESI é uma pequena linguagem de marcação para montagem de conteúdo da Web dinâmico em nível de borda. É bastante comum que sites tenham conteúdo gerado. Pode ser por causa da mudança de conteúdo, como catálogos ou fóruns, ou por causa da personalização. Isso cria um problema para os sistemas de cache. Para superar esse problema, um grupo de empresas criou a ESI.

CDNs ponto a ponto

Em redes de entrega de conteúdo ponto a ponto (P2P) , os clientes fornecem recursos e também os utilizam. Isso significa que, ao contrário dos sistemas cliente-servidor , as redes centradas no conteúdo podem, na verdade, funcionar melhor à medida que mais usuários começam a acessar o conteúdo (especialmente com protocolos como o Bittorrent, que exige que os usuários compartilhem). Esta propriedade é uma das principais vantagens do uso de redes P2P, pois torna os custos de configuração e funcionamento muito baixos para o distribuidor de conteúdo original.

CDNs privados

Se os proprietários de conteúdo não estiverem satisfeitos com as opções ou custos de um serviço CDN comercial, eles podem criar seu próprio CDN. Isso é chamado de CDN privado. Um CDN privado consiste em PoPs (pontos de presença) que apenas veiculam conteúdo para seu proprietário. Esses PoPs podem ser servidores de cache, proxies reversos ou controladores de entrega de aplicativos. Pode ser tão simples quanto dois servidores de cache ou grande o suficiente para servir petabytes de conteúdo.

Grandes redes de distribuição de conteúdo podem até construir e configurar sua própria rede privada para distribuir cópias de conteúdo em locais de cache. Essas redes privadas são geralmente usadas em conjunto com redes públicas como uma opção de backup, caso a capacidade da rede privada não seja suficiente ou haja uma falha que leve à redução da capacidade. Como o mesmo conteúdo deve ser distribuído em vários locais, uma variedade de técnicas de multicast pode ser usada para reduzir o consumo de largura de banda. Em redes privadas, também foi proposto selecionar árvores multicast de acordo com as condições de carga da rede para utilizar mais eficientemente a capacidade de rede disponível.

Tendências de CDN

Emergência de CDNs telco

O rápido crescimento do tráfego de streaming de vídeo usa grandes despesas de capital por provedores de banda larga para atender a essa demanda e reter assinantes, oferecendo uma experiência de qualidade suficientemente boa .

Para resolver isso, os provedores de serviços de telecomunicações (TSPs) começaram a lançar suas próprias redes de entrega de conteúdo como um meio de diminuir as demandas no backbone da rede e reduzir os investimentos em infraestrutura.

Vantagens da Telco CDN

Por serem donos das redes pelas quais o conteúdo de vídeo é transmitido, os CDNs de telecomunicações têm vantagens sobre os CDNs tradicionais.

Eles são donos da última milha e podem entregar conteúdo mais perto do usuário final porque pode ser armazenado em cache nas profundezas de suas redes. Esse armazenamento em cache profundo minimiza a distância que os dados de vídeo percorrem pela Internet geral e os entrega de maneira mais rápida e confiável.

Os CDNs de telecomunicações também têm uma vantagem de custo embutida, uma vez que os CDNs tradicionais devem alugar largura de banda deles e construir a margem da operadora em seu próprio modelo de custo.

Além disso, ao operar sua própria infraestrutura de entrega de conteúdo, as operadoras de telecomunicações têm melhor controle sobre a utilização de seus recursos. As operações de gerenciamento de conteúdo executadas por CDNs são normalmente aplicadas sem (ou com muito limitado) informações sobre a rede (por exemplo, topologia, utilização, etc.) das operadoras de telecomunicações com as quais interagem ou têm relações comerciais. Isso representa uma série de desafios para as operadoras de telecomunicações, que têm um âmbito de atuação limitado diante do impacto dessas operações sobre a utilização de seus recursos.

Em contraste, a implantação de telco-CDNs permite que as operadoras implementem suas próprias operações de gerenciamento de conteúdo, o que lhes permite ter melhor controle sobre a utilização de seus recursos e, como tal, fornecer melhor qualidade de serviço e experiência para seus usuários finais.

CDNs federados

Em junho de 2011, StreamingMedia.com relatou que um grupo de TSPs fundou um Operator Carrier Exchange (OCX) para interconectar suas redes e competir mais diretamente contra grandes CDNs tradicionais como Akamai e Limelight Networks , que têm PoPs extensos em todo o mundo. Dessa forma, as telcos estão construindo uma oferta de CDN federado, que é mais interessante para um provedor de conteúdo disposto a entregar seu conteúdo ao público agregado dessa federação.

É provável que em um futuro próximo, outras federações telco CDN sejam criadas. Eles crescerão com a adesão de novas empresas de telecomunicações à federação e trazendo a presença de rede e suas bases de assinantes de Internet para as existentes.

Melhorando o desempenho do CDN usando a opção EDNS0

A latência (RTT) experimentada por clientes com resolvedores não locais ("alto") reduziu drasticamente quando um CDN lançou a extensão EDNS0 em abril de 2014, enquanto a latência de clientes com resolvedores locais não foi afetada pela mudança ("baixo" )

Tradicionalmente, os CDNs usam o IP do resolvedor DNS recursivo do cliente para geo-localizar o cliente. Embora essa seja uma abordagem correta em muitas situações, isso leva a um desempenho ruim do cliente se o cliente usar um resolvedor DNS recursivo não local que esteja distante. Por exemplo, um CDN pode rotear solicitações de um cliente na Índia para seu servidor de borda em Cingapura, se esse cliente usar um resolvedor DNS público em Cingapura, causando baixo desempenho para esse cliente. De fato, um estudo recente mostrou que em muitos países onde os resolvedores DNS públicos são de uso popular, a distância média entre os clientes e seus resolvedores DNS recursivos pode chegar a mil milhas. Em agosto de 2011, um consórcio global de provedores de serviços de Internet líderes liderado pelo Google anunciou sua implementação oficial do edns-client-subnet IETF Internet-Draft, que se destina a localizar com precisão as respostas de resolução de DNS. A iniciativa envolve um número limitado de provedores de serviços DNS líderes, como Google Public DNS e também provedores de serviços CDN. Com a opção edns-client-subnet EDNS0 , os CDNs agora podem utilizar o endereço IP da sub-rede do cliente solicitante ao resolver solicitações DNS. Essa abordagem, chamada de mapeamento de usuário final, foi adotada por CDNs e demonstrou reduzir drasticamente as latências de ida e volta e melhorar o desempenho para clientes que usam DNS público ou outros resolvedores não locais. No entanto, o uso de EDNS0 também tem desvantagens, pois diminui a eficácia das resoluções de cache nos resolvedores recursivos, aumenta o tráfego total de resolução de DNS e aumenta a preocupação com a privacidade de expor a sub-rede do cliente.

CDN Virtual (vCDN)

As tecnologias de virtualização estão sendo usadas para implantar CDNs virtuais (vCDNs) com o objetivo de reduzir os custos do provedor de conteúdo e, ao mesmo tempo, aumentar a elasticidade e diminuir o atraso do serviço. Com vCDNs, é possível evitar as limitações tradicionais de CDN, como desempenho, confiabilidade e disponibilidade, pois os caches virtuais são implantados dinamicamente (como máquinas virtuais ou contêineres) em servidores físicos distribuídos em toda a cobertura geográfica do provedor. Como o posicionamento do cache virtual é baseado no tipo de conteúdo e na localização geográfica do servidor ou do usuário final, os vCDNs têm um impacto significativo na entrega do serviço e no congestionamento da rede.

Otimização e entrega de imagens (CDNs de imagens)

Em 2017, Addy Osmany do Google começou a se referir a soluções de software que poderiam se integrar naturalmente com o paradigma Responsive Web Design (com referência particular ao elemento <picture>) como Image CDN s. A expressão referia-se à capacidade de uma arquitetura da web servir várias versões da mesma imagem por meio de HTTP, dependendo das propriedades do navegador que a solicitou, conforme determinado pelo navegador ou pela lógica do lado do servidor. O objetivo dos CDNs de imagens era, na visão do Google, servir imagens de alta qualidade (ou, melhor, imagens percebidas como de alta qualidade pelo olho humano), preservando a velocidade de download, contribuindo assim para uma ótima experiência do usuário (UX).

Sem dúvida, a imagem CDN termo foi originalmente um equívoco, uma vez que nem Cloudinary nem Imgix (os exemplos citados pelo Google no guia 2017 por Addy Osmany) eram, na época, um CDN no sentido clássico do termo. Pouco depois, porém, várias empresas ofereceram soluções que permitiam aos desenvolvedores servir diferentes versões de seus ativos gráficos de acordo com várias estratégias. Muitas dessas soluções foram criadas com base em CDNs tradicionais, como Akamai , CloudFront , Fastly , Verizon Digital Media Services e Cloudflare . Ao mesmo tempo, outras soluções que já forneciam um serviço de multisserviço de imagem juntaram-se à definição de CDN de imagem oferecendo a funcionalidade CDN nativamente (ImageEngine) ou integrando-se a um dos CDNs existentes (Cloudinary / Akamai, Imgix / Fastly).

Embora possa não ser possível fornecer uma definição universalmente aceita do que é um CDN de imagem, em geral, um CDN de imagem oferece suporte aos três componentes a seguir:

  • Uma Content Delivery Network (CDN) para entrega rápida de imagens.
  • Manipulação e otimização de imagens, seja em tempo real por meio de diretivas de URL , em modo de lote (por meio do upload manual de imagens) ou totalmente automático (ou uma combinação dos dois).
  • Detecção de dispositivo (também conhecido como Device Intelligence), ou seja, a capacidade de determinar as propriedades do navegador e / ou dispositivo solicitante por meio da análise da string do agente do usuário , cabeçalhos HTTP Accept, Client-Hints ou JavaScript .

A tabela a seguir resume a situação atual com os principais CDNs de software neste espaço:

Principais CDNs de imagem do mercado
Nome CDN Otimização de imagem Detecção de Dispositivo
Akamai ImageManager Y Modo em lote com base no cabeçalho HTTP Accept
Cloudflare polonês Y Totalmente automatizado com base no cabeçalho HTTP Accept
Cloudinary Por meio da Akamai Lote, diretivas de URL Aceitar cabeçalho, Dicas do Cliente
Fastly IO Y Diretivas de URL com base no cabeçalho HTTP Accept
ImageEngine Y Totalmente automatizado WURFL , dicas do cliente, cabeçalho de aceitação
Imgix Através rapidamente Totalmente automatizado Aceitar cabeçalho / dicas do cliente
PageCDN Y Diretivas de URL com base no cabeçalho HTTP Accept

Provedores de serviços de entrega de conteúdo notáveis

CDNs grátis

CDNs comerciais tradicionais

Telco CDNs

CDNs comerciais usando P2P para entrega

Multi CDN

CDN interno

Veja também

Referências

Leitura adicional