Nel precedente articolo abbiamo introdotto il Cloud Computing: che cosa è e quali sono le differenti forme e tipologie di nuvole (private, pubbliche e ibride). Per quello che riguarda in modo specifico le nuvole di tipo pubblico, esistono diverse offerte disponibili sul mercato che possono essere classificate in tre tipologie: IaaS, PaaS e SaaS. Alcune di queste, principalmente in ambito SaaS, hanno raggiunto un grado di maturità tale da essere in alcuni contesti una valida alternativa al tradizionale “software con licenza”.
Quando si parla di Cloud Computing, la maggior parte di noi pensa subito a uno specifico tipo di cloud, quello di tipo pubblico. Questo offre possibilità di noleggiare l’infrastruttura IT di cui abbiamo bisogno e pagare solo per l’effettivo tempo di utilizzo, per il “consumo”, un po’ come si fa con la corrente elettrica o con l’acqua. Ci viene subito in mente, insomma, quello che molti definiscono “utility computing”.
Esiste un certo numero di offerte che ricadono in questo tipo di soluzione e, nel corso dell’articolo, ne introdurremo alcune (sono davvero tante e non potrò certamente essere esaustivo).
SaaS, PaaS e IaaS
Le tre grandi tipologie di servizi che sono offerti in modalità Cloud Computing sono Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS) e Infrastructure-as-a-Service (IaaS). Per ciascuna di queste esistono differenti soluzioni che possono essere adottate dalle organizzazioni, ma anche dal normale utente.
Di fatto, esistono due modalità di adozione tramite cui un’azienda o un utente può utilizzare i servizi offerti tramite la nuvola pubblica:
- Nel primo caso, l’azienda/organizzazione consuma direttamente i servizi offerti tramite la nuvola. Questo può essere il caso del SaaS, in cui l’organizzazione esternalizza il suo sistema CRM, affidandosi a quello offerto in modalità cloud.
- Nel secondo caso, l’azienda utilizza invece soluzioni di tipo cloud per dare a sua volta un servizio all’utente. L’utente potrebbe essere una parte dell’organizzazione stessa. Questo può essere il caso di un’infrastruttura presa a nolo (IaaS/PaaS) su cui far girare la propria applicazione.
L’aspetto comune a queste modalità è il valore che queste offerte portano a chi le utiliza. Questo tipo di soluzione permette come prima cosa di passare da costi di capitale a costi operativi, ma non solo. Soluzioni cloud permettono di far crescere dinamicamente e in modo elastico l’infrastruttura in funzione delle esigenze operative, semplicemente acquistanto ulteriore capacità elaborativa, storage, networking, etc. e permettono di liberarsi di una serie di attività (e quindi di costi) come installazione e manutenzione, che sono a carico del fornitore del servizio.
Dei servizi offerti in modalità cloud computing, il Software-as-a-Service è probabilmente quello più facilmente comprensibile e di più largo consumo. Anzichè installare il software sul proprio PC o nel proprio DataCenter, al software si accede via Internet. Il più classico esempio di SaaS è certamente la “banale” posta elettronica, ma l’offerta di SaaS non si ferma qui. Alcuni esempi sono: CRM (Salesforce o Oracle CRM On Demand), suite office e di collaborazione online (IBM LotusLive, Google Docs/Google Apps, Zoho), strumenti per lo sviluppo di processi di business (IBM BPM Blueworks), soluzioni di sicurezza (Trend Micro Software-as-a-Service), soluzioni di asset managment (HP Software as a Service for Asset Manager) e tanto altro ancora.
Figura 1 – Esempi di offerte di servizi.
Per un target differente di utenti ci sono poi soluzioni Platform-as-a-Service e Infrastructure-as-a-Service. Queste sono indubbiamente meno numerose di quelle disponibili per SaaS, ma in rapida crescita. Soluzioni di PaaS sono per esempio fornite da Google, con Google App Engine, mentre soluzioni di tipo IaaS sono fornite da Amazon Web Services (il più famoso è forse Amazon Elastic Compute Cloud, o EC2) che mette a disposizione risorse computazionali, storage e servizi per configurare l’ambiente di cui si necessita.
Platform-as-a-Service e Infrastructure-as-a-Service
Mentre il SaaS offre la risposta ad una specifica esigenza, quella di un servizio che può essere un CRM o una suite di collaborazione online, le offerte PaaS e IaaS mettono a disposizione all’utente finale servizi infrastrutturali e potenza computazionale scalabile.
Google App Engine, IBM Smart Business Development & Test e Amazon Elastic Compute Cloud sono solo alcune delle soluzioni disponibili che offrono questi servizi infrastrutturali.
Google App Engine
Google App Engine è l’offerta Platform-as-a-Service di Google. Accedere e utilizzare Google App Engine è estremamente semplice: basta avere o creare un account per far girare le proprie applicazioni direttamente e in modo gratuito sulle infrastrutture di Google. Attualmente il servizio mette a disposizione due ambienti di runtime, per applicazioni Java e Python, e un datastore per memorizzare i dati.
L’utilizzo della piattaforma è gratuito, almeno inizialmente, ed è possibile poi acquistare risorse computazionali, di memoria e di banda in funzione delle esigenze. In Google App Engine, le applicazioni sono in esecuzione in un ambiente protetto, necessario per poter garantire la corretta esecuzione delle applicazioni in un contesto distribuito e dinamico di questo tipo. Esempi di limitazioni sono:
- Le applicazioni non possono accedere in scrittura al file system, e possono leggere solo da file che sono caricati in Google App Engine insieme al codice applicativo.
- Le applicazioni possono memorizzare dati utilizzando il datastore, memcache o gli altri servizi offerti come blobstore.
L’offerta di Google fornisce anche un utile plug-in per ambienti di sviluppo Java basati su Eclipse e un ambiente di simulazione di Google App Engine per applicazioni Python che permettono agli sviluppatori di testare le applicazioni localmente prima di caricarle sulla piattaforma di Google.
Esistono poi strumenti offerti da terze parti che consentono di monitorare lo stato dell’infrastruttura. Un esempio è CloudStatus, offerto da Hyperic, che oltre a monitorare lo stato di Google App Engine, monitora lo stato di Amazon Web Services.
Figura 2 – Esempio di monitoraggio dello stato di Google App Engine tramite CloudStatus.
IBM Smart Business Development & Test
Di diverso tipo è invece la soluzione offerta, per ora come progetto pilota, da IBM: IBM Smart Business Development & Test. Tramite questo servizio, IBM mette a disposizione alcuni dei suoi prodotti di test e sviluppo Rational, la versione 7 di WebSphere Application Server, WebSphere sMash, ma anche DB2 v9.7, DB2 Express-C e altro ancora. Tutti questi prodotti sono offerti tramite il provisioning di macchine virtuali basate su Linux (Suse o Red Hat).
Tramite browser si può accedere al portale da cui si gestiscono le richieste di provisioning e le immagini create. Sempre sul portale è possibile trovare tutte le informazioni necessarie per poter poi accedere all’immagine creata (per esempio via NX Client) o alle console di amministrazione del software installato su queste.
Figura 3 – Cruscotto di controllo di IBM Smart Business Development & Test.
L’obiettivo di questa offerta è chiaramente differente rispetto alla soluzione marcata Google. Mentre la soluzione di Google permette di sviluppare un’applicazione, caricarla sulla piattaforma e renderla accessibile a chiunque via Internet, la soluzione di IBM ha, come il nome stesso può far intuire, l’obiettivo di fornire uno strumento per lo sviluppo e il test di applicazioni.
EC2
Delle soluzioni IaaS, Amazon Elastic Compute Cloud (EC2) rappresenta probabilmente l’offerta più ampia dal punto di vista della varietà software che mette a disposizione. Alcuni dei maggiori vendor IT infatti permettono di utilizzare in questo ambito le loro più note soluzioni software: Red Hat Enterprise Linux, Windows Server 2003/20008 e Oracle Enterprise Linux; IBM DB2, Microsoft SQL Server Standard 2005 e Oracle Database 11g; IBM WebSphere Portal Server; Jboss Enterprise Application Platform, IBM sMash, Oracle WebLogic Server e IBM WebSphere Application Server, giusto per citarne alcuni.
Amazon mette a disposizione l’infrastruttura IT su cui fare il provisioning di istanze di macchine virtuali (le Amazon Machine Image o AMI) che forniscono le funzionalità richieste dall’utente. I servizi offerti vanno dallo storage agli indirizzi IP, dalla possibilità di scegliere e utilizzare differenti datacenter in differenti località alla capacità di effettuare load balancing automatico verso le differenti istanze AMI, alla possiblità di creare delle “Virtual Private Cloud” utilizzando l’infrastruttura Amazon.
Ognuna di queste componenti ha il suo prezzo orario di utilizzo che può essere trovato sul sito di Amazon EC2.
Figura 4 – Esempio di prezzi per istanze On-Demand.
Conclusioni
L’IT offerto come servizio sta riscuotendo sempre maggiore successo e tutti i grandi “vendor” sono entrati nel settore. Anche per quello che riguarda le offerte di servizi offerti in modalità “Public Cloud” si sta assistendo a un aumento di interesse. Al momento gli ostacoli maggiori che le aziende possono avere nell’utilizzo di questa tecnologia sono legati a problematiche di compliance con gli standard di sicurezza e alle difficoltà che si possono incontrare nell’integrare queste soluzioni (prevalentemente nel caso di PaaS e IaaS) con la tecnologia che invece continua e continuerà a risiedere all’interno dell’azienda e alla disponibilità che queste soluzioni devono essere in grado di garantire per poter essere prese in considerazione in un ambito aziendale. Questi tematiche sono tutte considerate con accuratezza: sono per esempio diverse le soluzioni che cercano di indirizzare le problematiche relative alla sicurezza.
Sta nascendo inoltre un ecosistema di servizi che complementano le soluzioni PaaS e IaaS come soluzioni di monitoraggio della disponibilità (in particolar modo per Amazon Web Services e Google App Engine) in aggiunta agli strumenti offerti dagli stessi fornitori.
Riferimenti
[1] Salesforce
http://www.salesforce.com/it/
[2] Oracle CRM On Demand
http://crmondemand.oracle.com/en/index.htm
[3] Google Apps
http://www.google.com/apps/
[4] Zoho Work Online
http://www.zoho.com/
[5] “Collaborazione senza confini”: LotusLive
http://www-05.ibm.com/innovation/it/smarterplanet/collaboration.html
[6] IBM Business Process Management BlueWorks: BPM working in the cloud
http://www-01.ibm.com/software/solutions/smartwork/bpmblueworks/
[7] HP Software as a Service for Asset Manager
https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp=1-11-85-121^1480_4000_100__
[8] Trend Micro Software-as-a-Service
http://it.trendmicro.com/it/solutions/software-as-a-service/
[9] IBM Smart Business: Development & Test
https://www-180.ibm.com/cloud/developer/dashboard
[10] Amazon Elastic Compute Cloud
http://aws.amazon.com/ec2/
[11] Google App Engine
http://code.google.com/appengine/
[12] CloudStatus
http://www.cloudstatus.com/
[13] IBM Smart Business Cloud Computing
http://www.ibm.com/ibm/cloud/