Definizione standard di Cloud Computing secondo il NIST
da Davide Riboldi · pubblicato il 24 settembre, 2013 · modificato il 5 giugno, 2017

Attualmente il termine di Cloud Computing viene usato in internet su qualsiasi cosa si avvicini ad un servizio on-demand. Capisco che il termine in questo momento sia un pochino di “moda”, ma questo non toglie che ormai il suo utilizzo sia diventato del tutto improprio in moltissimi casi. Proprio per questo insieme a Massimo Della Rovere abbiamo deciso di cercare una definizione che identificasse il termine cloud computing in maniera più chiara e secondo uno standard ben preciso. Abbiamo trovato e letto con attenzione il documento del NIST (National Institute of Standards and Technology) che ho personalmente cercato di tradurre al meglio per condividerlo direttamente con voi.

Nel lontano 1961 John McCarthy durante il centenario del MIT aveva introdotto quello che secondo lui sarebbe stato il futuro dei computer e il nuovo business che ne sarebbe scaturito, quello che riportò non solo è incredibilmente vero, ma si merita senza dubbio di essere aggiunto al gruppo dei “pensieri visionari”, infatti pensare nell’ambito tecnologico con così largo anticipo e più precisamente con oltre 40 anni di anticipo non possiamo dire che sia solo eccezionale ma è qualcosa di più.

“If computer of the kinds I have advocated become the computers of the future, then computing may someday be organized as a public utility just as a telephone system. The computer utility could become the basis of a new and important industry.”

Poter già immaginare negli anni sessanta che il computing un giorno sarebbero stato organizzato come un servizio pubblico e improntato su un modello pay-per-use alla pari di un servizio telefonico poteva anche sembrare alquanto prematuro o visionario, ma il tempo gli ha dato ragione ed oggi ci ritroviamo a fare i conti con un sistema sempre più attuale che diventerà nel prossimo futuro una tecnologia non più opzionale o di nicchia ma qualcosa che useremo tutti quanti quotidianamente.

Da quel discorso sono passati molti anni e specialmente nell’ultimo ventennio abbiamo assistito ad una vera e propria rivoluzione informatica, che ci ha condotti attraverso le più svariate tecnologie, come ad esempio: il modello client-server, il clustering, il grid computing, la virtualizzazione, la tecnologia multi utente, l’architettura internet e la conseguente banda larga. Tutte queste tecnologie sono state l’anticamera di quello che John McCarthy aveva già preannunciato e che nei giorni nostri hanno contribuito a dare forma a quello che noi oggi chiamiamo Cloud Computing.

Sono state spese molte parole per cercare di dare una definizione e un’identità propria al termine di cloud computing e molta confusione ancora pervade le nostre menti, arrovellandoci e cercando di capire cosa può essere considerato un cloud e cosa invece no. Sicuramente non tutti i servizi e le tecnologie a cui siamo abituati ad accedere attraverso la rete possono essere definiti dei servizi di cloud computing.

Per cercare di definire questo paradigma in costante evoluzione ci viene incontro il National Institute of Standards and Technology (detto NIST) che nell’ottobre del 2011 ha rilasciato la definizione del cloud computing e la relativa terminologia associata ad essa, qui di seguito il link ufficiale in inglese (NIST pubblicazione speciale 800-145).

Cloud Computing secondo il NIST

Il Cloud Computing è un modello che permette da qualsiasi luogo e in maniera comoda l’accesso su richiesta tramite rete, ad un insieme di risorse di elaborazione condivise e configurabili (es. reti, server, storage, applicazioni e servizi) che vengono rapidamente fornite e rilasciate con il minimo sforzo di gestione o di interazione da parte del fornitore del servizio. Questo modello è composto da: cinque caratteristiche essenziali, tre modelli di servizio e quattro modelli di distribuzione.

Caratteristiche essenziali

On-Demand self-service: Un consumatore, può unilateralmente approvvigionarsi di capacità computazionale come un server o uno storage a seconda delle proprie necessità e in maniera automatica, senza richiedere interazione umana con il fornitore.

Broad network access: Le funzionalità sono disponibili in rete e accessibili attraverso meccanismi standard che promuovono l’utilizzo di piattaforme eterogenee thin o thick client (es. telefoni mobili, tablets, computer portatili e stazioni di lavoro pc).

Resource pooling: Le risorse di elaborazione del fornitore dei servizi sono raggruppate per servire più consumatori utilizzando un modello multi-tenant (1), con differenti risorse fisiche e virtuali, assegnate e riassegnate dinamicamente in base alla richiesta dei consumatori. In tutto questo c’è un senso di indipendenza nella localizzazione, in quanto il cliente generalmente non ha alcun controllo o conoscenza dell’esatta ubicazione delle risorse fornite, ma può essere in grado di specificare una posizione ad un livello più alto di astrazione (es. nazioni, stati o datacenter). Esempi di risorse includono l’archiviazione dati, l’elaborazione, la memoria e la larghezza di banda.

Rapid Elasticity: Le funzionalità possono essere rilasciate e fornite elasticamente e in alcuni casi in maniera automatica, scalando rapidamente verso l’esterno o verso l’interno in proporzione alla domanda. Per il consumatore le capacità disponibili per l’approvvigionamento spesso sembrano essere illimitate e possono essere messe a disposizione in qualsiasi quantità e in qualsiasi momento.

