SlideShare a Scribd company logo
1 of 30
Floriana Benedetti - Diego Carniglia
INTRODUZIONE
Breve storia della piattaforma, con focus sulla crescita economica e sulla filosofia
aziendale
CHE COS’È NETFLIX
• Netflix è una società statunitense fondata nel 1997
• Nata originariamente per offrire un servizio di noleggio di DVD e videogiochi via Internet
• Ora è conosciuta come provider internazionale di contenuti multimediali in streaming on-
demand via Internet
• È attualmente disponibile nel Nord e Sud America, Australia, Nuova Zelanda,
Giappone e parte dell’Europa (tra cui l’Italia, dal 22 ottobre 2015)
• Il cliente che vuole usufruire dei servizi deve sottoscrivere un apposito
abbonamento, il cui costo è variabile a seconda della qualità del servizio erogato e
del numero di dispositivi che si possono collegare al servizio.
BREVI CENNI STORICI
1997: Fondazione da
parte di Marc Randolph e
Reed Hastings in Scotts
Valley, California
1998: Creato il sito web
1999/2000: Introdotta
la sottoscrizione
mensile e
abbandonato il
modello tradizionale di
noleggio
20062009: Indetto
un concorso per
migliorare le
performance
dell'algoritmo di
suggerimento dei film
2008: Introdotta la
possibilità di guardare
video on demand
tramite Internet
2010: Inizio della
migrazione dai data
center proprietari ad
Amazon Web Services
2011: Scissione dei
due servizi di noleggio
DVD e streaming
2013: Aggiunta
all’interfaccia di Netflix
la possibilità di
condividere tramite
Facebook i titoli dei
film visti
LA CRESCITA DI NETFLIX
2005:
35mila diversi titoli di film
disponibili, noleggio di circa
1 mln di DVD al giorno
2007:
miliardesimo
DVD
noleggiato
2009:
oltrepassata
quota 10mln
abbonati; oltre
100mila titoli
disponibili
Aprile 2011:
26mln di
abbonati
(23mln in USA)
Aprile 2013:
36mln di
abbonati (30
mln USA)
Ottobre
2015:
69mln
(43mln in
USA)
ASPETTI ECONOMICI
2003
Primo profitto di
Netflix: il guadagno
è stato di 6.5mln $,
su un fatturato
totale di 272mln $
2010
Il prezzo delle
azioni aumenta a
176$; il fatturato
annuale è di 2,16
miliardi di $ e il
guadagno netto di
161mln $
Luglio 2011
Picco economico: il
valore delle azioni
sale a 299$
Dicembre 2011
La scissione dei
due servizi su cui si
basava Netflix
comporta una
notevole perdita di
fatturato e il crollo
del valore delle
azioni (-75%
rispetto ai parametri
estivi)
2015
Il valore di
mercato ad inizio
anno di Netflix è
di 32.9 miliardi di
$; l’attuale valore
delle azioni è di
circa 127$
(Dicembre 2015)
LA FILOSOFIA AZIENDALE DI
NETFLIX - 1
• Sono state ripensate e riorganizzate le Human Resources.
• Valutati i “valori” delle persone: capacità di giudizio, capacità di comunicazione e
collaborazione, “impatto” sull’azienda, curiosità e capacità di apprendimento, spirito di iniziativa,
coraggio, passione, onestà, altruismo, responsabilità
• High Personal Culture: L’azienda valuta le persone sulla base del rendimento e sul
conseguente raggiungimento di risultati, a livello individuale e di gruppo.
• Mentalità vincente  crescita dell’azienda  complessità del sistema  diminuisce la
“densità di talento”  il “disordine” aumenta. Soluzione: aumentare la densità di talento più
velocemente di quanto cresca la business complexity!
LA FILOSOFIA AZIENDALE DI
NETFLIX - 2
• Assegnando a ciascuno un ruolo ben definito
• Delineando una precisa strategia
• Lasciando trasparire le decisioni prese
• Ponendo priorità (di tempo, di risorse) ai diversi task,
indicando il livello di precisione desiderato
• Ponendo obiettivi finali
Regola chiave:
non basarsi sul
controllo dei
propri dipendenti,
bensì focalizzarsi
sul contesto
appropriato:
L’ARCHITETTURA
L’evoluzione di Netflix verso un’applicazione completamente basata su cloud
IL PASSATO DI NETFLIX
PC dell’utente
(tramite web
browser)
Utente
finale
Datacenter
privato di
Netflix
CDN
distribuito
Web-App Monolitica
Streaming-App
Monolitica
CDN di Akamai,
Limelight, Level3
Oracle
MySQL
Oracle
MySQL
Gestione ed
encoding del
contenuto
COM’È NETFLIX ORA
Dispositivo
dell’utente (PC,
smartphone, tablet,
smart tv, console..)
Utente
finale
Amazon
Web
Services
CDN
distribuito
Sito Web o Discovery
API
Streaming API
CDN di Netflix:
OpenConnect
Dati utente
Personalizzazione
DRM (diritti
d’autore)
Gestione e logging
della QoS
Gestione ed
indirizzamento
Encoding del
contenuto
ENTRANDO NEL VIVO
DELL’ARGOMENTO….
Amazon Web
Services EC2 +
S3
NoSQL
database:
Cassandra
OpenConnect
CDN
Servizio di
streaming
• Infrastruttura del
servizio
• Dati di visione
Algoritmi più
importanti
• Streaming adattivo
• Classificazione
AMAZON WEB SERVICES
• Netflix si colloca in una sorta di zona grigia tra public e private cloud
• La scelta di utilizzare servizi di cloud computing e di storage di Amazon è stata fatta per questioni di
scalabilità, per gestire:
• Crescita degli utenti e picchi di carico
• Evoluzione tecnologica
• Netflix utilizza i servizi Amazon come fornitore di piattaforme di elaborazione e storage, cioè di
infrastruttura  IaaS (Infrastructure as a Service)
«We want to use clouds, we don’t have time to build them»
• Amazon è un concorrente di Netflix come fornitore di servizi di streaming video (Fire TV)
• Molti competitor di Amazon utilizzano i suoi servizi
• Strategia  trasformare i concorrenti in partners
AMAZON EC2 (ELASTIC
CLOUD COMPUTING) - 1
EBS: Elastic Block Store
• Storage persistente collegato alla rete
Istanze altamente configurabili
Availability zones
• Ubicazioni separate
• Connettività economica e a bassa latenza
• Regioni di disponibilità: formate da una o più zone
• Sistema sviluppato per proteggere dai guasti derivanti da avere istanze in una sola zona
Indirizzi IP elastici
• Indirizzi IP statici pensati per il cloud computing, associati all’account e non alle istanze
• In caso di guasto di istanze o di zone di disponibilità l’indirizzo IP si rimappa automaticamente ad istanze sostitutive
AMAZON EC2 (ELASTIC
CLOUD COMPUTING) - 2
ASG: Auto Scaling Groups
• L’auto-scaling consente di ridimensionare automaticamente le capacità di EC2 in
base a condizioni stabilite
• ASG sono quindi gruppi che, senza interruzioni delle operazioni , aumentano e
diminuiscono il numero di istanze
ELB: Elastic Load Balancing
• Distribuisce automaticamente il traffico di applicazioni in ingresso su più istanze
• Rileva le istanze guaste presenti in un pool e re-instrada automaticamente il
traffico
AMAZON S3 (SIMPLE
STORAGE SERVICE)
• È un servizio di storage connesso ai servizi di cloud computing
• Offre diverse caratteristiche importanti in un servizio di questo tipo
• Durabilità
• Disponibilità
• Scalabilità
• Alte prestazioni
• Gli ingegneri di Netflix hanno adattato e arricchito JetS3t, un’interfaccia in Java per S3
• Hanno inoltre aggiunto il supporto per l’upload multipart di files
PERSISTENZA DEI DATI:
IL MODELLO NO-SQL – 1
Inizialmente, Netflix utilizzava il modello relazionale tradizionale per la conservazione
persistente di dati e la successiva interrogazione
Con la migrazione nel cloud, si è posta un’importante problematica: come mantenere
velocità e tolleranza ai guasti in una base di dati altamente distribuita?
Teorema CAP: formulato da Eric Brewer all’inizio degli anni 2000, e dimostrato nel 2002,
afferma che non è possibile avere contemporaneamente, in un sistema distribuito,
Consistency (consistenza, coerenza), Availability (disponibilità) e Partition- Tolerance
(tolleranza al partizionamento della rete, conseguente ad un guasto)
PERSISTENZA DEI DATI:
IL MODELLO NO-SQL – 2
Le reti e i nodi falliranno sempre: P è una costante
La scelta quindi si riduce ad AP o CP: Netflix ha scelto la availability, piuttosto che la strong-
consistency (quindi modello AP)
• Alta disponibilità  migliore esperienza utente
Scelta obbligata: database di tipo non relazionale
• NO query di join né consistenza del tipo read-after-write
• Tre tipi di DB NoSQL: SimpleDB (di AWS), Hbase e Cassandra, il più usato in Netflix
APACHE CASSANDRA – 1
Database NoSQL open-source distribuito sotto licenza Apache:
flessibile, scalabile e performante
A differenza di soluzioni come MySQL o SimpleDB, Cassandra
può scalare orizzontalmente e dinamicamente
Scaling verticale: aggiungere più CPU e RAM a macchine esistenti: questo significa disconnettere la macchina dalla
rete per poterla modificare
Scaling orizzontale: aggiungere macchine al pool di risorse, senza quindi disconnettere nessun nodo dalla rete
In Cassandra, tutti i nodi hanno lo stesso ruolo: questo significa che non c’è nessun “nodo master” e quindi nessun
“single point of failure”
APACHE CASSANDRA – 2
• Chiave – valore: paradigma di storage che implica la memorizzazione di dati
come un array associativo
• Column – oriented: immagazzina tabelle di dati come sezioni di colonne di
dati
• Colonna: una tupla che consiste di un nome unico, un valore, e un timestamp
Ibrido tra database di
tipo chiave – valore
e uno “column –
oriented”
• Consistenza “tunable”
• Tabella: mappa multidimensionale distribuita
• Keyspace → Famiglia di Super-Colonne→ Riga della famiglia di Super-
Colonne→ Super Colonna → Colonna→ Valore
• Le tabelle possono essere create, cancellate e alterate in run-time senza
bloccare updates né query
• Cassandra non supporta né join né query indentate. Anzi, enfatizza la
denormalizzazione  alte prestazioni (soprattutto in scrittura)
Modello a
partizionamento,
decentralizzato
QUALCHE NUMERO…
• Decine di migliaia di nodi di elaborazione su AWS EC2
• Generalmente 4 core, 30 GByte di RAM, Java VM
• Migliaia creati/rimossi ogni giorno
• Diversi tipi delle istanze disponibili in EC2 utilizzati, a
seconda dell’applicazione
Business logic
(core di
elaborazione)
• Migliaia di nodi NoSQL Cassandra, sempre su EC2
• 8 core, 60GByte RAM, 2TByte di SSD
• 65 diversi clusters, oltre 300TB di dati totali (dati del
novembre 2013), replicati in tre zone per ogni regione
• Oltre 40 clusters sono multi-regione
Storage dei
dati –
Cassandra
PER COSA NETFLIX
NON USA AWS?
• PagerDuty: servizio di aggregazione e inoltro di allarmi
per gli amministratori del sistema
• OneLogin: servizio di single-sign-on (SSO)
Applicazioni
SaaS
• Il servizio DNS di AWS, Route53, è carente per le esigenze di Netflix
• Strategia: utilizzo di più sistemi (Dyn, UltraDNS, parte di Route53)
• “The Denominator”: libreria open-source che fornisce interfaccia
comune a questi sistemi
Servizio
DNS
• Content Delivery Network: è la distribuzione all’utente finale
• OpenConnect: box hardware, per alleggerire il lavoro dei server del
cloud soprattutto nelle zone ove gli ISP hanno più traffico
Servizio
CDN
NETFLIX CDN:
OPEN CONNECT
Che cos’è
• È un “hardware appliance” che, in piccole dimensioni fisiche, contiene l’intero Netflix
• È installato gratuitamente negli Internet Service Providers dove le richieste sono molto
elevate e le connessioni lente
• Si presenta come una scatola piena di hard disk, anche più di 100 TB, che può servire
un’intera zona
Come funziona
• Mantiene replicati parte dei contenuti più visti dell’intero catalogo, tramite backup e altri
sistemi di ridondanza  Viene così limitato il problema del flusso di traffico, che può
andare a congestionare reti e nodi
• Pensato per garantire la migliore esperienza possibile di visione in HD dei contenuti
ARCHITETTURA DEL
SERVIZIO DI STREAMING –
1• Ogni volta che un utente inizia a vedere un film, viene creata una “view” nei data systems di
Netflix e viene raccolta una collezione di eventi che descrivono tale view.
• Il sistema di Netflix mantiene in memoria
• L’intera cronologia delle visioni di ciascun abbonato
• Per quanto tempo ogni film è stato visto da ogni utente
• Dove l’utente ha interrotto l’ultima volta la visione
• Attualmente
• Vengono processati più di un miliardo di eventi al giorno
• Vengono viste oltre 2 miliardi di ore di contenuti ogni mese
• Il traffico internet degli abbonati, in alcuni paesi come gli USA, è quasi 1/3 del totale
ARCHITETTURA DEL
SERVIZIO DI STREAMING –
2Viewing service
• Interfaccia primaria dell’architettura, è segmentato in
livello stateful e stateless
Livello stateful
• Tiene in memoria gli ultimi dati per tutte le visioni attive,
partizionandoli in N nodi
• Problema: designato per favorire la consistenza anziché
la disponibilità  il fallimento di un solo nodo stateful
impediva agli altri di visualizzare o scrivere la viewing
history
Livello stateless
• Pensato per introdurre un maggiore grado di availability
 fornisce dati obsoleti come meccanismo di backup
