Dimensionamento no backend
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ê chegar ao tamanho do YouTube. Em um cenário simples, adicionamos um balanceador de carga. O trabalho do balanceador de carga é redirecionar o tráfego para vários servidores de backend enquanto aparece como um servidor.
Com tantos dados quanto o YouTube, seria demais esperar que todos os servidores pudessem veicular todos os vídeos, por isso temos outra camada de indireção a ser adicionada: sharding . Em um exemplo inventado, um servidor é responsável por tudo que começa com "A", outro possui "B" e assim por diante.
Movendo a borda para mais perto
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 que importam aqui são redes de distribuição de conteúdo e Anycasting .
Onde eu 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 em vez disso é colocar um link para o meu servidor CDN. Quando alguém pede para ver um vídeo, eles perguntam ao meu servidor CDN por ele. O CDN é responsável por já ter o vídeo, pedindo uma cópia do servidor de hospedagem, ou redirecionando-me. Isso varia de acordo com a arquitetura da rede.
Como isso é útil para o CDN? Bem, um IP pode realmente pertencer a muitos servidores que estão em muitos lugares em todo o mundo. Quando o seu pedido deixa o seu computador e vai para o seu ISP, o seu router mapeia o melhor caminho (o mais curto, o mais rápido, o menor custo ... qualquer que seja a métrica) para esse IP. Freqüentemente, para um CDN, ele estará na ou perto da rede Camada 1 mais próxima.
Então, solicitei um vídeo do YouTube. A máquina real em que foi armazenada é pelo menos iad09s12.v12.lscache8.c.youtube.com
e tc.v19.cache5.c.youtube.com
. Esses aparecem na fonte da minha página que estou vendo e foram fornecidos por alguma forma de servidor de indexação. Agora, do Maine, descobri que o servidor tc19 estava em Miama, na Flórida. De Washington, encontrei o servidor tc19 em San Jose, Califórnia.