Con l’articolo che state leggendo tenteremo di spiegare in che modo YuoTube riesca a gestire un database di dimensioni importanti, per molti inimmaginabili, contenente tutte le informazioni (tra cui tag, descrizione, dati dell’utente) utili a catalogare ogni video, erogato in streaming o on demand poco importa
Il rilevante volume di ricerche ha un trend sempre crescente rispetto a quanto ipotizzato con database originario MSQL; per questo gli sviluppatori della piattaforma hanno deciso di ottimizzare il processo di gestione con l’aggiunta del framework Vitess. Ricordiamo anche che tutti i video trasmessi live su YouTube sono considerati “news“, aumentando così il carico di interrogazioni
Il sistema libero, Vitess, consente di effettuare il clustering dei database, ossia la suddivisione del database in nodi. Per garantirne la funzionalità gli sviluppatori si appoggiano sul database open più utilizzato al mondo, MySQL.
Questo sistema rappresenta un esempio di sinergia tra YouTube e Google da più punti di vista come ricerca e sviluppo tecnologico. Ha la capacità di effettuare la partizione orizzontale integrata, ciò consente agli sviluppatori di gestire la dimensione del database anche senza inserire nuove logiche di partizionamento.
Vitess è in grado di gestire in modo automatico backup e failover, di amministrare server, di migliorare le prestazioni, la gestione delle cache e delle richieste che necessitano di un’elevata quantità di risorse.
Il framework è utilizzato da molti player, ad esempio New Relic, Square, Slack, GitHub.

Vantaggi derivanti dall’utilizzo di Vitess da parte di YouTube

Nel periodo precedente all’utilizzo di Vitess, YouTube arrivava a consumare 2MB ad accesso a MyMSQL con conseguente necessità di aumentare la RAM in relazione alla numerosità delle connessioni.
Vitess ha contribuito alla riduzione del fabbisogno di risorse. I vantaggi più rilevanti derivano dall’utilizzo del linguaggio di programmazione “GO” e all’ innovativa architettura.
È un linguaggio creato e diffuso dagli sviluppatori di Google allo scopo di permettere a tutti di creare nuovi software utilizzabili nelle diverse piattaforme.

Diffusione nel cloud e collaborazione tra Google e YouTube

Vitess è stato creato per il cloud ed è dotato di una struttura architettonica scalabile.
L’ambiente YouTube su cui si esegue Vitess è containerizzato. Per la gestione dei reparti viene impiegato Kubernetes.
Il termine Kubernetes viene dal greco “pilota”. Il progetto è stato liberalizzato nel 2014, creando una coesione tra l’esperienza di Google e la creatività e le competenze dell’utenza.
Google Cloud Platform si configura come un ambiente di cloud computing, applicata alla infrastruttura che Goole usa per i propri prodotti come il motore di ricerca di YouTube.
YouTube, grazie a ciò, ottiene il risultato prefissato, cioè la trasmettere video con una latenza ridotta, il che significa ridurre al minimo i tempi di caricamento e la riduzione dei consumi grazie al supporto della rete messa a disposizione da Google.
YouTube utilizza i POP di Google, cioè Point of Presence, e condivisi a livello globale in modo da consentire al client di reperire velocemente le informazioni senza dover passare per il server originale.
Questo è l’aspetto ingegnoso di tutto il sistema: tanto quanto YouTube lo applica ai suoi utilizzatori tanto Google lo utilizza all’interno delle proprie infrastrutture.

Recupero dei disastri e Vitess

Vitess, grazie alla sua caratteristica scalabilità, supporta il Recupero dei Disastri. Gli sviluppatori esprimevano il bisogno di ricorrere ad un sistema che non fosse intrappolato dalla propria complessità e che fosse libero da influenze legate alla quantità di dati elaborati e su cui poter lavorare a livello di scalabilità con impegno equo e slegato dalle dimensioni del sistema.
I problemi legati a assenza di corrente, eventi avversi come terremoti o anche incendi possono essere gestiti al meglio grazie alla presenza di dati ridondanti e alla presenza di data-center che accolgono i backup degli utenti.

 

Ph szabo-viktor-unsplash