quando un nodo stateful non è raggiungibile
STREAMING
“MPEG-DASH”
Dynamic Adaptive Streaming over HTTP
• E’ un sistema per trasmettere video sulla rete che adatta la risoluzione a
seconda della connessione
• Valutata la stabilità della connessione più che la velocità massima raggiungibile
• L’algoritmo utilizzato da Netflix non è stato reso noto
Parallel Streaming
• Quando si guarda un film su Netflix i contenuti arrivano da più nodi, anche tre in
parallelo.
• Se c’è un intasamento su un nodo, gli altri possono intervenire senza che il film
subisca la più piccola interruzione o il minimo calo di qualità.
ALGORITMI DI
CLASSIFICAZIONE
• Netflix possiede una moltitudine di algoritmi, che si occupano di
• Predire la classificazione che l’utente darà ad un certo film
• Organizzare in “righe” i film nella homepage di ciascun utente
• Creare raggruppamenti tematici e personalizzabili di video
• Il fine comune è quello di popolare al meglio la pagina dei contenuti, personalizzandola su
misura per ciascun cliente, sulla base delle classificazioni date e predette.
• Due degli algoritmi più noti sono
• RBM (Restricted Boltzmann Machines): modello di Neural Network studiato appositamente per
predire le classificazioni.
• SVD++ (Singular Value Decomposition): modello matematico che elabora diversi tipi di dati (clicks,
azioni, cronologia, ... ) per indicare le preferenze dell’utente.
IL FUTURO DI NETFLIX
• Netflix intende portare avanti la sua evoluzione, seguendo alcuni principi:
• Availability over Consistency
• Microservices: i componenti architetturali separati tra loro per fornire servizi
• Polyglot persistence: usate tecnologie di persistenza multiple per valutare e dar peso ad ogni
possibile soluzione
• L’obiettivo è quello di
• Scalare verso un ordine di grandezza superiore
• Porre le fondamenta per venire incontro alle esigenze di un numero sempre più vasto di utenti
• E’ un lavoro critico: molto tempo richiesto, testing, terreno di prova “difficile”
• Le assunzioni, per chi fosse in grado di aiutare, sono aperte!
BIBLIOGRAFIA
• https://en.wikipedia.org/wiki/Netflix
• http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html
• http://techblog.netflix.com/2015/01/netflixs-viewing-data-how-we-know-where.html
• http://techblog.netflix.com/2010/12/four-reasons-we-choose-amazons-cloud-as.html
• https://aws.amazon.com/it/ec2/details/
• https://aws.amazon.com/it/s3/
• http://www.slideshare.net/adrianco/global-netflix-platform
• https://en.wikipedia.org/wiki/Apache_Cassandra
• http://techblog.netflix.com/2011/01/nosql-at-netflix.html
• http://www.dday.it/redazione/17530/netflix-portiamo-contenuti-e-qualita-internet-lento-in-
italia-non-avremo-problemi
GRAZIE PER LA
VOSTRA ATTENZIONE!

