Tecnologie che consentono la distribuzione su larga scala di YouTube?


34

Youtube, come sappiamo, è enorme. Ha migliaia di utenti simultanei in streaming almeno 2 megabyte per video. Ovviamente, questo diventa un sacco di traffico ... troppo per un singolo server.

Quali tecnologie di rete consentono di spingere 4 miliardi di video al giorno?

Risposte:


51

Ridimensionamento sul backend

In una configurazione molto semplice, una voce DNS passa a un IP che appartiene a un server. Tutti in tutto il mondo vanno su quella singola macchina. Con abbastanza traffico, è troppo da gestire molto prima di arrivare alle dimensioni di YouTube. In uno scenario semplice, aggiungiamo un bilanciamento del carico. Il compito del bilanciamento del carico è reindirizzare il traffico verso vari server back-end mentre appare come un server.

Con tutti i dati di YouTube, sarebbe troppo aspettarsi che tutti i server siano in grado di servire tutti i video, quindi abbiamo un altro livello di riferimento indiretto da aggiungere: lo sharding . In un esempio inventato, un server è responsabile di tutto ciò che inizia con "A", un altro possiede "B" e così via.

Avvicinando il bordo

Alla fine, tuttavia, la larghezza di banda diventa intensa e stai spostando MOLTI dati in una stanza. Quindi, ora che siamo super popolari, lo spostiamo da quella stanza. Le due tecnologie che contano qui sono le reti di distribuzione dei contenuti e Anycasting .

Dove ho questi grandi file statici richiesti in tutto il mondo, smetto di indicare i collegamenti diretti ai miei server di hosting. Quello che faccio invece è mettere un link al mio server CDN. Quando qualcuno chiede di visualizzare un video, lo richiede al mio server CDN. Il CDN è responsabile per avere già il video, chiederne una copia dal server di hosting o reindirizzarmi. Ciò varierà in base all'architettura della rete.

In che modo è utile quella CDN? Bene, un IP può effettivamente appartenere a molti server che si trovano in molti luoghi in tutto il mondo. Quando la tua richiesta lascia il tuo computer e arriva al tuo ISP, il loro router mappa il percorso migliore (il più breve, il più veloce, il minor costo ... qualunque sia la metrica) a quell'IP. Spesso per un CDN, che sarà sulla o vicino alla tua rete Tier 1 più vicina .

Quindi, ho richiesto un video da YouTube. La macchina reale su cui è stata memorizzata è almeno iad09s12.v12.lscache8.c.youtube.come tc.v19.cache5.c.youtube.com. Questi vengono visualizzati nella fonte della mia pagina Web che sto guardando e sono stati forniti da una qualche forma di server di indicizzazione. Ora, dal Maine ho scoperto che il server TC19 si trovava a Miama, in Florida. Da Washington, ho scoperto che il server TC19 si trovava a San Jose, in California.


4
Il tuo esempio inventato di sharding è il migliore che abbia mai visto. Tutti sembrano complicare notevolmente questo semplice concetto per qualche motivo.
kizzx2,

@Jeff, sarebbe fantastico se aggiungi alcune citazioni o chiarisci che si tratta di una speculazione dell'utente finale.
Pacerier,

23

Diverse tecniche sono utilizzate per siti di grandi dimensioni.

www.youtube.com -> qualsiasi numero di indirizzi IP

Diamo un'occhiata al 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

Quindi www.youtube.com potrebbe effettivamente andare a diversi indirizzi IP.

indirizzi IP anycasted

Un singolo IP può essere gestito contemporaneamente da un numero qualsiasi di sistemi autonomi (una rete su Internet). Ad esempio, molti dei server DNS di root e del 8.8.8.8server DNS di Google sono trasmessi in molti punti in tutto il mondo. L'idea è che se sei negli Stati Uniti, colpisci la rete degli Stati Uniti e se sei nel Regno Unito, colpisci la rete del Regno Unito.

supporti provenienti da server diversi

Solo perché sei acceso www.youtube.com, ciò non significa che tutto il contenuto debba provenire dallo stesso server. Proprio su questo sito, vengono fornite risorse statiche sstatic.netanziché serverfault.com.

Ad esempio, se guardiamo Slave Leia PSA di Kaley Cuoco scopriamo che i media sono serviti da v10.lscache5.c.youtube.com.

connessioni internet multiple

Ti assicuro che Youtube ha più di una connessione Internet. Nonostante tutte le altre tecniche, anche se Youtube fosse davvero un singolo sito e un singolo server, in teoria potrebbe avere connessioni a ogni singola altra rete a cui serviva il video. Nel mondo reale questo non è ovviamente possibile, ma considera l'idea.

Una o tutte queste idee (e altro!) Possono essere utilizzate per supportare una rete di distribuzione di contenuti . Leggi l'articolo se desideri saperne di più.


"in teoria potrebbe avere connessioni con ogni altra rete a cui serviva il video. Nel mondo reale ciò non è possibile, ovviamente, ma considera l'idea." Perché non è possibile nel mondo reale? Puoi abbonarti a molti fornitori di servizi Internet
user1034912

