Il National Institute of Standards and Technology (NIST) ha pubblicato una definizione funzionale di Cloud Computing che presenta molte caratteristiche comuni a molte soluzioni proposte dal mercato e può essere utile per chiarire il panorama dell’offerta e capire il posizionamento dei player..

Il Cloud Computing è ancora un paradigma in evoluzione, nonostante sia ormai diffusa, in tutti gli operatori dell’ICT, un certa frenesia di presenzialismo in questo settore, considerato molto promettente. Le definizioni, i casi d’uso, le tecnologie di base, i problemi, i rischi e i benefici che dovrebbe produrre saranno precisati, nel corso dei prossimi mesi, in modo più accurato di quanto lo siano attualmente grazie (per dirla in politichese) “all’ampio dibattito” in atto su questo tema sia nel settore pubblico che in quello privato. E’ prevedibile però che tutto ciò che vi è di afferente e consequenziale al Cloud Computing evolverà e cambierà nel tempo, così come è accaduto – e accadrà – per ogni altro paradigma-killer che, periodicamente, emerge dall’ICT (o viene fatto emergere artatamente). E’ semplice pronosticare una certa aleatorietà definitoria del Cloud Computing dato che le specifiche riportate nel documento assunto come base per la redazione di questo articolo fanno riferimento alla versione 15 della definizione, pubblicata il 7 ottobre 2009 dall’Information Technology Laboratory del NIST e redatta a cura di due scienziati, onusti di gloria informatica, quali Peter Mell e Tim Grance. Si osservi infine che l’industria del Cloud Computing costituisce un ecosistema ampio e articolato, composto da diversi modelli di riferimento, adottati da una crescente comunità di fornitori di soluzioni e servizi che operano in quasi tutti i settori di mercato. Ne discende che le definizioni riportate nel seguito sono piuttosto lasche, appunto perché tentano di comprendere tutti i vari approcci possibili al Cloud Computing.

 

La definizione

Secondo il gruppo di lavoro coordinato da Mell e Grance, il Cloud Computing è definibile nel modo seguente: “Il Cloud Computing è un paradigma di elaborazione dei dati concepito per favorire le modalità di accesso economiche, tramite rete e on-demand alle funzionalità dell’ICT generalmente disponibili. Esso riguarda un pool riconfigurabile di risorse computazionali condivise (per esempio: reti, server, sistemi di storage, applicazioni e servizi) che possono essere rese rapidamente disponibili a un certo parco di clienti, indefinitamente esteso. Il rilascio di queste risorse deve avvenire da parte di un fornitore di servizi con la minima attività possibile di gestione o di interazione” Questo modello di Cloud Computing enfatizza la disponibilità delle risorse ed è composto da cinque caratteristiche di base, tre modelli di servizio e quattro modelli di distribuzione.

 

Caratteristiche di base

On-demand self-service. Il i assume che ogni consumatore (o cliente) deve essere messo in condizione di acquisire, unilateralmente e in base alle proprie esigenze operative, il complesso delle capacità di elaborazione di cui ha bisogno, sia in termini di tempo macchina dei server che di capacità della memoria di massa disponibile via rete. Questa attività deve avvenire automaticamente, attingendo ai servizi che ogni provider eroga e senza richiedere alcuna interazione umana. Broad network access. Le diverse funzionalità sono rese disponibili tramite una rete (di comunicazione) accessibile mediante una serie di meccanismi standard che promuovono l’utilizzo, da parte del consumatore, di piattaforme client eterogenee, stanziali o mobili (per esempio, telefoni cellulari, laptop e PDA).

 

Resource pooling

I provider delle risorse di elaborazione sono raggruppati in pool affinché possano servire una pluralità di utenti utilizzando un modello multi-tenant, con diverse risorse fisiche e virtuali assegnate ai tenant (“affittuari”) in modo dinamico e in base alla domanda. Negli ambienti di Cloud Computing il cliente deve percepire un marcato senso di indipendenza dalla locazione; in genere non ha alcun controllo o conoscenza sulla posizione esatta, puntuale, delle risorse a sua disposizione, ma è in grado di specificarla a un livello di astrazione piuttosto elevato (di stato, regione, datacenter). Esempi di risorse sono lo storage (memorie di massa), gli elaboratori, la memoria centrale, la larghezza di banda della rete di comunicazione e le macchine virtuali.

 

Rapid elasticity