More Related Content

What's hot

Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Adin Ermie
 
Velero search & practice 20210609
Velero search & practice 20210609Velero search & practice 20210609
Velero search & practice 20210609KAI CHU CHUNG
 
GitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisGitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisWeaveworks
 
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...Rahul Krishna Upadhyaya
 
Secure Multi Tenant Cloud with OpenContrail
Secure Multi Tenant Cloud with OpenContrailSecure Multi Tenant Cloud with OpenContrail
Secure Multi Tenant Cloud with OpenContrailPriti Desai
 
Gotchas using Terraform in a secure delivery pipeline
Gotchas using Terraform in a secure delivery pipelineGotchas using Terraform in a secure delivery pipeline
Gotchas using Terraform in a secure delivery pipelineAnton Babenko
 
KubeVirt (Kubernetes and Cloud Native Toronto)
KubeVirt (Kubernetes and Cloud Native Toronto)KubeVirt (Kubernetes and Cloud Native Toronto)
KubeVirt (Kubernetes and Cloud Native Toronto)Stephen Gordon
 
Introduction of CCE and DevCloud
Introduction of CCE and DevCloudIntroduction of CCE and DevCloud
Introduction of CCE and DevCloudOpsta
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesMichal Cwienczek
 
An Introduction to OpenStack
An Introduction to OpenStackAn Introduction to OpenStack
An Introduction to OpenStackScott Lowe
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesRishabh Indoria
 
Continuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoContinuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoAOE
 
카카오에서의 Trove 운영사례
카카오에서의 Trove 운영사례카카오에서의 Trove 운영사례
카카오에서의 Trove 운영사례Won-Chon Jung
 
The Evolution of the Data Centre
The Evolution of the Data CentreThe Evolution of the Data Centre
The Evolution of the Data CentreCisco Canada
 
OVN DBs HA with scale test
OVN DBs HA with scale testOVN DBs HA with scale test
OVN DBs HA with scale testAliasgar Ginwala
 
Un Voyage dans le Cloud: Qu'est-ce que AWS?
Un Voyage dans le Cloud: Qu'est-ce que AWS?Un Voyage dans le Cloud: Qu'est-ce que AWS?
Un Voyage dans le Cloud: Qu'est-ce que AWS?Amazon Web Services
 

What's hot (20)

Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
Infrastructure-as-Code (IaC) Using Terraform (Advanced Edition)
 
Velero search & practice 20210609
Velero search & practice 20210609Velero search & practice 20210609
Velero search & practice 20210609
 
GitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan BudrisGitOps with Amazon EKS Anywhere by Dan Budris
GitOps with Amazon EKS Anywhere by Dan Budris
 
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 
Challenges of Kubernetes On-premise Deployment
Challenges of Kubernetes On-premise DeploymentChallenges of Kubernetes On-premise Deployment
Challenges of Kubernetes On-premise Deployment
 
Secure Multi Tenant Cloud with OpenContrail
Secure Multi Tenant Cloud with OpenContrailSecure Multi Tenant Cloud with OpenContrail
Secure Multi Tenant Cloud with OpenContrail
 
Gotchas using Terraform in a secure delivery pipeline
Gotchas using Terraform in a secure delivery pipelineGotchas using Terraform in a secure delivery pipeline
Gotchas using Terraform in a secure delivery pipeline
 
