musixmatch cloud: microsoft azure media services and ugc content
TRANSCRIPT
BIZ01- Come Musixmatch ha usato il cloud: Azure Media Services e User Generated Content
Ing. Loreto [email protected]@loretoparisi
Ing. Lorenzo [email protected]@lorenzoglielmi
#CDays15 – Milano 24, 25 e 26 Marzo 2015
Grazie a
PlatinumSponsor
#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