Il sito High Scalability offre molti dettagli sull’infrastruttura di Netflix, società fondata in California nel 1997 da Marc Randolph e Reed Hastings (ex dipendenti di una software house che produceva un tool di debugging per Unix/C) partita con 30 impiegati e una manciata di sottoscrittori, e che ora vanta oltre 69 milioni di abbonati in 50 diverse nazioni.
L’infrastruttura di Netflix è basata su server Amazon EC2 con master digitali degli studios cinemetografici archiviati su Amazon S3. Ogni film è codificato in 50 diverse varianti con differenti risoluzioni video e divers qualità audio sfruttando macchine sul cloud. Su Amazon sono memorizzati oltre 1 petabyte (1 milione di Gigabyte) di dati, inviati alle reti di distribuzione dei contenuti per esaudire le richieste degli Service Provider Internet locali.
I software open source utilizzati nel backend sono tantissimi: Java, MySQL, Gluster, Apache Tomcat, Hive, Chukwa, Cassandra, e Hadoop. La vasta quantità di combinazioni di strumenti di codifica e decodifica e i diversi bitrate su Netflix, porta a codificare lo stesso titolo fino a 120 volte prima di essere distribuito alle piattaforme di streaming.
Benché Netflix sfrutti una tecnologia di adaptive bitrate per impostare la qualità audio e video in base alla velocità di download dell’utente, all’utente è offerta la possibilità di scegliere la qualità dal sito web. È possibile visualizzare i filmati da qualsiasi dispositivo connesso a internet che integri l’app Netflix: computer, console da gioco, lettori DVD e Blu-ray, HDTV, decoder, sistemi home theater, smartphone e tablet.
Tutti i titoli supportano i seguenti codec con diversi bit rate: VC-1, H.264 (AVC), VC-1, H.263, H.265 (HEVC) per il video e WMA, Dolby Digital, Dolby Digital Plus, AAC e Ogg Vorbis per l’audio.
Una specifica CDN (Netflix Open Connect) per gli ISP è in grado di supportare oltre 100.000 abbonati. Questa sfrutta appliance con meccanismi di cache in grado di ridurre i costi di transito dei dati. L’appliance sfrutta il sistema operativo FreeBSD, il server proxy nginx e il daemon per l’internet routing Bird.
Nel 2009 Netflix sponsorizzò una competizione offrendo 1.000.000 di dollari al team che, basandosi su un dataset di oltre 100M di ratings, fosse capace di migliorare anche solo del 10% le prestazioni dell’algoritmo al tempo utilizzato da Netflix. Un team riuscì a ottenere miglioramenti del 10.06% rispetto agli algoritmi precedenti; una seconda competizione era stata annunciata ma è stata poi annullata per timori sulla privacy sollevati dalla FTC (Federal Trade Commission) statunitense.
Tra gli algoritmi usati nei sistemi di Netflix, il Restricted Boltzmann Machines (RBM), modello usato anche nei meccanismi di deep learning delle reti neurali.