Un’altra classificazione del cloud: IaaS, PaaS e SaaS

Prima di spiegarti il cloud pubblico e le altre tiplogie di cloud (privato, ibrido e community), ti ho detto che la classificazione del cloud computing è duplice e risponde a due domande:

  • dove vanno finire i miei dati?
  • quali funzionalità posso sfruttare?

Se al primo quesito ti ho già risposto declinandoti il cloud in pubblico, privato, ibrido e community, mi manca di rispondere alla seconda domanda per spiegarti l’altra tipologia di classificazione che si fa sulla nuvola.

Sulla base del “quali funzionalità posso sfruttare”, il cloud si classifica in cloud IaaS, cloud PaaS e cloud Saas. Ecco una rappresentazione piramidale della nuvola declinata nelle sue tre tipologie, in cui vengono indicate le figure destinatarie e le tipologie di servizi offerti.

Un’altra classificazione del cloud: IaaS, PaaS e SaaS

Come puoi notare tu stesso, per quanto IaaS, PaaS e SaaS siano tre tipi di nuvola separati, in realtà il confine fra l’una e l’altra classificazione è labile e non è raro trovare un provider che offra tanto la tipologia IaaS, quanto la tipologia PaaS e quella SaaS. Google è un chiaro esempio di come tutte e tre le tipologie possano essere fornite da un medesimo player IT.

Voglio però entrare un po’ più nello specifico, per spiegarti cosa differisce fra IaaS, PaaS e SaaS.

Il cloud SaaS – Software as a Service

Alla punta della classificazione cloud, c’è la tipologia SaaS – Software as a Service. Questa tipo di nuvola è pensato per fornire agli utenti consumer o business un servizio applicativo, ossia un’applicazione che non risiede sul PC degli utenti, ma è raggiungibile e utilizzabile via Internet attraverso il browser. La parte logica e i dati dell’applicazione vengono mantenute su uno o più cluster server di cui non si conosce la collocazione e l’utente ha l’opportunità di usare il software e le informazioni da ovunque, da qualsiasi postazione (a volte anche dispositivo mobile) collegato a Internet. L’accesso al servizio applicativo può essere gratuito ovvero prevedere una sottoscrizione basata sul tempo di utilizzo (annuale, mensile, ecc.)  ed è molto meno onerosa dei costi di licenza one-shot.

Esistono diversi esempi di servizi cloud SaaS, fra cui il più famoso è il CRM online Salesforce.com, ma è possibile citare anche Google Docs, Microsoft Office 365, Jira, Basecamp e via discorrendo.

Il cloud IaaS – Infrastructure as a Service

Al gradino più basso della classificazione c’è la tipologia di nuvola Infrastructure as a Service. Si tratta del cloud più “bare metal”, ossia a più diretto contatto con la vera e propria infrastruttura computazionale, storage e network. La tipologia IaaS è quella tipicamente dedicata agli amministratori di sistema che decidono quali istanze attivare, con quali caratteristiche network e con quante risorse, anche in termini di storage. Il provider IaaS, di solito, fornisce tanto un hardware virtualizzato ed elastico (ossia scalabile in verticale a diminuire e ad aumentare) quanto il sistema operativo virtuale di gestione.

In fondo, ogni provider di web hosting potrebbe essere considerato un provider IaaS, ma ciò che differenzia un semplice web hoster da un provider cloud è la modalità di fatturazione e l’elasticità offerta. Un web hoster fattura i propri servizi mensilmente o annualmente secondo listini predefiniti e le risorse non sono elasitche. Al contrario, un cloud provider fattura l’infrastruttura sulla base del tempo di utilizzo, senza canoni fissi e offrendo l’elasticità necessaria per l’esecuzione dei workload.

Fra i provider IaaS, non si può non annoverare Amazon con EC2, Rackspace ma anche Google con Compute Engine.

Il cloud PaaS – Platform as a Service

A fare da ponte fra il lato applicativo (SaaS) e quello hardware/infrastrutturale (IaaS) c’è il cloud Paas – Platform as a Service. La grande differenza fra il tipo IaaS e quello PaaS è l’aggiunta dell’ambiente di sviluppo necessario ai developers, a cui, normalmente, l’offerta PaaS è indirizzata. Gli sviluppatori non si vogliono occupare delle gestione dell’hardware e vogliono trovare un ambiente di sviluppo completo con il pieno supporto ai database, ai linguaggi di programmazione e alle tecnologie application server necessarie per lavorare. Il cloud Paas fornisce proprio questi strumenti, aggiungendo la scalabilità dinamica, l’automatzione per i backup dei database e un set di linguaggi di programmazione specifici.

I servizi PaaS sono di norma fatturati come costo incrementale ai costi pay-per-use legati all’offerta IaaS.

Alcuni provider PaaS sono Amazon AWS Elastic Beanstalk, Google App Engine, Cloud Foundry, Engine Yard, Azure e via discorrendo.

Le commistioni delle tipologie di cloud

Al di là della classificazione rigida, utile in termini didattici, la realtà è un po’ più complessa di quanto si creda. Come ti dicevo in apertura, il confine fra un’offerta PaaS e IaaS è davvero labile, tanto che Azure e Google possono essere considerati provider di entrambe le tipologie di cloud. In realtà, questa commistione è ancora più specifica in determinati ambiti.

Ad esempio, se prendi in considerazione Dropbox o Box, allora potrai notare come il servizio applicativo di memorizzazione dati offerto (che potrebbe essere classificato come SaaS) in realtà si coniuga con un’infrastruttura di storage ridondante ed elastica, tipica dei provider IaaS.

Per coprire questa contaminazione fra le diverse tipologie cloud e per delineare casi più specifici, le categorie cloud si sono allargate nel tempo fino a contemplare cloud di tipo Storage as a service (STaaS)Security as a service (SECaaS)Database as a service (DBaaS)Test environment as a service (TEaaS), Desktop as a service (DaaS) e API as a service (APIaaS).