Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

31
BIZ01- Come Musixmatch ha usato il cloud: Azure Media Services e User Generated Content Ing. Loreto Parisi loreto@musixmatch. com @loretoparisi Ing. Lorenzo Glielmi [email protected] @lorenzoglielmi

Transcript of Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

Page 1: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

BIZ01- Come Musixmatch ha usato il cloud: Azure Media Services e User Generated Content

Ing. Loreto [email protected]@loretoparisi

Ing. Lorenzo [email protected]@lorenzoglielmi

Page 3: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Agenda

• Chi Siamo

• User-Generated Content

• Lo streaming di contenuti multimediali

• Soluzione on premises

• Soluzione Cloud: Microsoft Azure

• Progettazione

• Live Demo

Page 4: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

• Fondata nel 2010 a Bologna, Musixmatch è il più grande catalogo di testi online con oltre 9,3 milioni di lyrics in 39 lingue.

Page 5: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

• Gli sviluppatori attraverso la API hanno accesso all’intero catalogo con più di 1 milione di artisti e oltre 20 milioni di canzoni.

• Worldwide licensing dai Top Music Publishers: Warner Chappel, Universal Bmg, Emi Publishing, Sony ATV, Bmg Rights, Kobalt Music.

• Attraverso il meccanismo del Crowdsourcing milioni di utenti contribuiscono al catalogo musicale.

More: http://musixmatch.com

Page 6: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

User-Generated Content

• User-Generated Content (UGC)• Qualsiasi forma di contenuto creato dagli utenti e disponibile online

• Tra i primi esempi ci sono post e commenti dei Blogger • Grande Quantità di dati da gestire• Moderazione dei contenuti• Necessità di esercitare un controllo d’accesso ai contenuti

• Oggi prevalentemente Contenuti Multimediali• Creati attraverso dispositivi Mobili • Banda disponibile non sempre adatta alla fruizione del contenuto

Page 7: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

User-Generated Content

Page 8: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Il problema

• Encoding e Streaming dei contenuti multimediali UGC (audio –video)

• Supporto ai principali protocolli di streaming a bitrate adattativo Mobile e Web.

• Pubblicazione di un Mobile Service per la gestione dei contenuti

• Storage dei contenuti e Policy di Accesso

Page 9: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Soluzione tradizionale (on premises)

Front end API Server

Encoding Server

Base dati

FileServer

Storage

• Installazione e configurazione delle macchine

• Costi di manutenzione delle macchine

• Costi di assistenza software

• Scaling dello Storage (size)

• Scaling della Banda e IOPS

• Scheduling dei job di Encoding

Tempo di messa in Produzione rilevante

Defocalizzazione dal problema di partenza

Expertise elevata

Load Balancing

Monitoraggio

Page 10: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Il Cloud: A Platform as a Service (PaaS)

Azure

Un’architettura Cloud è la progettazione di applicazioni software che utilizzano servizi su richiesta (on demand services) accessibili da Internet.

Le applicazioni cloud sono tali che l’infrastruttura computazionale è utilizzata solo quando è necessario, allocano le risorse on-demand, eseguono un job specifico,

quindi rilasciano le risorse quando il job è terminato. Durante l’esecuzione l’applicazione cloud scala elasticamente in base alla risorse necessarie.

Page 11: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Soluzione Cloud: Microsoft Azure

Mobile Services

Media Services

Web Job

Storage

Azure

• Zero Configuration• I costi sono pari al Costo

della piattaforma• Auto scaling• Self Healing• Monitoring

Tempo di messa in Produzione == Tempo di

SviluppoFocus sul problema Knowlegde del

problema

Page 12: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Soluzione Cloud: Microsoft Azure

Blob Storage

Storage Queue

Mobile Services

Web Jobmessage

Media Services

Page 13: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Media Services & Storage• Creazione rapidaccount “Media Services e dello Storage ad esso

collegato

Page 14: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Media Services & Storage• Creazione del Media Service e dello Storage ad esso collegato

Media Service Storage

Page 15: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Media Services: Adaptive Bitrate Streaming• HTTP Live Streaming (HLS)• Microsoft Smooth Streaming• MPEG-DASH

L’Encoder genera il videoa bitrate multipli.Il Segmenter MPEG-2 spezza il video in file di eguale lunghezza.Il client rilegge il Manifest Filee seleziona il segmento al bitratemigliore per la banda disponibile.

Page 16: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Media Services: Configurazione

Configurazione di Azure Media Encoder Configurazioni dello Stream

Page 17: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Mobile Services• Creazione del servizio mobile

DashboardCreazione Servizio Mobile

Page 18: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Mobile Services • Configurazione & Storage

Configurazione dell’SCM e del Database Storage Account e Storage Queue

Page 19: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Mobile Services: API • Upload del Contenuto• Pubblicazione• Monitoraggio della Coda

Page 20: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Mobile Services • Progettazione della API di

upload

La API crea un Container sullo Storage,definendone la Policy di Accesso.Restituisce al Client la url SAS (Shared Access Signature) per l’upload del contenuto.L’implementazione utilizza un hook di INSERT su una Table dello Storage.

Page 21: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Mobile Services • Accodamento

L’operazione di accodamento èeffettuata sull’hook di INSERT delcontenuto nello Storage

Il formato del messaggio specifica

l’Identificativo del Client,Il Tipo di Operazione,L’Elemento In Coda

Page 22: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Mobile Services • Accodamento

Un modulo ad hoc del Mobile Servicesespone l’API di accodamento e si occupadell’invio del messaggio.

La progettazione dei moduli non è un requisito, ma semplifica la progettazione del Mobile Service stesso.

Il modulo fa parte del repository dell’SCM Mobile Service.

Page 23: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Mobile Services • Progettazione della API di

monitoraggio della Coda

La API restituisce lo stato della coda permettendoneil monitoraggio.

Page 24: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Website• Creazione del Sito Web

Area geografica Dashboard

Page 25: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Web Job• Creazione e deploy con Visual Studio

Creazione Web Deploy

Page 26: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Web Job• Consumatore

Page 27: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Web Job• Job di Encoding

Page 28: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Recap

• Abbiamo progettato un Media Server per Streaming Video su Azure• Abbiamo utilizzato i Mobile Services per la API di gestione.• Abbiamo utilizzato i Media Services per l’Encoding.• Abbiamo utilizzato la Storage Queue per l’accodamento.• Abbiamo utilizzato Table e Blob Storage per i Contenuti e le Policy di

Accesso.

Page 29: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Riferimenti

• Media services

Configurazione del Media Encoder:https://msdn.microsoft.com/en-us/library/azure/hh973610.aspx

Esempi Dynamic-Packaginghttp://channel9.msdn.com/Series/Windows-Azure-Media-Services-Tutorials/Introduction-to-dynamic-packaging

Page 30: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

demoMobile Video App: Clip

Page 31: Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Q&A

Tutto il materiale di questa sessione suhttp://www.communitydays.it/

Lascia subito il feedback su questa sessione,potrai essere estratto per i nostri premi!

Seguici suTwitter @CommunityDaysITFacebook http://facebook.com/cdaysit#CDays15