Una presentazione su Netflix, per conoscerne gli aspetti generali, il funzionamento, la sua architettura e i servizi di cui usufruisce, con particolare focus sulla scalabilità
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
20062009: 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:
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!
Per avere uno sguardo d’insieme sull’intero sistema, analizzandolo a 360 gradi e inquadrandolo nel contesto economico e sociale/lavorativo.
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
Dic 2011: Scissione aumento prezzi perdita di fatturato e di valore delle azioni
Context, not control
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
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
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
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
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
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
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
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)
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)
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
Hardware appliance= device HW separato con il software integrato (firmware), appositamente progettato per fornire una specifica computing resource.
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.
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”