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.com
e 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.