Vuoi davvero avere connessioni indipendenti a più di trentacinquemila reti separate? Non è pratico.
MikeyB,

12

Ti sbagli ad immaginare che YouTube (aka Google) abbia un solo server; questo inforgrafico potrebbe aiutare a illustrare la scala del sistema che supporta tale servizio.

Anche se hai solo un punto di presenza, puoi assolutamente avere più di un server dietro un solo nome e persino IP, usando strumenti come i bilanciatori del carico e tutti.

Google, tuttavia, ha moltissimi punti di presenza e utilizza strumenti come AnyCast - una tecnica per pubblicare lo stesso IP in più punti su Internet e fare in modo che le persone vengano indirizzate al pool di server più vicino che lo possiede - per supportare l'infrastruttura.


1
In che modo Google inserisce un milione di server in tutto il mondo? Affittano i server? Non sarebbe difficile per loro mantenere la sicurezza dei dati gestendo tutti quei server di terze parti?
user1034912

2
Possiedono ognuno di loro. Scherzi a parte, li comprano - beh, li fanno in questi giorni - loro. Questo costa quanto potresti immaginare, in qualche modo, ma meno in altri.
Daniel Pittman,

1
investor.google.com/financial/tables.html potrebbe aiutare; Q4, 2011, sono arrivati ​​10.000 milioni di dollari. Seriamente, sono su una scala che non puoi immaginare.
Daniel Pittman,

2
@ user1034912 - sì, è sconcertante. Ma questo è Google , quindi perché diavolo no? Ci sono migliaia di datacenter in tutto il mondo, Google sembra gestirne una minima parte.
tombull89,

1
@ TomTom - Perché non sarebbe difficile credere per un utente che non ha familiarità con la tecnologia server? È scortese ed estremamente offensivo dire che qualcuno che non conosce Google ha centinaia di server che vive sotto una roccia. Vai fuori e chiedi a una manciata di non esperti di tecnologia e garantisco che non conoscono la scala dei server di Google o nemmeno cosa siano. Inoltre, le persone normali navigano normalmente nei bilanci? Devi sempre leggere tutte le notizie sui data center? Onestamente, non mi importa quanto rappresentante hai ma essere scortese, irrispettoso e umiliante non ti porta da nessuna parte nella vita.
DMan

3

Toccherò un po 'il lato della rete delle cose: Google ha un Point of Presence (PoP) in 73 data center unici in tutto il mondo (escluso il proprio). Sono membri di 69 scambi Internet unici . Google si trova in più datacenter e punti Internet Exchange rispetto ad altre reti elencate su peeringdb.

La capacità totale di scambio di Internet di Google è> 1,5Tbps e che 1,5Tbps è riservato alle reti con> 100 Mbps di traffico con Google, ma inferiore a quanto immagino intorno a 2-3Gbps. Dopo avere "volume sufficiente" , si passa al peering privato (PNI).

Oltre al peering di Internet Exchange e al peering privato (con AS15169), YouTube gestisce anche una rete di transito: AS43515 e un'altra rete che presumo sia per il peering / overflow a pagamento, AS36040. Google gestisce anche i server di Google Global Cache , affinché gli ISP possano implementare ancora più localmente all'interno della loro rete. (Dati da peeringdb, bgp.he.net).

In base alla mia esperienza, credo che YouTube utilizzi molto più della semplice geolocalizzazione IP o Anycast per scegliere una posizione da cui pubblicare i video.

Google gestisce un'enorme rete globale di backbone, possiede una fibra scura , ha finanziato cavi sottomarini . Il volume di traffico generato da YouTube è enorme! Immagino che YouTube abbia un volume di traffico di picco di> 12Tbps. Google rappresenta almeno il 7% (e probabilmente> 10%) di tutto il traffico Internet interdominio.

Quindi, per rispondere effettivamente alla tua domanda, dal punto di vista della rete, al fine di ridimensionare come YouTube devi fare un investimento enorme nella tua rete: dalla fibra nel terreno alle apparecchiature WDM e ai router. Devi avere il contenuto e la rete il più vicino possibile ai tuoi utenti. Questo di solito significa peering, IX e forse un po 'di transito. Devi essere in grado di dire agli utenti in modo intelligente da dove ottenere i contenuti per mantenere il traffico nel modo più uniformemente distribuito ed economico possibile. E, naturalmente, devi disporre della massiccia infrastruttura server per archiviare, elaborare, convertire e fornire 4 miliardi di visualizzazioni al giorno!

Se sei curioso del lato server, ho scritto un post sul blog che suddivide alcune delle immagini del datacenter rilasciate di recente.


Tra l'altro lavori per Google?
Pacerier,

2

Se vuoi saperne di più sui sistemi su larga scala e sulle tecnologie utilizzate da queste aziende, la migliore fonte ora è http://highscalability.com

Le più grandi aziende come Google o Akamai, hanno sempre componenti che hanno scritto / creato da soli. (ad esempio Akamai ha sviluppato un server web per i loro servizi)


Alcuni dei dati sono obsoleti però ....
Pacerier
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.