L’inverno sta arrivando: divano, coperte e Netflix. Quante volte avete sentito e messo in pratica questa frase? La piattaforma di video on-demand ha ormai conquistato il mondo, grazie al prezzo abbordabile e alla qualità e quantità di contenuti che propone.
Vi siete mai chiesti, però, che cosa succede quando premete il tasto “Play”? Come fanno le vostre serie tv preferite ad arrivare così velocemente e facilmente? Sappiamo che non è di certo il vostro primo pensiero (soprattutto nel bel mezzo di una maratona), ma se siete in attesa della prossima stagione del vostro show preferito, vale la pena scoprirlo!
Alla base del funzionamento di Netflix, ci sono i cosiddetti “microservizi”. Questa soluzione si è rivelata ormai da anni vincente per lo sviluppo delle grandi applicazioni cloud, per le quali c’è necessità di scalare velocemente. Si può pensare ai microservizi come ad un’evoluzione dell’architettura “SOA” (Service Oriented Application), ovvero organizzata per servizi e non più per livelli logici. Nell’architettura a microservizi, ognuno di questi è sviluppato e distribuito in maniera indipendente dagli altri.
I singoli servizi comunicano poi tra di loro per realizzare l’applicazione generale e complessa (in questo caso Netflix), basandosi su HTTP tramite le API RESTful. Il tutto è gestito in modo asincrono. Questa soluzione porta molti vantaggi, fondamentali per una piattaforma così ampia e in cui la disponibilità del servizio è fondamentale. Si eliminano i singoli punti di guasto, le modifiche sono più veloci e la scalabilità migliora. Inoltre, ogni microservizio può essere sviluppato con il linguaggio migliore e il framework più adatti a quel servizio, indipendentemente da quelli usati dagli altri.
La più famosa piattaforma di streaming utilizza circa 700 microservizi. Uno di questi mantiene in memoria le serie tv/film visti, un altro controlla lo stato del pagamento mensile, un altro individua il formato di file corretto da inviare al dispositivo che si sta usando, un altro si occupa dell’algoritmo che individua gli show che potrebbero piacere all’utente, e così via. Tutti questi servizi vengono eseguiti su Amazon Web Services: ebbene sì, Netflix è il principale cliente del suo competitor nel mondo streaming.
Su questi server vengono salvati i film e le serie TV che poi arriveranno sul nostro schermo. Ma come viene effettuato il passaggio server-device? Netflix ha sviluppato un proprio CDN (Content Delivery Network) chiamato Open Connect. Un CDN non è altro che un insieme di server distribuiti geograficamente con l’obiettivo di fornire velocemente contenuti web. Esso non rimpiazza il web hosting, ma è in grado di mantenere in cache contenuto e informazioni utili per velocizzare il trasferimento dei dati, e migliorare quindi le performance.
I singoli box che compongono Open Connect scaricano la libreria Netflix per la regione per cui operano dai server principali, localizzati negli Stati Uniti. Il contenuto in cache dipende soprattutto dagli ascolti degli utenti: gli show più visti sono quelli che vengono scaricati e mantenuti disponibili sempre. Quando si clicca “Play”, la piattaforma localizza i 10 box più vicini che hanno in memoria il video scelto; tra questi, poi, viene scelto quello più vicino o che ha una velocità maggiore per la linea internet posseduta.
Questo è il motivo per cui all’inizio il video appare sfocato: Netflix sta cercando il box che potrà fornire la massima qualità video.