KubeVirt (Kubernetes and Cloud Native Toronto)
KubeVirt (Kubernetes and Cloud Native Toronto)KubeVirt (Kubernetes and Cloud Native Toronto)
KubeVirt (Kubernetes and Cloud Native Toronto)
 
Introduction of CCE and DevCloud
Introduction of CCE and DevCloudIntroduction of CCE and DevCloud
Introduction of CCE and DevCloud
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
An Introduction to OpenStack
An Introduction to OpenStackAn Introduction to OpenStack
An Introduction to OpenStack
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Kubernetes 1001
Kubernetes 1001Kubernetes 1001
Kubernetes 1001
 
Scale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 servicesScale Kubernetes to support 50000 services
Scale Kubernetes to support 50000 services
 
Continuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoContinuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for Magento
 
카카오에서의 Trove 운영사례
카카오에서의 Trove 운영사례카카오에서의 Trove 운영사례
카카오에서의 Trove 운영사례
 
The Evolution of the Data Centre
The Evolution of the Data CentreThe Evolution of the Data Centre
The Evolution of the Data Centre
 
Enabling NFV features in kubernetes
Enabling NFV features in kubernetesEnabling NFV features in kubernetes
Enabling NFV features in kubernetes
 
OVN DBs HA with scale test
OVN DBs HA with scale testOVN DBs HA with scale test
OVN DBs HA with scale test
 
Un Voyage dans le Cloud: Qu'est-ce que AWS?
Un Voyage dans le Cloud: Qu'est-ce que AWS?Un Voyage dans le Cloud: Qu'est-ce que AWS?
Un Voyage dans le Cloud: Qu'est-ce que AWS?
 

Similar to Netflix: cos'è, come funziona

Il Cloud Computing
Il Cloud ComputingIl Cloud Computing
Il Cloud Computingzambe92
 
Multitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL DatabaseMultitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL DatabaseGianluca Hotz
 
Cloud Storage, Gestire i propri costi facendo leva sui servizi di cloud priva...
Cloud Storage, Gestire i propri costi facendo leva sui servizi di cloud priva...Cloud Storage, Gestire i propri costi facendo leva sui servizi di cloud priva...
Cloud Storage, Gestire i propri costi facendo leva sui servizi di cloud priva...VMEngine
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLPar-Tec S.p.A.
 
Trasformazione digitale fabio-cecaro
Trasformazione digitale fabio-cecaroTrasformazione digitale fabio-cecaro
Trasformazione digitale fabio-cecaroVMEngine
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Codemotion
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech LabUgo Landini
 
Cloud e innovazione
Cloud e innovazioneCloud e innovazione
Cloud e innovazioneXPeppers
 
Be simple presentazione istituzionale
Be simple   presentazione istituzionaleBe simple   presentazione istituzionale
Be simple presentazione istituzionalegabrielesannicandro
 
Cloud for sap evento15.4
Cloud for sap evento15.4Cloud for sap evento15.4
Cloud for sap evento15.4Otello Costa
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloudRiccardo Zamana
 
Datacenter Dinamics Converged 2014 - Analizzare il Cloud pubblico, privato e...
Datacenter Dinamics Converged 2014  - Analizzare il Cloud pubblico, privato e...Datacenter Dinamics Converged 2014  - Analizzare il Cloud pubblico, privato e...
Datacenter Dinamics Converged 2014 - Analizzare il Cloud pubblico, privato e...VMEngine
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLPar-Tec S.p.A.
 
Tutto il Cloud di Seeweb
Tutto il Cloud di SeewebTutto il Cloud di Seeweb
Tutto il Cloud di Seewebseeweb
 
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQLMySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQLPar-Tec S.p.A.
 

Similar to Netflix: cos'è, come funziona (20)

No Sql Intro
No Sql IntroNo Sql Intro
No Sql Intro
 
Il Cloud Computing
Il Cloud ComputingIl Cloud Computing
Il Cloud Computing
 
CIO vs Cloud
CIO vs CloudCIO vs Cloud
CIO vs Cloud
 
Multitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL DatabaseMultitenancy con SQL Server e Azure SQL Database
Multitenancy con SQL Server e Azure SQL Database
 
Cloud Storage, Gestire i propri costi facendo leva sui servizi di cloud priva...
Cloud Storage, Gestire i propri costi facendo leva sui servizi di cloud priva...Cloud Storage, Gestire i propri costi facendo leva sui servizi di cloud priva...
Cloud Storage, Gestire i propri costi facendo leva sui servizi di cloud priva...
 
Presentazione bd2
Presentazione bd2Presentazione bd2
Presentazione bd2
 
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQLMySQL Day Roma 2019 - Le architetture a microservizi e MySQL
MySQL Day Roma 2019 - Le architetture a microservizi e MySQL
 
Trasformazione digitale fabio-cecaro
Trasformazione digitale fabio-cecaroTrasformazione digitale fabio-cecaro
Trasformazione digitale fabio-cecaro
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech Lab
 
Cloud e innovazione
Cloud e innovazioneCloud e innovazione
Cloud e innovazione
 
Be simple presentazione istituzionale
Be simple   presentazione istituzionaleBe simple   presentazione istituzionale
Be simple presentazione istituzionale
 
Cloud for sap evento15.4
Cloud for sap evento15.4Cloud for sap evento15.4
Cloud for sap evento15.4
 
Data grid
Data gridData grid
Data grid
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
Datacenter Dinamics Converged 2014 - Analizzare il Cloud pubblico, privato e...
Datacenter Dinamics Converged 2014  - Analizzare il Cloud pubblico, privato e...Datacenter Dinamics Converged 2014  - Analizzare il Cloud pubblico, privato e...
Datacenter Dinamics Converged 2014 - Analizzare il Cloud pubblico, privato e...
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
 
Tutto il Cloud di Seeweb
Tutto il Cloud di SeewebTutto il Cloud di Seeweb
Tutto il Cloud di Seeweb
 
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQLMySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
MySQL Day Milano 2017 - Dalla replica a InnoDB Cluster: l’HA secondo MySQL
 
Data Lake
Data LakeData Lake
Data Lake
 

Recently uploaded

Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniGiornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleGiornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleServizi a rete
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioServizi a rete
 

Recently uploaded (7)

Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO AntonioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DISCIPIO Antonio
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI GiovanniGiornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | CADEI Giovanni
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO SimoneGiornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | DI DOMENICO Simone
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO AndreaGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ALBIERO Andrea
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' DavideGiornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | ROMANO' Davide
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI DanieleGiornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | RENZI Daniele
 
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA GiorgioGiornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
Giornata Tecnica da Piave Servizi, 11 aprile 2024 | SERRA Giorgio
 

