Viaggio alla scoperta del Cloud Computing

La nuova architettura solleva ancora numerosi dubbi su vari fronti, tra i quali la sicurezza e gli standard di interoperabilità

Tutti ne parlano ma nessuno ha un'idea ben chiara di cosa sia. Dopo la virtualizzazione, protagonista assoluta delle campagne marketing e gli articoli di stampa specializzata di tutto il mondo già dal 2006, il cloud computing è il nuovo tormentone dell'It per la stagione 2009-2010.

A dire la verità, tra i due, di tormentone ce n'è stato un altro, quello del green computing, che però non ha avuto l'attenzione che sperava dal mercato. Ma l'idea di investire milioni di dollari in nuove infrastrutture per salvare il pianeta non ha riscosso molto successo e così l'industria pubblicitaria è immediatamente passata oltre.

Questa premessa potrebbe lasciare intendere che i termini succitati non siano altro che trovate di marketing per rendere più interessanti le stesse tecnologie che sono in circolazione da decenni. In realtà, nella maggior parte dei casi non è così: nel numero 2 di Lineaedp abbiamo visto come la virtualizzazione sia una parola che raggruppa una serie notevole di tecnologie estremamente diverse tra di loro, estremamente innovative e soprattutto estremamente concrete.

Come la virtualizzazione, il cloud computing è una etichetta generica che si può riferire a un numero significativo di soluzioni e prodotti diversi, offerti dalle aziende dalle competenze più disparate.

Con questo articolo cerchiamo di far luce su cos'è, perché vale la pena seguirne le evoluzioni e quali sono i nuovi scenari che si stanno aprendo per le aziende di tutto il mondo.

Un'architettura difficile da definire

Trovare una definizione univoca per il cloud computing è un'impresa più che ardua. Fino a oggi si sono cimentate le più prestigiose società di analisi del mondo, colossi dell'informatica, gruppi di studio formati da esperti indipendenti e molti altri. Nessuno è d'accordo sul significato ultimo del cloud computing. E se c'è questa confusione tra gli addetti ai lavori, figuriamoci tra i potenziali clienti.

Poco tempo fa, il lead architect per le tecnologie di cloud computing in Vmware, Mike DiPetrillo, osservava sul suo blog personale che perfino all'interno di una stessa azienda “cloud” significa cose diverse per persone diverse.

Ecco quindi che le chance di fornire una spiegazione chiara sono piuttosto basse, ma vale lo stesso la pena tentare. Innanzitutto, possiamo dire che il cloud computing è una architettura, un modello organizzativo per l'infrastruttura informatica che rende praticabile un certo modello di business.

Nel cloud computing continuiamo a usare i soliti computer con memorie, dischi, apparati di rete e via dicendo. La differenza sta in come queste risorse vengono organizzate, interconnesse e accedute.

La tecnologia viene riorganizzata in maniera da rendere possibile un modello di business di tipo pay as you go, ovvero paghi quello che consumi.

Poi possiamo dire che una delle caratteristiche principali di questa architettura è la capacità di fornire maggiore potenza computazionale in maniera trasparente all'utilizzatore tutte le volte che ne ha bisogno (scalability on demand).

Nel cloud computing, quando l'utente finale ha bisogno di più risorse, non chiede un nuovo computer all'amministratore di sistema come succede oggi nelle architetture tradizionali, ma chiede l'erogazione di maggiori cicli di Cpu o più quota di memoria o più quota disco o più banda. Un po' come succede nelle nostre case quando l'erogazione di energia elettrica standard non è più sufficiente al nostro fabbisogno: non cerchiamo una casa nuova, ma semplicemente chiediamo al fornitore di energia una maggiore erogazione e ne paghiamo di conseguenza il prezzo maggiorato. Possiamo anche dire che in questa architettura le risorse computazionali vengono presentate non come unità discrete ma come una singola struttura di calcolo, che può estendersi oltre i limiti del data center di una singola azienda, o anche al di là dei confini geografici.

I componenti hardware che entrano in gioco nel cloud computing vengono “orchestrati”, come si dice in gergo, da software estremamente evoluti che ne astraggono le differenze fisiche e ne automatizzano la configurazione.

Queste due operazioni sono ovviamente estremamente complesse e richiedono lo sforzo congiunto di tutti i vendor nell'adottare e supportare tecnologie che permettono tanto l'astrazione, come ad esempio le tecnologie di virtualizzazione, quanto l'automatizzazione.

Infine, va detto che questa architettura è resistente ai fault, grazie alla duplicazione degli elementi che la compongono e la replicazione dei dati in essa contenuti. Nel cloud computing i tradizionali meccanismi di alta disponibilità che usiamo nei data center convenzionali si evolvono per garantire la sopravvivenza agli eventi più infausti.

