Youtube, i dati e il database gestito con Vitesse

Come può riuscire YouTube a memorizzare questa quantità di impressionante dati?

Tutti i video erogati da YouTube sono archiviati in numerosi hard-disk raggruppati nei data-center di Google. Per organizzare e gestire questa mole di informazione viene utilizzato il Google File System BigTable, introdotto nel 2004.
E’ uno strumento pensato per gestire petabyte di contenuti, grazie al collocamento dell’elaborazione e dello stoccaggio in numerose macchine, come previsto dal principio di scalabilità.
I video sono archiviati nel loro formato: ne abbiamo parlato nell’articolo sui codec per ottenere una latenza minima per i video sia in streaming che nel canali aziendali

Le informazioni accessorie, tra cui metadati, preferenze, informazioni di profilo, impostazioni, informazioni necessarie per il recupero dei contenuti vengono collocati nel database MySQL e implementato con Vitess. Ne abbiamo discusso nell’articolo sulla gestione del database di YouTube
I server impiegati sono prodotti standard, disponibili in grandi quantità a prezzi economici, inoltre richiedo un minimi sforzi e costi per essere installati e configurati. Solitamente sono sostituiti in caso di malfunzionamento piuttosto che essere riparati riducendo ulteriormente i costi, soprattutto se confrontati con macchine fatte su misura.

YOUTUBE-canale-aziendale

Hard-disk e YouTube

Il fabbisogno di spazio deputato all’archiviazione quotidiana di YouTube raggiunge il petbyte, ossia 1000 terabyte. Non dimentichiamo che oltre ai canali con visualizzazioni impressionanti degli YouTuber più famosi, esistono moltissimi altri canali aziendali per video in diretta o on demand di imprese o PMI

Ad oggi lo strumento più usato è il disco rigido rotante grazie al costo minimo e all’elevata affidabilità.
I supporti SSD solidi sono altamente performanti a confronto degli hard-disk rotanti, grazie all’uso dei semiconduttori, purtroppo sono molto costosi e implicano una perdita dei contenuti dovuti all’utilizzo intensivo. Queste sue caratteristiche lo rendono decisamente uno strumento non ottimale.

Si ipotizza che Google abbia in progettazione una gamma di dischi ideati per data-center utilizzabili su larga scala all’interno della piattaforma YouTube.
La valutazione relativa alla qualità degli hard-disk comprende 5 parametri:
1. velocità al secondo di elaborazione in input e in output;
2. sicurezza del prodotto;
3. spazio di archiviazione elevato;
4. ridotti costi legati all’acquisto, all’alimentazione e alla manutenzione;
5. latenza costante e affidabilità.

hard disk e youtube

Il database di YouTube: qual è il ruolo del framework Vitess

All’interno di questo paragrafo troverete informazioni relative alle modalità di gestione dei dati contenuti nel database di YouTube. Non ci riferiamo tanto ai contenuti video( per i codec di compressione di Youtube si rimanda a questo articolo)  quanto a tutte le informazioni che permettono la corretta catalogazione dei singoli video e che comprendono descrizioni, tag e dati identificativi degli utenti.
Per sopperire al grande traffico di interrogazioni, in continua crescita rispetto a quello gestito dal database MSQL utilizzato originariamente, gli sviluppatori hanno inserito un ulteriore framework denominato Vitess.

Grazie al sistema Vitess, che effettua il raggruppamento dei dati in cluster è possibile ottimizzare il database ad accesso libero MySQL.
Questo sistema mostra il funzionamento sinergico di Google con YouTube, relativamente allo sviluppo tecnologico e alla ricerca. Essendo, inoltre, in grado di ripartire il database in partizioni integrate orizzontali permette agli sviluppatori di modificarne le dimensioni senza intervenire a livello di logica di partizionamento.

Vitess garantisce la gestione in automatico delle operazioni di failover e di backup. Provvede all’amministrazione dei server, oltre a migliorare le performance del database riducendo le richieste di risorse delle query ad elevato consumo ed ottimizzando la gestione delle cache.
Il framework è impiegato da un elevato numero di player, di cui sono esempio Sack, GitHub, Square e New Relic.

YouTube-Vitesse

In che modo YouTube trae vantaggi dall’uso di Vitess

Precedentemente l’impiego di Vitess, YouTube aveva un grande dispendio di risorse ad ogni singolo accesso a MySQL, fino a 2MB. A causa dell’eccessivo consumo di risorse, YouTube era costretto ad accrescere la potenza della RAM.
Con Vitess si sono ridotti i consumi, soprattutto grazie alla presenza di una architettura nuova scalabile e al linguaggio usato in fase di programmazione, “GO”. Si tratta di un linguaggio sviluppato e diffuso da Google per la realizzazione di software impiegabili in diverse piattaforme e che risultino altamente performanti.
Vitess, ad architettura scalabile, è stato creato appositamente per il cloud.

L’ambiente, nel quale è utilizzato Vitess su YouTube è organizzato in partizioni con Kubernetes deputato alla gestione dei singoli reparti.
Il termine Kubernetes, dal greco pilota e identifica il progetto reso open, da Google, nel 2014. Grazie a questa liberalizzazione Google ha messo a disposizione la propria comprovata esperienza aprendosi alla cooperazione con chiunque voglia contribuire al miglioramento del software.

YouTube, ricorre alla distribuzione dei contenuti a bassa latenza, questo comporta la riduzione dei consumi, soprattutto grazie al fatto che usa la rete di Google, e dei tempi.
YouTube trae vantaggio dall’uso dei POP, che significa Point of presence, usati da Google e resi disponibili globalmente allo scopo di rendere agevole il recupero dei dati ovviando al problema di ricorrere al server originale.
Questo elemento rende geniale il sistema: YouTube si comporta con i propri utenti come Google fa a livello strutturale.

Amministrazione dei disastri

Vitess, essendo basata sulla scalabilità, favorisce il disaster recovery.
Gli sviluppatori sentivano il bisogno di semplificazioni del sistema e di indipendenza dalla complessità del sistema stesso, si richiedeva inoltre la possibilità di intervenire sulla scalabilità riducendo lo sforzo senza subire sovraccarico di lavoro legato alle dimensioni.
La risoluzione dei problemi derivanti da interruzioni di tensione o causati da terremoti o da altri eventi catastrofici richiede una certa ridondanza dei dati e la dislocazione in diverse parti del mondo dei contenuti salvati dagli utenti.