Tecnologias que permitem a distribuição em escala do YouTube?

34

O Youtube, como sabemos, é enorme. Possui milhares de usuários simultâneos transmitindo pelo menos 2 megabytes por vídeo. Obviamente, isso gera muito tráfego ... demais para qualquer servidor.

Quais tecnologias de rede permitem enviar 4 bilhões de vídeos por dia?

user1034912
fonte

Respostas:

51

Dimensionamento no back-end

Em uma configuração muito simples, uma entrada DNS vai para um IP que pertence a um servidor. Todo mundo em todo o mundo vai para essa única máquina. Com tráfego suficiente, é demais para lidar muito antes de você atingir o tamanho do YouTube. Em um cenário simples, adicionamos um balanceador de carga. A tarefa do balanceador de carga é redirecionar o tráfego para vários servidores de back-end enquanto aparece como um servidor.

Com tantos dados quanto o YouTube, seria demais esperar que todos os servidores pudessem veicular todos os vídeos; portanto, temos outra camada de indireção a acrescentar: sharding . Em um exemplo artificial, um servidor é responsável por tudo que começa com "A", outro possui "B" e assim por diante.

Aproximando a borda

Eventualmente, porém, a largura de banda se torna intensa e você está movendo MUITOS dados para uma sala. Então, agora que somos super populares, saímos da sala. As duas tecnologias importantes aqui são redes de distribuição de conteúdo e Anycasting .

Onde tenho esses grandes arquivos estáticos sendo solicitados em todo o mundo, paro de apontar links diretos para meus servidores de hospedagem. O que eu faço é colocar um link para o meu servidor CDN. Quando alguém pede para ver um vídeo, ele solicita ao meu servidor CDN. A CDN é responsável por já ter o vídeo, solicitar uma cópia do servidor de hospedagem ou me redirecionar. Isso varia de acordo com a arquitetura da rede.

Como esse CDN é útil? Bem, um IP pode realmente pertencer a muitos servidores que estão em muitos lugares em todo o mundo. Quando sua solicitação sai do computador e vai para o ISP, o roteador deles mapeia o melhor caminho (mais curto, mais rápido, menos custo ... qualquer que seja a métrica) para esse IP. Geralmente, para uma CDN, ela estará na ou mais próxima à sua rede de nível 1 .

Então, solicitei um vídeo do YouTube. A máquina em que foi armazenada é pelo menos iad09s12.v12.lscache8.c.youtube.come tc.v19.cache5.c.youtube.com. Aqueles aparecem na fonte da minha página da Web que estou vendo e foram fornecidos por alguma forma de servidor de indexação. Agora, no Maine, achei o servidor tc19 em Miama, Flórida. De Washington, achei o servidor tc19 em San Jose, Califórnia.

Jeff Ferland
fonte
4
Seu exemplo inventado de fragmentação é o melhor que eu já vi. Todo mundo parece fazer uma grande complicação desse conceito simples por algum motivo.
kizzx2
@ Jeff, seria ótimo se você adicionar algumas citações ou deixar claro que isso é especulação do usuário final.
Pacerier
23

Várias técnicas são usadas para sites grandes.

www.youtube.com -> qualquer número de endereços IP

Vamos olhar no DNS:

www.youtube.com is an alias for youtube-ui.l.google.com.
youtube-ui.l.google.com has address 74.125.226.14
youtube-ui.l.google.com has address 74.125.226.0
youtube-ui.l.google.com has address 74.125.226.1
youtube-ui.l.google.com has address 74.125.226.2
youtube-ui.l.google.com has address 74.125.226.3
youtube-ui.l.google.com has address 74.125.226.4
youtube-ui.l.google.com has address 74.125.226.5
youtube-ui.l.google.com has address 74.125.226.6
youtube-ui.l.google.com has address 74.125.226.7
youtube-ui.l.google.com has address 74.125.226.8
youtube-ui.l.google.com has address 74.125.226.9
youtube-ui.l.google.com has IPv6 address 2001:4860:800f::88

Portanto, o www.youtube.com pode realmente ir para vários endereços IP.

endereços IP anycasted

Um único IP pode ser tratado por qualquer número de sistemas autônomos (uma rede na internet) simultaneamente. Por exemplo, muitos servidores DNS raiz e o 8.8.8.8servidor DNS do Google são transmitidos em vários pontos do mundo. A ideia é que, se você estiver nos EUA, acessa a rede dos EUA e se estiver no Reino Unido, acessa a rede do Reino Unido.

mídia proveniente de servidor diferente

Só porque você está ligado www.youtube.com, isso não significa que todo o conteúdo tenha que vir do mesmo servidor. Neste site, os recursos estáticos são servidos em sstatic.netvez de serverfault.com.

Por exemplo, se assistirmos ao Slave Leia PSA de Kaley Cuoco , descobrimos que a mídia é atendida v10.lscache5.c.youtube.com.

várias conexões com a internet

Garanto que o YouTube tem mais de uma conexão com a Internet. Não obstante todas as outras técnicas, mesmo que o YouTube realmente fosse um único site e um único servidor, ele poderia, em teoria, ter conexões com todas as outras redes às quais estava veiculando vídeo. No mundo real, isso não é possível, é claro, mas considere a idéia.

Qualquer uma ou todas essas idéias (e mais!) Podem ser usadas para oferecer suporte a uma rede de entrega de conteúdo . Leia esse artigo se quiser saber mais.

