Introduzione agli Azure Batch Service

di , in Azure Batch,

Con il diffondersi delle piattaforme cloud, il modo di creare le nostre soluzioni sta cambiando per meglio sfruttare le capacità dei servizi di cui disponiamo. La dinamicità delle risorse è infatti il punto chiave che ci permette di cambiare le architetture degli applicativi per fare ciò che fino a qualche anno fa non era possibile fare. Sia in ottica IaaS (Infrastracture as a Service) che PaaS (Platform as a Service), oggi possiamo scegliere di impegnare un grosso quantitativo di risorse computazionali, sfruttarlo per pochi minuti e poi rilasciarlo, il tutto ottimizzando i costi e senza preoccuparci della loro gestione fisica.

Questa possibilità apre le porte a nuovi scenari, permette di soddisfare meglio i requisiti del progetto, ma introduce anche una certa complessità di gestione che è nuova per come si pone. Di fronte ad una grande mole di lavoro da elaborare da una parte e ad una potenziale infinita quantità computazionale, dobbiamo preoccuparci di scegliere quante risorse allocare, di dividere il carico di lavoro su di esse e di aumentarle o diminuirle. Dobbiamo poi gestire gli eventuali problemi che si possono verificare, rielaborando un'attività non andata a buon fine e dobbiamo infine monitorare tutto questo, per conoscerne lo stato e per leggerne l'output.

Gli Azure Batch Service vengono in conto a questa esigenza fornendo una strumentazione che ci permette di risolvere tutti questi problemi con un'infrastruttura ben testata, delegandoci solo la parte di configurazione del sistema. In questo articolo vedremo quindi cosa sono gli Azure Batch Service e come sfruttarli per un semplice esempio. Sfrutteremo per l'occasione un esempio ufficiale disponibile a questo indirizzo che banalmente conta il numero di parole presenti all'interno di un file e ne restituisce il risultato, attraverso una console application sviluppata con il .NET Framework.

I requisiti

Prima di tutto è importante sapere che gli Azure Batch Service sono un servizio che sfrutta i Cloud Service, quindi l'infrastruttura PaaS di Microsoft Azure che alloca e gestisce le macchine virtuali effettuando in autonomia l'installazione della VM e delle dipendenze. Il servizio è di conseguenza gratuito per la parte di automazione e a pagamento per quella computazionale, cioè per il numero di istanze e la loro dimensione che abbiamo intenzione di andare a sfruttare. Parliamo di parte computazionale perché sostanzialmente l'uso di molteplici macchine, core e RAM è sostanzialmente necessario per operazioni che fanno uso intensivo di questi tre fattori. Gli Azure Batch Service si prestano quindi bene per elaborazioni di immagini, trasformazione di informazione, processamento di file e calcoli computazionali e trovano meno senso laddove abbiamo dei colli di bottiglia, come un database. Dal punto di vista architetturale, infatti, è fondamentale essere scalabili nel lavoro che c'è da svolgere, in modo da eseguirlo nei tempi e nelle modalità desiderate.

Per questo motivo gli Azure Batch Service prevedono l'uso di uno Azure Storage sul quale dovremo depositare:

  • I file necessari per l'elaborazione. Di fatto una console application, un batch, un command o uno script da eseguire, con le relative dipendenze. Questo rende gli Azure Batch Service adatti a qualsiasi linguaggio vogliamo utilizzare;
  • I file di input: le attività da svolgere portano con sé uno o più file che rappresentano l'informazione da elaborare. Potenzialmente possiamo quindi caricare immagini, documenti, file XML o JSON utili ad elaborare l'attività;
  • I file di output: opzionalmente possiamo decidere di depositare l'output in file anch'essi posizionati su blob. In alternativa potremmo usare code o database fermo restando che non devono costituire un collo di bottiglia.

L'uso degli Azure Storage permette di essere estremamente scalabili e di avere un'ampia capacità di storicizzazione. Tra i requisiti, quindi, oltre ad avere un Azure Account, dobbiamo avere un Azure Storage. Siamo noi a decidere se sfruttare uno o più container, se renderli pubblici o meno, poiché al sistema è sufficiente dare l'URI assoluto al file.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

Introduzione agli Azure Batch Service 1010 1
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti