Musixmatch Cloud: Microsoft Azure Media Services and UGC Content

Post on 17-Aug-2015

37 views 0 download

Transcript of 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 Parisiloreto@musixmatch.com@loretoparisi

Ing. Lorenzo Glielmilorenzo@musixmatch.com@lorenzoglielmi

#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

#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.

#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

#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

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

User-Generated 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

#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

#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.

#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

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Soluzione Cloud: Microsoft Azure

Blob Storage

Storage Queue

Mobile Services

Web Jobmessage

Media Services

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

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

collegato

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

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

Media Service Storage

#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.

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Media Services: Configurazione

Configurazione di Azure Media Encoder Configurazioni dello Stream

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Mobile Services• Creazione del servizio mobile

DashboardCreazione Servizio Mobile

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Mobile Services • Configurazione & Storage

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

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

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

#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.

#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

#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.

#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.

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Website• Creazione del Sito Web

Area geografica Dashboard

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Web Job• Creazione e deploy con Visual Studio

Creazione Web Deploy

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Web Job• Consumatore

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

Web Job• Job di Encoding

#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.

#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

#CDays14 – Milano 25, 26 e 27 Febbraio 2014

demoMobile Video App: Clip

#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