Otimização de download de arquivos grandes com a Rede de Distribuição de Conteúdo do Azure

Os tamanhos de arquivos de conteúdo entregue pela internet continuam crescendo devido a funcionalidades avançadas, elementos gráficos aprimorados e conteúdo de rich media. Esse crescimento é impulsionado por vários fatores: penetração de banda larga, dispositivos de armazenamento maiores de baixo custo, aumento generalizado de vídeos de alta definição, dispositivos conectados à internet (IoT), etc. Um mecanismo de distribuição rápido e eficiente para arquivos grandes é crítico para garantir uma experiência do consumidor agradável e sem problemas.

A distribuição de arquivos grandes apresenta vários desafios. Primeiro, o tempo médio para baixar um arquivo grande pode ser significativo, pois muitos aplicativos podem não baixar todos os dados em sequência. Em alguns casos, os aplicativos podem baixar a última parte de um arquivo antes da primeira. Quando for solicitada apenas uma pequena quantidade de um arquivo ou um usuário pausar um download, o download poderá falhar. O download também poderá ser atrasado até que a rede de distribuição de conteúdo recupere o arquivo inteiro do servidor de origem.

Em seguida, a latência entre o computador de um usuário e o arquivo determina a velocidade na qual ele pode exibir o conteúdo. Além disso, problemas de capacidade e congestionamento de rede também afetam a taxa de transferência. Maiores distâncias entre servidores e usuários criam mais oportunidades de perda de pacotes, o que reduz a qualidade. A redução na qualidade causada por uma taxa de transferência limitada e uma maior perda de pacotes pode aumentar o tempo de espera até a conclusão do download de um arquivo.

Em terceiro lugar, muitos arquivos grandes não são entregues em sua totalidade. Os usuários podem cancelar um download no meio ou assistir somente aos primeiros minutos de um vídeo MP4 longo. Portanto, as empresas de distribuição de software e mídia desejam distribuir somente a parte de um arquivo que é solicitada. A distribuição eficiente das partes solicitadas reduz o tráfego de saída do servidor de origem. A distribuição eficiente também reduz a demanda de memória e E/S no servidor de origem.

Otimizar a distribuição de arquivos grandes com a Rede de Distribuição de Conteúdo do Azure da Microsoft

Os pontos de extremidade da CDN Standard do Azure da Microsoft entregam arquivos grandes sem um limite de tamanho de arquivo. Recursos extras são ativados por padrão para agilizar a distribuição de arquivos grandes.

Agrupamento de objeto

A CDN Standard do Azure da Microsoft usa uma técnica chamada de agrupamento do objeto. Quando um arquivo grande é solicitado, a rede de distribuição de conteúdo recupera partes menores do arquivo da origem. Depois que o servidor POP da rede de distribuição de conteúdo recebe uma solicitação de arquivo completa ou de intervalos de bytes, o servidor de borda da rede de distribuição de conteúdo solicita o arquivo da origem em partes de 8 MB.

Depois que a parte chega à borda da rede de distribuição de conteúdo, ela é armazenada em cache e imediatamente atendida ao usuário. Em seguida, a rede de distribuição de conteúdo pré-busca a próxima parte em paralelo. Essa pré-busca garante que o conteúdo permaneça uma parte à frente do usuário, o que reduz a latência. Esse processo continua até que todo o arquivo seja baixado (se solicitado), todos os intervalos de bytes estejam disponíveis (se solicitado) ou o cliente encerra a conexão.

Para obter mais informações sobre a solicitação de intervalo de bytes, consulte RFC 7233.

A rede de distribuição de conteúdo armazena em cache todas as partes conforme elas são recebidas. O arquivo inteiro não precisa ser armazenado em cache no cache da rede de distribuição de conteúdo. As solicitações subsequentes para os intervalos de arquivo ou bytes são atendidas no cache da rede de distribuição de conteúdo. Se nem todas as partes forem armazenadas em cache na rede de distribuição de conteúdo, uma pré-busca será usada para solicitar as partes da origem. Essa otimização se baseia na capacidade do servidor de origem de dar suporte a solicitações de intervalo de bytes. Se o servidor de origem não der suporte a solicitações de intervalo de bytes, as solicitações para baixar dados maiores que 8 MB de tamanho falharão.

Condições para a otimização de arquivo grande

Não há nenhum limite no tamanho máximo do arquivo.

Suporte para codificação de transferência em partes

A rede de distribuição de conteúdo da Microsoft dá suporte a respostas de codificação de transferência, mas apenas até um limite máximo de tamanho de conteúdo de 8 MB. No caso de respostas codificadas em transferência em partes que excedem 8 MB, a rede de distribuição de conteúdo da Microsoft só armazenará em cache e atenderá aos 8 MB iniciais de conteúdo.

Otimizar a distribuição de arquivos grandes com a Rede de Distribuição de Conteúdo do Azure da Edgio

Os pontos de extremidade da CDN Standard do Azure da Edgio e CDN Premium do Azure da Edgio entregam arquivos grandes sem um limite de tamanho de arquivo. Mais recursos são ativados por padrão para agilizar a distribuição de arquivos grandes.

Concluir o preenchimento do cache

O recurso padrão de preenchimento de cache completo permite que a rede de distribuição de conteúdo efetue pull de um arquivo para o cache quando uma solicitação inicial é abandonada ou perdida.

O preenchimento de cache completo é mais útil para ativos grandes. Normalmente, os usuários não os baixam do início ao fim. Eles usam o download progressivo. O comportamento padrão força o servidor de borda a iniciar uma busca em segundo plano do ativo do servidor de origem. Depois disso, o ativo estará no cache local do servidor de borda. Depois que o objeto completo está no cache, o servidor de borda pode atender as solicitações de intervalo de bytes para a rede de distribuição de conteúdo, para o objeto armazenado em cache.

O comportamento padrão pode ser desabilitado por meio do mecanismo de regras na CDN Premium do Azure da Edgio.

Transmissão automática do preenchimento de cache par

O recurso de preenchimento automático do cache par padrão usa um algoritmo proprietário sofisticado. Ele usa servidores de cache de borda extras baseados na largura de banda e métricas de solicitações agregadas para atender às solicitações de cliente por objetos grandes e altamente populares. Esse recurso impede uma situação em que grandes números de solicitações extras são enviados ao servidor de origem de um usuário.

Condições para a otimização de arquivo grande

Os recursos de otimização de arquivos grandes para a CDN Standard do Azure da Edgio e CDN Premium do Azure da Edgio estão ativadas por padrão quando você usa o tipo de otimização de entrega web geral. Não há nenhum limite no tamanho máximo do arquivo.

Outras considerações

Considere os aspectos a seguir para esse tipo de otimização:

  • O processo por partes gera mais solicitações para o servidor de origem. No entanto, o volume total de dados entregues da origem é menor. O agrupamento resulta em melhores características de cache na rede de distribuição de conteúdo.

  • A demanda de memória e E/S é reduzida na origem, porque partes menores do arquivo são entregues.

  • Para partes armazenadas em cache na rede de distribuição de conteúdo, não há nenhuma outra solicitação para a origem, até que o conteúdo expire ou seja removido do cache.

  • Os usuários podem fazer solicitações de intervalo para a rede de distribuição de conteúdo, que são tratadas como qualquer arquivo normal. A otimização se aplica somente se ele for um tipo de arquivo válido e o intervalo de bytes estiver entre 10 MB e 150 GB. Se o tamanho médio do arquivo solicitado for menor que 10 MB, use a distribuição na Web geral.