Le funzionalità sono rese disponibili in modo rapido ed elastico (cioè adattabile al carico di lavoro). In alcuni casi si richiede che ciò avvenga automaticamente per permettere di scalare rapidamente in modo distribuito (scale out) e, altrettanto rapidamente, essere rilasciate per traslare in ambienti centralizzati (scale in). Per il consumatore, le capacità disponibili devono apparire illimitate e possono essere acquistate in qualsiasi momento nelle quantità desiderate.

 

 

Measured Service

I sistemi cloud controllano e ottimizzano le risorse in modo automatico adottando alcune funzioni di misurazione operanti a un livello di astrazione adeguato al tipo di servizio richiesto (per esempio: storage, processing, larghezza di banda e contabilizzazione degli utenti attivi). Inoltre, l’utilizzazione delle risorse può essere monitorata, controllata e riportata per garantire la trasparenza operativa e amministrativa sia ai provider che ai consumer dei servizi utilizzati.

 

I modelli di servizio

Cloud Software as a Service (SaaS). E’ la capacità, messa a disposizione del consumatore, di utilizzare le applicazioni del fornitore che operano su un’infrastruttura cloud. Le applicazioni possono essere accedute da diversi dispositivi client tramite un’interfaccia di tipo thin-client (come un web-browser, per esempio). Il consumatore non gestisce o controlla la sottostante infrastruttura cloud (rete, server, sistemi operativi, storage, singole funzioni applicative), con l’eccezione, eventualmente, di un limitato gruppo di impostazioni di configurazione applicative specifiche di un certo utente. Cloud Platform as a Service (PaaS). Con questa dizione si intende la capacità, attribuita (ceduta) al consumatore, di dislocare sull’infrastruttura cloud alcune applicazioni realizzate dal consumatore stesso o acquisite dal mercato. Esse devono essere create utilizzando i linguaggi di programmazione o i tool supportati dal provider dell’infrastruttura. Il consumatore non deve gestire l’infrastruttura cloud, ma ha il controllo sulle applicazioni distribuite e, se possibile, anche sulle configurazioni dell’ambiente di hosting applicativo. Cloud Infrastructure as a Service (IaaS). Permette di fornire al consumatore la capacità di acquisire le risorse di calcolo fondamentali relative ai server, allo storage e alle reti. In questo caso il consumatore è in grado di distribuire e attivare l’esecuzione di qualunque tipo di sistema software, sia di base (per esempio i sistemi operativi) che applicativo (per esempio una suite ERP o CRM). Anche in questo caso il consumatore non gestisce l’infrastruttura cloud, ma ha il governo dei sistemi operativi, dello storage, delle applicazioni distribuite ed, eventualmente, esercita un controllo limitato sulla selezione di alcuni componenti di rete (per esempio i firewall dislocati sull’host). Modelli di distribuzione Private cloud. 

Definisce un’infrastruttura cloud utilizzata esclusivamente da un’organizzazione (impresa o ente). Può essere gestita direttamente dall’organizzazione oppure da uno o più provider specializzati, ed esistere in forma “on premise” (letteralmente nell’edificio, in sede) oppure “off premise” (fuori dall’edificio, fuori sede). Community cloud. L’infrastruttura cloud è condivisa da molte organizzazioni e supporta una comunità di consumer che hanno gli stessi interessi (per esempio: la missione, i requisiti di sicurezza, le policy, le considerazioni sulla conformità). Essa può essere gestita dalle organizzazioni o da terzi e può esistere in forma on premise o off premise. Public cloud. L’infrastruttura di cloud computing è messa a disposizione del pubblico o di un settore industriale di grandi dimensioni ed è di proprietà di un’organizzazione specializzata nella vendita di servizi cloud. Hybrid cloud. L’infrastruttura cloud è una composizione di due o più modelli di distribuzione (private, community, public), che rimangono entità uniche ma sono integrate da tecnologie standard o proprietarie che consentono di effettuare la portabilità dei dati e delle applicazioni (per esempio il clod bursting, una tecnica per il bilanciamento del carico tra cloud). I sistemi software cloud-like sfruttano appieno le opportunità offerte dal paradigma Cloud Computing essendo, innanzitutto, orientate ai servizi ma con particolare attenzione alla condizione di statelessness (o “apolidia”, che in questo caso indica la non appartenenza a una particolare corrente culturale o commerciale dell’ICT), all’accoppiamento lasco, alla modularità e all’interoperabilità semantica.