Netflix: cos'è, come funziona

  • 1. Floriana Benedetti - Diego Carniglia
  • 2. INTRODUZIONE Breve storia della piattaforma, con focus sulla crescita economica e sulla filosofia aziendale
  • 3. CHE COS’È NETFLIX • Netflix è una società statunitense fondata nel 1997 • Nata originariamente per offrire un servizio di noleggio di DVD e videogiochi via Internet • Ora è conosciuta come provider internazionale di contenuti multimediali in streaming on- demand via Internet • È attualmente disponibile nel Nord e Sud America, Australia, Nuova Zelanda, Giappone e parte dell’Europa (tra cui l’Italia, dal 22 ottobre 2015) • Il cliente che vuole usufruire dei servizi deve sottoscrivere un apposito abbonamento, il cui costo è variabile a seconda della qualità del servizio erogato e del numero di dispositivi che si possono collegare al servizio.
  • 4. BREVI CENNI STORICI 1997: Fondazione da parte di Marc Randolph e Reed Hastings in Scotts Valley, California 1998: Creato il sito web 1999/2000: Introdotta la sottoscrizione mensile e abbandonato il modello tradizionale di noleggio 20062009: Indetto un concorso per migliorare le performance dell'algoritmo di suggerimento dei film 2008: Introdotta la possibilità di guardare video on demand tramite Internet 2010: Inizio della migrazione dai data center proprietari ad Amazon Web Services 2011: Scissione dei due servizi di noleggio DVD e streaming 2013: Aggiunta all’interfaccia di Netflix la possibilità di condividere tramite Facebook i titoli dei film visti
  • 5. LA CRESCITA DI NETFLIX 2005: 35mila diversi titoli di film disponibili, noleggio di circa 1 mln di DVD al giorno 2007: miliardesimo DVD noleggiato 2009: oltrepassata quota 10mln abbonati; oltre 100mila titoli disponibili Aprile 2011: 26mln di abbonati (23mln in USA) Aprile 2013: 36mln di abbonati (30 mln USA) Ottobre 2015: 69mln (43mln in USA)
  • 6. ASPETTI ECONOMICI 2003 Primo profitto di Netflix: il guadagno è stato di 6.5mln $, su un fatturato totale di 272mln $ 2010 Il prezzo delle azioni aumenta a 176$; il fatturato annuale è di 2,16 miliardi di $ e il guadagno netto di 161mln $ Luglio 2011 Picco economico: il valore delle azioni sale a 299$ Dicembre 2011 La scissione dei due servizi su cui si basava Netflix comporta una notevole perdita di fatturato e il crollo del valore delle azioni (-75% rispetto ai parametri estivi) 2015 Il valore di mercato ad inizio anno di Netflix è di 32.9 miliardi di $; l’attuale valore delle azioni è di circa 127$ (Dicembre 2015)
  • 7. LA FILOSOFIA AZIENDALE DI NETFLIX - 1 • Sono state ripensate e riorganizzate le Human Resources. • Valutati i “valori” delle persone: capacità di giudizio, capacità di comunicazione e collaborazione, “impatto” sull’azienda, curiosità e capacità di apprendimento, spirito di iniziativa, coraggio, passione, onestà, altruismo, responsabilità • High Personal Culture: L’azienda valuta le persone sulla base del rendimento e sul conseguente raggiungimento di risultati, a livello individuale e di gruppo. • Mentalità vincente  crescita dell’azienda  complessità del sistema  diminuisce la “densità di talento”  il “disordine” aumenta. Soluzione: aumentare la densità di talento più velocemente di quanto cresca la business complexity!
  • 8. LA FILOSOFIA AZIENDALE DI NETFLIX - 2 • Assegnando a ciascuno un ruolo ben definito • Delineando una precisa strategia • Lasciando trasparire le decisioni prese • Ponendo priorità (di tempo, di risorse) ai diversi task, indicando il livello di precisione desiderato • Ponendo obiettivi finali Regola chiave: non basarsi sul controllo dei propri dipendenti, bensì focalizzarsi sul contesto appropriato:
  • 9. L’ARCHITETTURA L’evoluzione di Netflix verso un’applicazione completamente basata su cloud
  • 10. IL PASSATO DI NETFLIX PC dell’utente (tramite web browser) Utente finale Datacenter privato di Netflix CDN distribuito Web-App Monolitica Streaming-App Monolitica CDN di Akamai, Limelight, Level3 Oracle MySQL Oracle MySQL Gestione ed encoding del contenuto
  • 11. COM’È NETFLIX ORA Dispositivo dell’utente (PC, smartphone, tablet, smart tv, console..) Utente finale Amazon Web Services CDN distribuito Sito Web o Discovery API Streaming API CDN di Netflix: OpenConnect Dati utente Personalizzazione DRM (diritti d’autore) Gestione e logging della QoS Gestione ed indirizzamento Encoding del contenuto
  • 12. ENTRANDO NEL VIVO DELL’ARGOMENTO…. Amazon Web Services EC2 + S3 NoSQL database: Cassandra OpenConnect CDN Servizio di streaming • Infrastruttura del servizio • Dati di visione Algoritmi più importanti • Streaming adattivo • Classificazione
  • 13. AMAZON WEB SERVICES • Netflix si colloca in una sorta di zona grigia tra public e private cloud • La scelta di utilizzare servizi di cloud computing e di storage di Amazon è stata fatta per questioni di scalabilità, per gestire: • Crescita degli utenti e picchi di carico • Evoluzione tecnologica • Netflix utilizza i servizi Amazon come fornitore di piattaforme di elaborazione e storage, cioè di infrastruttura  IaaS (Infrastructure as a Service) «We want to use clouds, we don’t have time to build them» • Amazon è un concorrente di Netflix come fornitore di servizi di streaming video (Fire TV) • Molti competitor di Amazon utilizzano i suoi servizi • Strategia  trasformare i concorrenti in partners
  • 14. AMAZON EC2 (ELASTIC CLOUD COMPUTING) - 1 EBS: Elastic Block Store • Storage persistente collegato alla rete Istanze altamente configurabili Availability zones • Ubicazioni separate • Connettività economica e a bassa latenza • Regioni di disponibilità: formate da una o più zone • Sistema sviluppato per proteggere dai guasti derivanti da avere istanze in una sola zona Indirizzi IP elastici • Indirizzi IP statici pensati per il cloud computing, associati all’account e non alle istanze • In caso di guasto di istanze o di zone di disponibilità l’indirizzo IP si rimappa automaticamente ad istanze sostitutive
  • 15. AMAZON EC2 (ELASTIC CLOUD COMPUTING) - 2 ASG: Auto Scaling Groups • L’auto-scaling consente di ridimensionare automaticamente le capacità di EC2 in base a condizioni stabilite • ASG sono quindi gruppi che, senza interruzioni delle operazioni , aumentano e diminuiscono il numero di istanze ELB: Elastic Load Balancing • Distribuisce automaticamente il traffico di applicazioni in ingresso su più istanze • Rileva le istanze guaste presenti in un pool e re-instrada automaticamente il traffico
  • 16. AMAZON S3 (SIMPLE STORAGE SERVICE) • È un servizio di storage connesso ai servizi di cloud computing • Offre diverse caratteristiche importanti in un servizio di questo tipo • Durabilità • Disponibilità • Scalabilità • Alte prestazioni • Gli ingegneri di Netflix hanno adattato e arricchito JetS3t, un’interfaccia in Java per S3 • Hanno inoltre aggiunto il supporto per l’upload multipart di files
  • 17. PERSISTENZA DEI DATI: IL MODELLO NO-SQL – 1 Inizialmente, Netflix utilizzava il modello relazionale tradizionale per la conservazione persistente di dati e la successiva interrogazione Con la migrazione nel cloud, si è posta un’importante problematica: come mantenere velocità e tolleranza ai guasti in una base di dati altamente distribuita? Teorema CAP: formulato da Eric Brewer all’inizio degli anni 2000, e dimostrato nel 2002, afferma che non è possibile avere contemporaneamente, in un sistema distribuito, Consistency (consistenza, coerenza), Availability (disponibilità) e Partition- Tolerance (tolleranza al partizionamento della rete, conseguente ad un guasto)
  • 18. PERSISTENZA DEI DATI: IL MODELLO NO-SQL – 2 Le reti e i nodi falliranno sempre: P è una costante La scelta quindi si riduce ad AP o CP: Netflix ha scelto la availability, piuttosto che la strong- consistency (quindi modello AP) • Alta disponibilità  migliore esperienza utente Scelta obbligata: database di tipo non relazionale • NO query di join né consistenza del tipo read-after-write • Tre tipi di DB NoSQL: SimpleDB (di AWS), Hbase e Cassandra, il più usato in Netflix
  • 19. APACHE CASSANDRA – 1 Database NoSQL open-source distribuito sotto licenza Apache: flessibile, scalabile e performante A differenza di soluzioni come MySQL o SimpleDB, Cassandra può scalare orizzontalmente e dinamicamente Scaling verticale: aggiungere più CPU e RAM a macchine esistenti: questo significa disconnettere la macchina dalla rete per poterla modificare Scaling orizzontale: aggiungere macchine al pool di risorse, senza quindi disconnettere nessun nodo dalla rete In Cassandra, tutti i nodi hanno lo stesso ruolo: questo significa che non c’è nessun “nodo master” e quindi nessun “single point of failure”
  • 20. APACHE CASSANDRA – 2 • Chiave – valore: paradigma di storage che implica la memorizzazione di dati come un array associativo • Column – oriented: immagazzina tabelle di dati come sezioni di colonne di dati • Colonna: una tupla che consiste di un nome unico, un valore, e un timestamp Ibrido tra database di tipo chiave – valore e uno “column – oriented” • Consistenza “tunable” • Tabella: mappa multidimensionale distribuita • Keyspace → Famiglia di Super-Colonne→ Riga della famiglia di Super- Colonne→ Super Colonna → Colonna→ Valore • Le tabelle possono essere create, cancellate e alterate in run-time senza bloccare updates né query • Cassandra non supporta né join né query indentate. Anzi, enfatizza la denormalizzazione  alte prestazioni (soprattutto in scrittura) Modello a partizionamento, decentralizzato
  • 21. QUALCHE NUMERO… • Decine di migliaia di nodi di elaborazione su AWS EC2 • Generalmente 4 core, 30 GByte di RAM, Java VM • Migliaia creati/rimossi ogni giorno • Diversi tipi delle istanze disponibili in EC2 utilizzati, a seconda dell’applicazione Business logic (core di elaborazione) • Migliaia di nodi NoSQL Cassandra, sempre su EC2 • 8 core, 60GByte RAM, 2TByte di SSD • 65 diversi clusters, oltre 300TB di dati totali (dati del novembre 2013), replicati in tre zone per ogni regione • Oltre 40 clusters sono multi-regione Storage dei dati – Cassandra
  • 22. PER COSA NETFLIX NON USA AWS? • PagerDuty: servizio di aggregazione e inoltro di allarmi per gli amministratori del sistema • OneLogin: servizio di single-sign-on (SSO) Applicazioni SaaS • Il servizio DNS di AWS, Route53, è carente per le esigenze di Netflix • Strategia: utilizzo di più sistemi (Dyn, UltraDNS, parte di Route53) • “The Denominator”: libreria open-source che fornisce interfaccia comune a questi sistemi Servizio DNS • Content Delivery Network: è la distribuzione all’utente finale • OpenConnect: box hardware, per alleggerire il lavoro dei server del cloud soprattutto nelle zone ove gli ISP hanno più traffico Servizio CDN
  • 23. NETFLIX CDN: OPEN CONNECT Che cos’è • È un “hardware appliance” che, in piccole dimensioni fisiche, contiene l’intero Netflix • È installato gratuitamente negli Internet Service Providers dove le richieste sono molto elevate e le connessioni lente • Si presenta come una scatola piena di hard disk, anche più di 100 TB, che può servire un’intera zona Come funziona • Mantiene replicati parte dei contenuti più visti dell’intero catalogo, tramite backup e altri sistemi di ridondanza  Viene così limitato il problema del flusso di traffico, che può andare a congestionare reti e nodi • Pensato per garantire la migliore esperienza possibile di visione in HD dei contenuti
  • 24. ARCHITETTURA DEL SERVIZIO DI STREAMING – 1• Ogni volta che un utente inizia a vedere un film, viene creata una “view” nei data systems di Netflix e viene raccolta una collezione di eventi che descrivono tale view. • Il sistema di Netflix mantiene in memoria • L’intera cronologia delle visioni di ciascun abbonato • Per quanto tempo ogni film è stato visto da ogni utente • Dove l’utente ha interrotto l’ultima volta la visione • Attualmente • Vengono processati più di un miliardo di eventi al giorno • Vengono viste oltre 2 miliardi di ore di contenuti ogni mese • Il traffico internet degli abbonati, in alcuni paesi come gli USA, è quasi 1/3 del totale
  • 25. ARCHITETTURA DEL SERVIZIO DI STREAMING – 2Viewing service • Interfaccia primaria dell’architettura, è segmentato in livello stateful e stateless Livello stateful • Tiene in memoria gli ultimi dati per tutte le visioni attive, partizionandoli in N nodi • Problema: designato per favorire la consistenza anziché la disponibilità  il fallimento di un solo nodo stateful impediva agli altri di visualizzare o scrivere la viewing history Livello stateless • Pensato per introdurre un maggiore grado di availability  fornisce dati obsoleti come meccanismo di backup quando un nodo stateful non è raggiungibile
  • 26. STREAMING “MPEG-DASH” Dynamic Adaptive Streaming over HTTP • E’ un sistema per trasmettere video sulla rete che adatta la risoluzione a seconda della connessione • Valutata la stabilità della connessione più che la velocità massima raggiungibile • L’algoritmo utilizzato da Netflix non è stato reso noto Parallel Streaming • Quando si guarda un film su Netflix i contenuti arrivano da più nodi, anche tre in parallelo. • Se c’è un intasamento su un nodo, gli altri possono intervenire senza che il film subisca la più piccola interruzione o il minimo calo di qualità.
  • 27. ALGORITMI DI CLASSIFICAZIONE • Netflix possiede una moltitudine di algoritmi, che si occupano di • Predire la classificazione che l’utente darà ad un certo film • Organizzare in “righe” i film nella homepage di ciascun utente • Creare raggruppamenti tematici e personalizzabili di video • Il fine comune è quello di popolare al meglio la pagina dei contenuti, personalizzandola su misura per ciascun cliente, sulla base delle classificazioni date e predette. • Due degli algoritmi più noti sono • RBM (Restricted Boltzmann Machines): modello di Neural Network studiato appositamente per predire le classificazioni. • SVD++ (Singular Value Decomposition): modello matematico che elabora diversi tipi di dati (clicks, azioni, cronologia, ... ) per indicare le preferenze dell’utente.
  • 28. IL FUTURO DI NETFLIX • Netflix intende portare avanti la sua evoluzione, seguendo alcuni principi: • Availability over Consistency • Microservices: i componenti architetturali separati tra loro per fornire servizi • Polyglot persistence: usate tecnologie di persistenza multiple per valutare e dar peso ad ogni possibile soluzione • L’obiettivo è quello di • Scalare verso un ordine di grandezza superiore • Porre le fondamenta per venire incontro alle esigenze di un numero sempre più vasto di utenti • E’ un lavoro critico: molto tempo richiesto, testing, terreno di prova “difficile” • Le assunzioni, per chi fosse in grado di aiutare, sono aperte!
  • 29. BIBLIOGRAFIA • https://en.wikipedia.org/wiki/Netflix • http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html • http://techblog.netflix.com/2015/01/netflixs-viewing-data-how-we-know-where.html • http://techblog.netflix.com/2010/12/four-reasons-we-choose-amazons-cloud-as.html • https://aws.amazon.com/it/ec2/details/ • https://aws.amazon.com/it/s3/ • http://www.slideshare.net/adrianco/global-netflix-platform • https://en.wikipedia.org/wiki/Apache_Cassandra • http://techblog.netflix.com/2011/01/nosql-at-netflix.html • http://www.dday.it/redazione/17530/netflix-portiamo-contenuti-e-qualita-internet-lento-in- italia-non-avremo-problemi
  • 30. GRAZIE PER LA VOSTRA ATTENZIONE!

