YouTube si posiziona la secondo posto dei siti più popolari al mondo, dopo Google. Dalla primavera 2019, 500 ore circa di contenuti vengono caricati ogni singolo minuti sulla piattaforma.
La piattaforma vanta 2 mld di visitatori, che generano mld di visualizzazioni e che visionano un mld di ore di contenuti video ogni giorno. Oltre ad un uso ludico e di entertainment, YouTube si sta affermando anche come piattaforma per scopi commerciali e educativi su cui ospitare anche webinar e seminari on line
In questo articolo si parla di come YouTube, attraverso la propria infrastruttura, sia in grado di archiviare questa mole di dati resi disponibili a miliardi di fruitori nello stesso momento.
Infrastruttura di BE
I video più popolari vengono distribuiti da un complesso e sofisticato sistema di CDN, costituito da un’insieme di server organizzati in una rete e disposti in tutto il mondo. I server contengono una copia identica del contenuto allo scopo di erogarlo all’utente geograficamente più vicino. I video meno richiesti vengono recuperati direttamente dalla banca-dati centrale.
Ciascun video viene identificato con un codice univoco. Nel momento in cui il video viene caricato subisce un’elaborazione automatizzata che genera miniature, metadati, trascrizioni, codifiche, impostazioni per attribuirne il valore economico e altro.
La compressione dei video avviene con l’impiego di VP9 o H264/MPEG-4AVC, i quali sono in grado di ridurre il consumo di banda della metà rispetto altri codec comunque capaci di mantenere lo standard qualitativo dei file HD o 4K. E’ un aspetto particolarmente caro ai produttori di contenuti video, non solo di carattere ludico, ma anche e soprattutto aziendale. In questo articolo dedicato al mondo dell’impresa si analizzano i tipi di video impiegati sul canale YouTube dell’azienda
Dynamic Adaptive Streaming è il protocollo applicato da YouTube alla gestione dello streaming in ambiente HTTP. Questo strumento permette streaming rapido e adattabile appoggiato a server HTTP convenzionali. Con questo strumento, il contenuto è disponibile in diverse risoluzioni e a diverse velocità di visualizzazione. Di questo se ne giovano tutte le case di produzione (ma non solo) che realizzano live in streaming; sull’argomento è interessante questo articolo che descrive come fare una diretta in streaming su YouTube
Ogni client di YouTube utilizzato dall’utente adatta in automatico il rendering sulla base della velocità di connessione allo scopo di minimizzare il buffering, riducendo la latenza; ne abbiamo parlato in questo articolo suglia spetti legati ai canali aziendali su YouTube

I database: MSQL e Vitess
Gli sviluppatori hanno introdotto un ulteriore framework per gestire la base di dati di YouTube il cui traffico si basa sull’ applicazione del sistema MSQL. Il framework aggiuntivo si chiama Vitess e consiste in un sistema in grado di replicare interi database distinguendo il master “originale” da quelli copiati alleggerendo il lavoro di interrogazione del database principale. Eliminando l’imbuto dovuto alla presenza di una sola banca-dati si migliorano la velocità e l’affidabilità nel tempo.
Il master viene utilizzato per memorizzare i contenuti e successivamente per divulgarli mentre tutti i nodi sono coinvolti nell’erogazione dei contenuti. Questo spiega le divergenze dei numeri relativi al sistema dei nodi e quelli relativi al master.
Ripartizione del database
I database vengono replicati, secondo un principio di scalabilità, con il protocollo master-master o master-slave e vengono ripartiti tra i diversi nodi.
A seguito della ripartizione del data-base, i dati vengono distribuiti all’interno di numerose macchine, aumentando così la velocità della scrittura. Ciascuna macchina è dotata di copie indipendenti che assicurano ridondanza e velocità.