MikeyB
fonte
"em teoria, poderia ter conexões com todas as outras redes às quais estava veiculando vídeo. No mundo real, isso não é possível, é claro, mas considere a idéia". Por que não é possível no mundo real? Você pode se inscrever para muitos provedores de internet
user1034912
Você realmente deseja ter conexões independentes com mais de 35 mil redes separadas? Não é prático.
MikeyB
12

Você está errado ao imaginar que o YouTube (também conhecido como Google) tem apenas um servidor; este inforgraphic pode ajudar a ilustrar a escala do sistema que suporta esse serviço.

Mesmo que você tenha apenas um ponto de presença, você pode absolutamente ter mais de um servidor atrás de um único nome e até IP, usando ferramentas como balanceadores de carga e tudo.

O Google, no entanto, tem muitos pontos de presença e usa ferramentas como AnyCast - uma técnica para publicar o mesmo IP em vários locais da Internet, e encaminhar as pessoas para o pool de servidores mais próximo - para apoiar a infraestrutura.

Daniel Pittman
fonte
11
Como o Google coloca um milhão de servidores em todo o mundo? Eles alugam os servidores? Não seria difícil para eles manter a segurança dos dados gerenciando todos esses servidores de terceiros?
user1034912
2
Eles possuem cada um deles. Sério, eles compram - bem, fazem, hoje em dia - eles. Isso custa tanto quanto você imagina, em alguns aspectos, mas menos em outros.
Daniel Pittman
11
investor.google.com/financial/tables.html pode ajudar; Q4, 2011, 10.000 milhões de dólares chegaram. Sério, eles estão em uma escala que você não pode imaginar.
22812 Daniel Pittman
2
@ user1034912 - sim, é impressionante. Mas este é o Google , então por que diabos não? Existem milhares de datacenters em todo o mundo, o Google opera uma pequena fração deles.
tombull89
11
@ Tomtom - Por que não seria difícil de acreditar para um usuário que não está familiarizado com a tecnologia de servidor? É rude e extremamente ofensivo dizer que alguém que não conhece o Google tem centenas de servidores está vivendo sob uma pedra. Vá lá fora e pergunte a alguns especialistas não técnicos regulares e garanto que eles não sabem a escala dos servidores do Google ou mesmo o que são. Além disso, as pessoas comuns normalmente navegam nos balanços? Você sempre precisa ler todas as notícias sobre data centers? Honestamente, eu não me importo com o quanto você tem, mas ser grosseiro, desrespeitoso e humilhante não leva a lugar algum na vida.
DMan
3

Vou tocar um pouco no lado da rede: o Google tem um Ponto de Presença (PoP) em 73 datacenters exclusivos ao redor do mundo (sem incluir os seus). Eles são membros de 69 trocas exclusivas na Internet . O Google está em mais datacenters e pontos de troca na Internet do que em outras redes listadas no peeringdb.

A capacidade total de troca de internet do Google é> 1,5Tbps, e esse 1,5Tbps é reservado para redes com> 100Mbps de tráfego com o Google, mas menos do que eu imagino em torno de 2-3Gbps. Depois de ter 'volume suficiente' , você será movido para o PNI (Private Peering).

Além do emparelhamento do Internet Exchange e do privado (com AS15169), o YouTube também opera uma rede de trânsito: AS43515, e outra rede que eu assumo é para peering / estouro pago, AS36040. O Google também opera servidores de cache global do Google , para que os ISPs sejam implantados ainda mais localmente em suas redes. (Dados de peeringdb, bgp.he.net).

Com base na minha experiência, acredito que o YouTube usa muito mais do que apenas geolocalização IP ou Anycast para escolher um local para veicular vídeos.

O Google administra uma enorme rede global de backbone, eles possuem fibra escura , financiaram cabos submarinos . O volume de tráfego gerado pelo YouTube é enorme! Eu acho que o YouTube tem um volume de tráfego de pico de> 12Tbps. O Google representa pelo menos 7% (e provavelmente> 10%) de todo o tráfego da Internet entre domínios.

Então, para realmente responder à sua pergunta, do ponto de vista da rede, para escalar como o YouTube, você precisa fazer um investimento maciço em sua rede - da fibra no solo ao equipamento WDM e aos roteadores. Você precisa obter o conteúdo e a rede o mais próximo possível dos seus usuários. Isso geralmente significa peering, IXs e talvez um pouco de trânsito. Você precisa informar de maneira inteligente aos usuários de onde obter o conteúdo para manter o tráfego o mais uniformemente distribuído e barato possível. E, é claro, você precisa ter uma infraestrutura de servidor massiva para armazenar, processar, converter e fornecer 4 bilhões de visualizações por dia!

Se você está curioso sobre o lado do servidor, escrevi uma postagem no blog que detalha algumas das imagens do datacenter lançadas recentemente.

virtualmente
fonte
Btw você trabalha para o Google?
Pacerier
2

Se você quiser saber mais sobre sistemas de grande escala e as tecnologias que essas empresas usam, a melhor fonte agora é http://highscalability.com

As maiores empresas como Google ou Akamai, sempre possuem componentes que eles mesmos escreveram / criaram. (por exemplo, a Akamai desenvolveu um servidor da web para seus serviços)

Gabor Vincze
fonte
Alguns dos dados estão desatualizados.
Pacerier