Con la grande esplosione del cloud e di servizi e tecnologie ad esso legate, sempre più spesso si sente parlare di Infrastructure as a Service, Platform as a Service e Software as a Service. Ma quali sono le differenze tra IaaS, PaaS e SaaS?
Per prima cosa è importante definire le principali componenti di una piattaforma cloud:
- spazio (o storage): può essere costituito da una NAS (Network Attached Storage), da una SAN (Storage Attached Network) o ancora da una struttura complessa ad hoc
- nodi di calcolo: un sistema che gestisca la virtualizzazione dei processi (ad esempio con VMware, XEN o KVM)
- controller
I servizi che possono essere distribuiti appoggiandosi su una piattaforma cloud (chiamata in questo modo se il numero di processi istanziabili è maggiore del numero di nodi hardware, altrimenti si parla di grid computing) sono di tre tipologie distinte:
- Infrastructure as a Service (IaaS): quando si sceglie un servizio in modalità IaaS si ha a disposizione una virtualizzazione delle risorse hardware (CPU, RAM, spazio e schede di rete) e quindi la flessibilità di un’infrastruttura fisica senza l’onere della gestione della parte hardware e, soprattutto, senza la preoccupazione di dover garantire elevati livelli di accessibilità dei servizi (cosa di cui si occupa il fornitore del servizio). In questo caso è possibile installare il sistema operativo scelto e creare le applicazioni dovendo però gestire in autonomia la distribuzione del carico computazionale su più istanze. La fatturazione avviene il più delle volte periodicamente, in modalità flat, anche se la soluzione migliore sarebbe una fatturazione “a consumo” dato che, per il fornitore, il servizio rappresenta un costo solamente quando le risorse sono effettivamente occupate.
- Platform as a Service (PaaS): in questo caso è il fornitore ad occuparsi dell’infrastruttura, il cliente dovrà solo occuparsi di sviluppare la sua applicazione facendo però attenzione al tipo di servizio fornito ed ai linguaggi supportati dalla piattaforma scelta: è importante considerare con attenzione il tipo di database da utilizzare (MySQL, Oracle, MongoDB o altri) come anche il linguaggio di programmazione (PHP, Java, Python, ecc.). Anche in questo caso si sceglie una soluzione flat (vengono selezionati con attenzione lo spazio su disco, la banda, ecc.) e la fatturazione è, nella maggior parte dei casi, periodica.
- Software as a Service (SaaS): è la tipologia di servizio di più alto livello ed è offerto all’utente finale (servizio software sviluppato su una piattaforma che si appoggia su un’infrastruttura). L’esempio più comune di servizi SaaS è quello delle webmail oppure delle Google Apps. La fatturazione, in questo caso, è legata al numero delle utenze attivate.
Conoscere le diverse tipologie di servizi offerti in ambito cloud è di fondamentale importanza per scegliere quello più adatto alle proprie esigenze.