Individuati almeno questi quattro elementi distintivi del cloud computing, resta da chiarire come venga usato. Ed è qui che il termine comincia a significare cose diverse per persone diverse. L'architettura elastica e on demand descritta finora può soddisfare le più svariate esigenze, a seconda di chi la utilizza: l'amministratore di sistema potrebbe volere nuovi server senza dover perdere tempo a configurare le connessioni di rete o installare il sistema operativo, il solution provider potrebbe voler usufruire di nuove piattaforme dove sviluppare la propria applicazione senza doversi preoccupare di disegnare un data center e dimensionarlo correttamente, il cliente finale potrebbe volere accedere alla sua applicazione preferita senza doverla installare e configurare su tutti i suoi computer, al lavoro e a casa.

In ognuno di questi casi, per ragioni diverse e in modi diversi, le reti di computer che costituiscono una infrastruttura di tipo cloud diventano dei servizi, acceduti e consumati solo quando necessario. Ma giacché ogni richiesta è diversa, possiamo parlare di almeno tre diverse implementazioni del cloud computing: Infrastructure as a service (Iaas), Platform as a service (Paas) e Software as a service (Saas).

Il cloud computing visto come Infrastructure as a service

In un modello Iaas, la nuvola computazionale è in grado di offrire dei server virtuali su richiesta. Simili ai server fisici di cui oggi disponiamo all'interno dei nostri data center, le versioni virtuali vengono dimensionate in base alle esigenze del committente, che solitamente ne specifica la potenza e numero di processori, la quantità di memoria desiderata, lo spazio disco, e la quantità di banda in ingresso e uscita. Queste scatole vuote vengono poi riempite dai sistemi operativi e dalle applicazioni decise dal committente. Quando il business del committente cresce al punto tale di aver bisogno di server virtuali più potenti, questo semplicemente richiede un aumento delle risorse assegnate, con un singolo click attraverso la più banale delle interfacce utente. Se il business cresce ancora, al punto tale da dover ospitare una nuova applicazione, allo stesso modo il committente richiede un server virtuale aggiuntivo. Sempre con un click. Grazie al cloud computing un'azienda appena nata può disporre da subito di un data center di ultima generazione, pagando solo le risorse che consuma, senza preoccuparsi di avere la conoscenza per progettarne uno proprio e senza preoccuparsi di avere i soldi per costruirlo. Realizzare una architettura di tipo Iaas è possibile in diversi modi. Quello in assoluto più semplice è attraverso l'uso delle tecnologie di virtualizzazione, e quindi non stupisce che molti vendor in questo segmento di mercato, come Vmware, Microsoft o Citrix, stiano spingendo enormemente per l'adozione del cloud computing. Ma chi è che effettivamente offre delle infrastrutture (virtualizzate e non) come servizi? Il pioniere di questo campo è stata Amazon. Due anni fa ha abbracciato completamente la virtualizzazione open source, adottando l'hypervisor Xen, e ha lanciato Elastic Computing Cloud o EC2. Da allora centinaia di startup americane hanno usato il servizio come data center remoto.

Oggi l'esempio e il successo di Amazon stanno contagiando alcuni tra gli hosting provider più grandi del mondo, che guardano al cloud computing di tipo Iaas come alla naturale evoluzione dei loro servizi di hosting condiviso e dedicato.

Probabilmente l'esempio più ecclatante viene da RackSpace che controlla non una ma due aziende in questo segmento di mercato emergente: Mosso e SliceHost.

L'implementazione Platform as a service

La disponibilità virtualmente illimitata di computer che offrono le soluzione Iass è estremamente allettante per un'azienda che voglia installare molteplici servizi, dal mail server al Crm, dal Web server al database e via dicendo.

Ovviamente l'approccio Iaas ha dei lati negativi. Tanto per cominciare c'è da occuparsi della configurazione dei sistemi operati nei server virtuali vuoti, e dell'installazione e gestione degli applicativi che questi ospiteranno. È vero che l'intero modello del cloud computing, come abbiamo detto, permetterà al cliente di scalare secondo le sue esigenze, ma l'ottimizzazione del software rimane ancora un processo manuale. Inoltre c'è ancora l'aspetto critico dell'infrastruttura da considerare e quindi uno o più server virtuali dovranno essere affittati solo per lavorare come firewall, intrusion detection system, e così via.

Un certo tipo di clienti potrebbe trovare molto più utile usufruire semplicemente di una piattaforma di sviluppo senza preoccuparsi di tutto quello che c'è sotto (il sistema operativo, l'application server, il database) e intorno (il firewall, i prodotti di bilanciamento di carico, e via dicendo).

Ecco allora che l'architettura del cloud computing viene adattata per diventare quello che chiamiamo Platform as a service (Paas). In una realtà Paas, la piattaforma applicativa offerta, supporta uno o più linguaggi di programmazione, garantisce un accesso trasparente ai database server e, soprattutto, scala al crescere della domanda per l'applicazione del cliente. Il pioniere in questo nuovissimo segmento di mercato è Google, che un anno fa ha lanciato il suo App Engine, che al momento supporta soltanto il linguaggio Python ma presto il colosso della ricerca potrebbe estendere la sua piattaforma a Java o Php. Anche Microsoft si sta muovendo nella stessa direzione e sta per rilasciare Azure, una realtà Paas in grado di supportare i linguaggi .Net e Php.

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here