Editor's Notes

  1. Per avere uno sguardo d’insieme sull’intero sistema, analizzandolo a 360 gradi e inquadrandolo nel contesto economico e sociale/lavorativo.
  2. 2006-09: Concorso rivolto a tutti, con premio di 1mln $ 2008: Cambiamento del Core Business Model 2011: I due servizi diventano due entità separate ed indipendenti
  3. Dic 2011: Scissione  aumento prezzi  perdita di fatturato e di valore delle azioni
  4. Context, not control
  5. Architettura di Netflix all’inizio del servizio di streaming, prima del passaggio su cloud Applicazione web monolitica con backend Oracle più «qualche riga» di MySQL: tutta la fase di scelta del film si appoggiava sul sito internet e l’unico device ammesso era il pc, attraverso browser Seconda app monolitica per la gestione dello streaming (monolitico significa applicazione intera, non modularizzata) e la riproduzione del contenuto via browser Tutta l’applicazione era contenuta in 2 data centers, e la gestione dei guasti (failover) era fatta manualmente Dati distribuiti servendosi dei più grandi fornitori di tale servizio (CDN) – limelight, level3 e akamai Il contenuto era sempre gestito nei datacenter e pochi racks di sistema facevano l’encoding
  6. Architettura attuale, basata su cloud AWS Non più app monolitiche, ma struttura a microservizi, che favorisce scalabilità e agilità (le funzionalità possono essere espanse senza dover modificare il codice di un’intera mega-applicazione, ma aggiungendo un modulo -> Netflix OSS è la piattaforma opensource di netflix, che contiene tantissimi servizi che possono essere adattati ad ogni esigenza, e molti di questi sono usati in netflix ovviamente) Molti più dispositivi supportati, oltre 1000 prodotti diversi Dispositivi si connettono a Netflix attraverso Sito internet Discovery API: consente di costruire, attraverso microservizi, la propria interfaccia di visualizzazione (relativa al dispositivo che si sta usando) Le API e il sito mantengono, sempre su AWS, i dati dell’utente, eseguono algoritmi di personalizzazione, gestiscono i dati della QoS e dei diritti d’autore CDN -> usano i box di openConnect che sono però gestiti su AWS; anche l’encoding del contenuto è eseguito sul cloud e solo in seguito inviato al CDN
  7. Hybrid cloud: Il presupposto errato che governava il mondo dell’IT tradizionalmente era: hardware affidabile sul quale viene eseguito software stabile (cioè, software instabile che diventa stabile dopo anche molte sessioni di testing) -> utopia Gli obiettivi per una società di questo tipo sono fornire un servizio a quante più persone possibili (scalabilità) e nel modo più veloce possibile (minor latenza) Netflix ha scelto di affidarsi ad un public cloud, anziché costruirne uno proprio, perché il suo obiettivo è utilizzare il cloud per avere un servizio di computing e di storage, e non gli interessa costruirlo La parola chiave è scalabilità: Gestione della crescita in termini di utenza ed elasticità per bilanciare picchi di carico improvvisi Esigenza di stare al passo con l’evoluzione tecnologica e l’introduzione di nuovi dispositivi
  8. EBS: Elastic Block Store Storage persistente, caratterizzato da alta disponibilità e affidabilità, collegato alla rete EC2 ed indipendente dalla vita di un’istanza Istanze altamente configurabili Availability zones Ubicazioni separate, sviluppate per essere isolate dai guasti in altre zone di disponibilità Offrono una connettività di rete economica e a bassa latenza ad altre zone di disponibilità nella stessa regione Le regioni di disponibilità sono formate da una o più zone, e sono geograficamente distribuite Sistema sviluppato per proteggere dai guasti derivanti da avere istanze in una sola zona Indirizzi IP elastici Indirizzi IP statici pensati per il cloud computing, associati all’account e non alle istanze In caso di guasto di istanze o di zone di disponibilità l’indirizzo IP si rimappa automaticamente ad istanze sostitutive
  9. ASG: Auto Scaling Groups L’auto-scaling consente di ridimensionare automaticamente le capacità di EC2 in base a condizioni stabilite Permette cioè di aumentare senza interruzioni il numero di istanze di EC2 impiegate durante i picchi di domanda per mantenere le prestazioni, e viceversa, di diminuirle quando la domanda scende, per minimizzare i costi ELB: Elastic Load Balancing Distribuisce automaticamente il traffico di applicazioni in ingresso su più istanze, bilanciando perciò il carico applicativo e omogeneizzando le prestazioni Rileva le istanze guaste presenti in un pool e re-instrada automaticamente il traffico alle istanze "sane" finché quelle guaste non vengono ripristinate
  10. Durabilità: i dati vengono archiviati in modo ridondante in più strutture e in più dispositivi all'interno di ogni struttura Disponibilità: segue lo schema di divisione in zone di disponibilità che segue EC2 Scalabilità: consente di archiviare la quantità di dati desiderata e di accedervi quando necessario, in modo da evitare di formulare ipotesi sui futuri requisiti di storage e ridimensionare la capacità in base all'aumento o alla diminuzione delle esigenze Alte prestazioni: supporta i caricamenti in più parti per potenziare al massimo il throughput e la resilienza di rete e consente di scegliere la regione AWS per archiviare i dati in prossimità dell'utente finale e ridurre al minimo la latenza di rete
  11. Le reti e i nodi falliranno sempre: per questo, bisogna considerare come punto fermo e inevitabile il fatto che la rete si possa partizionare, e avere un sistema che possa funzionare anche in questo caso La scelta quindi si riduce ad AP o CP: Netflix ha scelto la availability, piuttosto che la strong-consistency (quindi modello AP) Alta disponibilità  migliore esperienza utente: è più importante che la scrittura proceda, gli eventuali conflitti verranno sistemati in seguito, quando si risolverà il guasto che ha generato il partizionamento Il modello relazionale non è adatto a questa scelta, dunque Netflix ha dovuto scegliere di adottare database di tipo non relazionale, ove non è più possibile fare query di join (ciò complica il reperimento di dati) e nemmeno basarsi su consistenza di tipo read-after-write. Netflix usa tre tipi di DB NoSQL: SimpleDB (di AWS), Hbase e Cassandra; quest’ultimo è quello più usato nell’architettura di Netflix
  12. In pratica è un ibrido tra un database di tipo chiave – valore e uno “column – oriented” Chiave – valore: paradigma di storage che implica la memorizzazione di dati come un array associativo Column – oriented: immagazzina tabelle di dati come sezioni di colonne di dati Colonna: una tupla che consiste di un nome unico, un valore, e un timestamp (che serve per determinare se un contenuto è valido od obsoleto) Modello a partizionamento, decentralizzato Consistenza “tunable” (ovvero, a livello di chiamata, l’applicazione stessa può determinare il livello di consistenza prescelto per letture e scritture – single, quorum, o all) Tabella: mappa multidimensionale distribuita (si può scegliere se a 4 – simple – o a 5 – super – dimensioni) L’architettura dell’accesso al database è perciò abbastanza complicata, ma questo consente di avere dati reperibili velocemente e anche una rappresentazione più ricca rispetto al semplice chiave-valore. Per il reperimento di un valore, si segue, nell’architettura a 5 dimensioni, il seguente iter di chiavi: Keyspace → Famiglia di Super-Colonne→ Riga della famiglia di Super-Colonne→ Super Colonna → Colonna→ Valore Le tabelle possono essere create, cancellate e alterate in run-time senza bloccare updates né query Cassandra non supporta né join né query indentate. Anzi, enfatizza la denormalizzazione  alte prestazioni (soprattutto in scrittura)
  13. Decine di migliaia di nodi di elaborazione su AWS EC2 Generalmente 4 core, 30 GByte di RAM, Java VM Migliaia creati/rimossi ogni giorno Diversi tipi delle istanze disponibili in EC2 utilizzati, a seconda dell’applicazione Storage dei dati – Cassandra Migliaia di nodi NoSQL Cassandra, sempre su EC2 8 core, 60GByte RAM, 2TByte di SSD 65 diversi clusters, oltre 300TB di dati totali (dati del novembre 2013), replicati in tre zone per ogni regione: serve infatti che, per ogni regione, ci sia un quorum di 2 su 3 copie online per fornire il servizio Oltre 40 clusters sono multi-regione (servono 3 copie a cluster per regione, perciò in totale alcuni clusters hanno anche 12 copie)
  14. Applicazioni SaaS PagerDuty: servizio di aggregazione e inoltro di allarmi per gli amministratori del sistema; contiene strumenti per monitorare e allertare prontamente il personale a disposizione in caso di problema OneLogin: servizio di single-sign-on (SSO) Servizio DNS Il servizio DNS di AWS, Route53, è carente per le esigenze di Netflix Perciò anche in questo caso, come per i database, Netflix ha adottato la strategia di utilizzare più sistemi: Dyn e UltraDNS, di cui usano tutte le feature, mantenendo Route53 per garantire automazione e switching affidabile attraverso la sua API È stata sviluppata una libreria open-source, “The Denominator” per fornire un’interfaccia comune per questi sistemi Servizio CDN Content Delivery Network: è la distribuzione all’utente finale, generalmente fatta attraverso i server della rete stessa OpenConnect: Netflix ha sviluppato invece un vero e proprio box hardware, per alleggerire il lavoro dei server del cloud soprattutto nelle zone ove gli ISP hanno più traffico. Lo vediamo ora nel dettaglio
  15. Hardware appliance= device HW separato con il software integrato (firmware), appositamente progettato per fornire una specifica computing resource.
  16. Originariamente: un sistema piuttosto primitivo, monolitico (formato da un solo blocco), sostenuto da un DB Successivamente: miglioramenti continui che hanno permesso di scalare il sistema per gestire miliardi di eventi al giorno. STATEFUL: Dati partizionati in N nodi, facendo il resto della divisione intera tra ID account utente e N. Quando i nodi stateful vanno online, avviano un processo per determinare quale partizione di dati gli apparterrà. Cassandra è il data store primario per tutti i dati persistenti. STATELESS: introdotto più avanti, sorta di “backup” dei dati– costruito sulla base dell’architettura esistente. Garantisce maggiore Availability Costituisce una sorta di passaggio per data-stores esterni.
  17. Goal: Find the best possible ordering of a set of videos for a user within a specific context in real-time Objective: maximize consumption & “enjoyment”