Measured service: I sistemi cloud controllano e ottimizzano automaticamente l’utilizzo delle risorse sfruttando una capacità di misurazione (2) ad un livello di astrazione adeguato al tipo di servizio (es: storage, processing, bandwith etc). L’utilizzo delle risorse può essere monitorato, controllato e segnalato, in maniera trasparente sia per il fornitore che per il consumatore del servizio utilizzato.

Modelli di servizio

Software as a Service (SaaS): La capacità messa a disposizione del consumatore, è quella di utilizzare le applicazioni del fornitore in esecuzione su un’infrastruttura cloud (3). Le applicazioni sono accessibili dai vari dispositivi client attraverso un’ interfaccia thin client, ad esempio attraverso un web browser, oppure attraverso un interfaccia programma. Il consumatore non gestisce e non controlla l’infrastruttura cloud sottostante, che comprende la rete, i server, i sistemi operativi, lo storage o addirittura le singole funzionalità delle applicazioni. Con la possibile eccezione delle impostazioni di configurazione utente limitate alla specifica applicazione.

Platform as a Service (PaaS): La capacità messa a disposizione del consumatore è quella di distribuire sull’infrastruttura cloud applicazioni acquisite o create dal consumatore, utilizzando linguaggi di programmazione, librerie, servizi e strumenti supportati dal provider (4). Il consumatore non gestisce e non controlla l’infrastruttura cloud sottostante, che comprende la rete, i server, i sistemi operativi e l’eventuale storage, ma ha il controllo sulle applicazioni distribuite e le possibili impostazioni di configurazione per l’ambiente che ospita le applicazioni.

Infrastructure as a Service (IaaS): La capacità messa a disposizione del consumatore è quella di fornire elaborazione, archiviazione, reti e altre risorse fondamentali di calcolo dove il consumatore è in grado di distribuire e eseguire software arbitrario, che può includere sistemi operativi e applicazioni. Il consumatore non gestisce e non controlla l’infrastruttura cloud sottostante, ma ha il controllo su sistemi operativi, storage e applicazioni distribuite, eventualmente il controllo limitato di componenti di rete.

Modelli di distribuzione

Private cloud: L’infrastruttura cloud viene fornita ad uso esclusivo di una singola organizzazione che comprende più consumatori. Può essere di proprietà, gestita o azionata dall’ organizzazione o da terze parti, oppure da una combinazione di essi. L’infrastruttura può trovarsi all’interno o al di fuori della sede dell’organizzazione.

Community cloud: L’infrastruttura cloud viene fornita ad uso esclusivo di una specifica comunità di consumatori, provenienti da organizzazioni che condividono gli interessi e le preoccupazioni (es. missioni, requisiti di sicurezza, linea di condotta e conformità). L’infrastruttura può essere di proprietà, gestita da una o più organizzazioni all’interno della comunità o da terze parti, oppure da una combinazione di essi. L’infrastruttura può trovarsi all’interno o al di fuori delle proprie sedi.

Public cloud: L’infrastruttura viene fornita per un utilizzo aperto al grande pubblico. L’infrastruttura può essere di proprietà, gestita o azionata da organizzazioni aziendali, accademiche o governative, oppure da una combinazione di essi. L’infrastruttura è situata nelle sedi del cloud provider.

Hybrid cloud: L’infrastruttura cloud è un insieme di due o più infrastrutture cloud distinte (private, community o public) che mantengono la propria unicità, ma sono legate tra di loro da tecnologie standard o proprietarie che consentono la portabilità dei dati e delle applicazioni (es. cloud bursting (5) per il bilanciamento di carico).

Note indicate nel documento

  1. E’ un modello in cui una singola istanza software serve più utenti. Ogni singolo utente viene chiamato tenant. In un ambiente di cloud un fornitore di servizi SaaS può eseguire una istanza della propria applicazione dando servizio a più utenti. In questo tipo di scenario i dati dell’utente sono isolati dagli altri utenti.
  2. In genere questo viene fatto in modalità pay-per-use o charge-per-use.
  3. Una infrastruttura cloud è l’insieme di hardware e software che permettono le cinque caratteristiche essenziali del cloud computing. L’infrastruttura può essere vista come contenente, sia uno strato fisico che uno strato di astrazione. Lo strato fisico è costituito da risorse hardware che sono necessarie per supportare i servizi cloud che vengono forniti, e normalmente includono server, storage e componenti di rete. Lo strato di astrazione consiste nel software distribuito attraverso lo strato fisico, che manifesta le caratteristiche essenziali del cloud. Concettualmente lo strato di astrazione si trova/risiede sopra lo strato fisico.
  4. Questa possibilità non preclude l’utilizzo di linguaggi di programmazione compatibili, di librerie, di servizi e di strumenti provenienti da altre fonti.
  5. E’ un concetto che esprime la possibilità per una applicazione che gira all’interno di un cloud o data center, di poter utilizzare risorse di elaborazione di un altro cloud nel momento in cui l’applicazione raggiunge il picco di utilizzo.

Introduzione e traduzione a cura di Davide Riboldi. Se vi interessa seguire i prossimi articoli che pubblicheremo sul cloud computing e sui servizi di AWS in generale vi consigliamo di seguire la nostra community Cloud AWS+ presente su google+.

Guida completa su AWS

Questo articolo appartiene ad una serie di pubblicazioni che costituiscono una guida completa dedicata agli Amazon Web Services.  Molti servizi che trattiamo in questo blog vengono anche spiegati con dei video che trovate nel nostro canale youtube. Se volete seguire questo percorso didattico iscrivetevi alla community Cloud AWS.

condividi