YouTube e il database: il ruolo di Vitess

In questo articolo cercheremo di vedere come YouTube gestisca il proprio database, in cui sono archiviate le informazioni necessarie a catalogate tutti i video, compresi quelli dei canali aziendali su YouTube

Le informazioni dunque, come i tag, le descrizioni, i dati utente,  non i video stessi.

A fronte di un volume di interrogazioni sempre in crescita al originario database MSQL, gli sviluppatori di YouTube hanno implementato un framework aggiuntivo, Vitess.

Vitess è un sistema open source di clustering di database, cioè un database suddiviso su più nodi,  che viene eseguito tramite  MySQL, il database open source più diffuso al mondo.

E’ un esempio di come funzioni la sinergia tra Google e YouTube. Non solo in termini di ricerca ma anche e soprattutto in termini di sviluppo tecnologico

Ha funzionalità di partizionamento orizzontale integrate che consentono agli sviluppatori di ridimensionare il proprio database senza aggiungere alcuna logica di partizionamento all’applicazione.

Vitess gestisce anche automaticamente failover e backup. Amministra i server, migliora le prestazioni del database riscrivendo in modo intelligente le query ad alto consumo di risorse e migliorando il sistema di cache.

Oltre a YouTube, il framework viene utilizzato anche da altri importanti player, come GitHub, Slack, Square, New Relic

Come YouTube ha tratto vantaggio da Vitess

Su YouTube, prima dell’impiego di Vitess,  con ogni connessione via MySQL aveva una richiesta di 2 MB. C’era un costo di risorse non indifferente associato a ogni connessione che obbligava il sistema ad aumentare la quantità di RAM all’accrescere del numero di connessioni ai propri canali YouTube

Vitess ha ridotto drasticamente la voracità di risorse, grazie all’architettura scalabile e al linguaggio di programmazione “GO“. Si tratta di un linguaggio open source sviluppato da Google (che è il proprietario di YouTube) per sviluppare software multipiattaforma, veloce, scalabile e performante

database YouTube

Distribuzione su cloud e sinergia tra Google e YouTube

Vitess è nato per il cloud, proprio per la sua architettura scalabile.

Su YouTube, Vitess viene eseguito in un ambiente containerizzato con Kubernetes come strumento di gestione dei vari reparti. Il nome Kubernetes deriva dal greco, significa timoniere o pilota.

Google ha reso open-source il progetto Kubernetes nel 2014.

Kubernetes unisce l’ esperienza di Google nella gestione di carichi di lavoro importanti, su scala planetaria, allo sviluppo cui contribuisce l’intera comunità informatica.

Google Cloud Platform è una ambiente di cloud computing che gira sulla stessa infrastruttura che Google utilizza internamente per i suoi prodotti destinati agli utenti finali, come il motore di ricerca di YouTube, appunto.

I canali YouTube  in questo modo gpdono ella distribuzione di contenuti a bassa latenza, cioè con un ritardo minimo,  e a basso consumo di risorse proprio perchè si appoggia alla rete globale di Google.

YouTube sfrutta i POP (Point of presence) di Google distribuiti a livello planetario per permettere al proprio client di recuperare i dati molto più velocemente invece di recuperarli dal server di origine

In questo aspetto sta l’ ingegnosità del sistema: come YouTube fa con i propri utenti, a sua volta si comporta con l’infrastruttura di Google

cloud YoyTube
video_canale_youtube_azienda_002

Gestione dei disastri

Il disaster recovery si giova della scalabilità permessa da Vitess.

Gli sviluppatori avevano bisogno di un sistema che si rendesse indipendente dalla complessità del sistema, ma consentisse loro di affrontare le sfide della scalabilità per gestire l’infrastruttura con un sforzo che fosse accettabile e non in proporzione diretta con le dimensioni.

Questo per porre in essere procedure per superare interruzioni di corrente, disastri naturali come terremoti e incendi. Implica la presenza di ridondanze e il backup dei dati degli utenti in data center situati in diverse zone geografiche del mondo.

Video per imprese e aziende

Summary
YouTube il database e il ruolo di Vitess
Article Name
YouTube il database e il ruolo di Vitess
Description
YouTube il database e il ruolo di Vitess - partizionamento del database con le informazioni dei canali YouTube - clustering del database di YouTube
Author
Publisher Name
Giuseppe Galliano Studio
Publisher Logo