Nelle righe che seguiranno, mostreremo il modo in cui YouTube riesce a gestire il proprio database, nel quale sono inserite le informazioni indispensabili per catalogare i video, tra le quali i tag, i dati dell’utente e le descrizioni. Si tratta di informazioni sempre più curate dagli utenti che desiderano ottimizzare il proprio canale aziendale su YouTube
In risposta al volume delle interrogazioni crescenti, rispetto all’ originario database MSQL, YouTube è stato arricchito di un framework supplementare, Vitess.
Vitess si configura come un sistema libero di clustering di database, il che significa che il database viene suddiviso in diversi nodi, eseguito grazie MySQL, database libero tra i più diffusi al mondo.
Questo è un esempio del funzionamento della sinergia Google-YouTube sia in termini di ricerca che di sviluppo. La sua funzionalità permette il partizionamento senza modificare la logica preesistente nella applicazione.
Vitess interviene automaticamente in caso di failover e backup, gestisce i server, ottimizza il funzionamento del database, riduce la quantità di risorse impiegate dalle query che ne richiedo una quantità elevata e migliora il funzionamento del sistema di cache.
Il framework viene impiegato da diversi player, tra i quali spiccano GitHub, Square, New Relic e Slack.
Vantaggi per YouTube derivanti da Vitess
Prima di Vitess, YouTube impiegava 2MB ad ogni connessione effettuata al database MySQL. Questo dispendio di risorse obbligava YouTube ad implementare continuamente la capacità della RAM.
Vitess ha permesso di ridurre la quantità di risorse impiegate, grazie alla nuova architettura scalabile e alla programmazione effettuata con il linguaggio “GO”. Questo linguaggio ad utilizzo libero è stato sviluppato da Google per software multipiattaforma ottimizzati.
Cloud e lavoro sinergico Google-YouTube
Vitess originariamente impiegato nel cloud grazie alla sua struttura scalabile.
All’interno di YouTube l’ambiente, nel quale viene impiegato Vitess, è organizzato in container che vengono gestiti da Kubernetes.
La parola Kubernetes deriva dal greco, significa timoniere o pilota.
Google ha reso open-source il progetto Kubernetes nel 2014, permettendo l’unione della competenza Google con la creatività di tutti i fruitori.
La piattaforma Google Cloud rappresenta un ambiente di cloud computing utilizzata anche nell’infrastruttura interna di Google per realizzare i propri prodotti riservati agli fruitori finali, come quelli di YouTube.
Google Cloud Platform, ambiente cloud computing, gira sulla medesima infrastruttura utilizzata da Google per creare i prodotti destinati ai propri clienti e fruitori, di cui ne è un esempio il motore di ricerca utilizzato per YouTube.
Grazie a questo modo di lavorare YouTube si serve della distribuzione di contenuti a bassa latenza, ossia con ritardi minimi e a bassi consumi in virtù del fatto che si avvale della rete di Google.
YouTube approfitta dei POP, acronimo di Point of presence, utilizzati da Google e distribuiti globalmente per agevolare il recupero delle informazioni senza la necessità di ricorrere al server originale.
La genialità risiede in tutto questo oltre al fatto che il meccanismo è applicato ad ogni livello quindi YouTube nei confronti dei fruitori e Google a livello di infrastruttura.
Recupero del disastro
Vitess grazie alla scalabilità garantisce un adeguato disaster recovery.
Gli sviluppatori necessitavano di un sistema indipendente rispetto alla propria complessità e che allo stesso tempo permettesse di intervenire sulla scalabilità in modo da gestire adeguatamente tutta l’infrastruttura con uno sforzo accettabile e non direttamente collegato alle dimensioni.
Ciò permette di utilizzare procedure idonee a superare efficacemente problematiche legate all’interruzione di corrente oppure ad eventi naturali, come incendi o terremoti. Per fare questo sono necessarie delle ridondanze e dei backup dislocati relativi ai dati degli utenti.