I modelli architetturale dei servizi offerti dal cloud computing consentono agli sviluppatori e agli utenti di poter usufruire di numerosi vantaggi durante il lavoro quotidiano: a seconda del modello preferito, o necessario in base ai nostri obiettivi, gli sviluppatori possono lavorare in ambiti applicativi chiaramente definiti, tramite i quali possono organizzare lo sviluppo delle loro applicazioni in maniera facilmente scalabile e, allo stesso tempo, programmare in maniera accurata la gestione delle risorse e i costi di distribuzione e sviluppo. Oltre a servizi particolarmente specifici utilizzati in contesti particolari come Backend as a Service e Function as a Service, tra i più celebri servizi per gli sviluppatori possiamo annoverare Infrastructure as a Service, Platform as a Service e Software as a Service, i cui acronimi sono rispettivamente IaaS, PaaS, SaaS. Tutte e tre sono soluzioni complete, con specifiche differenze che vedremo, che consentono a sviluppatori freelance, agenzie e software house di diverse dimensioni di concentrarsi solo sul lavoro di sviluppo, in maniera personalizzata, senza doversi occupare dei dettagli di implementazione e mantenimento dell’infrastruttura sottostante le loro applicazioni.
In questo articolo vi presentiamo questi tre diversi modelli di servizio di cloud computing illustrandovi le differenze.
Intanto poniamoci una domanda: quali modelli di servizi di cloud computing esistono?
Ormai diciamo che ne esistono tantissimi, anche se i più diffusi e sviluppati sono sempre “i soliti”. Nel campo dei servizi di cloud computing nel corso degli anni si sono affermati numerosi modelli per lo sviluppo di applicazioni web e non solo. Oggi si sta tendendo sempre di più verso la convergenza sul modello cosiddetto XaaS, ovvero Everything as a Service, ma tutti i modelli cloud condividono una serie di caratteristiche comuni, tra le quali una delle più importanti è la a-localizzazione, ovvero la possibilità di accesso ed utilizzo indipendente dalla posizione; questa caratteristica, abbinata ovviamente ad appositi strumenti di versioning, consente a team di sviluppo eterogenei composti anche da sviluppatori che vivono in diversi paesi di poter ricorrere a una struttura esistente. Come suggerisce il nome, i servizi sono ospitati nel cloud dal rispettivo provider, che si occuperà in toto di effettuare le routine di manutenzione e aggiornamento togliendo del tutto questa responsabilità al team di sviluppo, che potrà così concentrarsi solo sul coding. Con IaaS, PaaS e SaaS, gli utenti ricevono diversi servizi XaaS, che comportano uno sforzo amministrativo praticamente nullo.
Vorresti riprogettare la tua infrastruttura IT in Cloud?
Scopri cosa possiamo fare per te.
Software as a Service
Probabilmente si tratta del servizio di cloud computing più conosciuto e utilizzato, quello che per primo ha aperto la strada al concetto di Cloud Computing, ovvero il Software as a Service (SaaS). Questo modello offre a utenti e sviluppatori una piattaforma software completa e fruibile tramite internet, assolutamente pronta all’uso e priva di ogni possibile problematica legata ad aggiornamenti, installazione o configurazione.
Il servizio si riferisce solitamente ad applicazioni web fornite centralmente con un’ampia gamma di funzioni e aree di applicazione: tra le più famose abbiamo la posta elettronica, nelle sue varie declinazioni, oppure la conosciute Suite di Applicazioni ad uso ufficio di Google, probabilmente il prodotto che meglio incarna la filosofia SaaS.
In questo modello quindi le applicazioni non vengono eseguite sul proprio computer, e non c’è nulla da installare né da aggiornare, ma esse risiedono e vengono eseguite in cloud, su un server remoto. Ulteriori esempi di applicazioni SaaS possono essere trovati nei sistemi di gestione dei contenuti (CMS) come ad esempio WordPress, nei software per gestione delle relazioni con i clienti (CRM) o negli e-Commerce.
Uno tra i principali vantaggi del modello Saas è che, nonostante le numerose funzioni che tali applicazioni possono esporre, non è richiesta alcuna manutenzione o aggiornamento da parte dell’utente: ci penserà il provider ad effettuare aggiornamenti, patch, offrire miglioramenti delle funzionalità e a gestire completamente le politiche di sicurezza.
Platform as a Service
Platform as a Service (PaaS) si riferisce a un servizio di cloud computing che fornisce agli sviluppatori un ambiente di sviluppo completo e tutti gli strumenti necessari per sviluppare nuove applicazioni con il linguaggio o i framework scelti.
Questo servizio è particolarmente adatto e utile quando è necessario sviluppare applicazioni Web in modo rapido e semplice senza dover impiegare ulteriore tempo e risorse per implementare e mantenere l’infrastruttura sottostante, che spesso comprende un sistema operativo particolare, un ambiente di sviluppo, dei framework, delle librerie, e tanto altro.
Come per il SaaS il principale vantaggio è che gli sviluppatori non devono preoccuparsi di configurare, ottimizzare, mantenere e aggiornare l’infrastruttura necessaria al funzionamento dell’ambiente di sviluppo.
La piattaforma PaaS è perfettamente configurata e aggiornata per un determinato ambiente offre agli sviluppatori l’accesso a componenti applicativi noti e preimpostati. Spesso l’ambiente Paas mette a disposizione anche strumenti avanzati di debug, distribuzione e deploy delle applicazioni, offrendo ai team di sviluppo un ambiente completo, scalabile e sicuro sul quale sviluppare applicazioni.
Sei preoccupato per la sicurezza dei tuoi dati?
Scopri cosa possiamo fare per te.
Infrastructure as a Service
Infrastructure as a Service (IaaS) è il più “piccolo” dei tre modelli di servizi di cloud computing in termini di ambito. Con questo modello, gli utenti ricevono un’intera infrastruttura IT fruibile tramite internet.
I data center necessari a questo scopo sono gestiti dal provider cloud e quindi come di consueto non occorre preoccuparsi di nulla riguardo la sottostante piattaforma hardware. Le risorse computazionali, l’archiviazione e l’amministrazione sono di responsabilità del provider, dal quale gli utenti acquistano la potenza di calcolo richiesta e la portata delle strutture di rete in base alle proprie esigenze individuali. In questo modello in pratica l’utente acquista delle pure e semplici macchine virtuali “vuote” che dovrò provvedere ad impiegare dotandole di tutti i software di cui necessita.
A differenza di SaaS e PaaS, tuttavia, in questo modello il team o il cliente deve preoccuparsi di implementare, aggiornare e mantenere l’infrastruttura o l’ambiente di sviluppo di cui ha bisogno. Si tratta quindi di un modello che aggiunge ai vantaggi del Cloud (indipendenza dalla posizione geografica, scalabilità, ridondanza) la flessibilità di un ambiente infrastrutturale IT gestito on premise, ma senza l’incombenza dell’hardware.
Altri modelli di servizi cloud comuni sono Backend as a Service (BaaS) e Function as a Service (FaaS), che sono più specializzati di SaaS, PaaS e IaaS per ambito e aree di applicazione. Ciò che tutti i servizi di cloud computing hanno in comune è che possono essere scalati velocemente verso l’alto o verso il basso.
Il sistema di pagamento “pay per use” consente di allocare, utilizzare e pagare le risorse solo sul loro effettivo tempo di utilizzo.
Quali sono le principali differenze tra i modelli IaaS, PaaS e SaaS?
Le differenze tra i modelli di servizio cloud visti fin qui si basano essenzialmente sull’ambito applicativo per il quale vengono utilizzati e sulla necessità o meno di un intervento per la gestione dell’infrastruttura sottostante da parte degli utilizzatori, siano essi sviluppatori, responsabili IT o utenti finali.
Nel caso di SaaS, ad esempio, che è lo scenario più semplice, l’amministrazione completa del server, la gestione dei dati e l’archiviazione utilizzata spetta al provider senza alcuna necessità di intervento da parte dell’utente. Di conseguenza, gli utenti con SaaS di solito sono solamente dei puri fruitori (come, ad esempio, il caso delle e-mail o delle applicazioni) e non devono preoccuparsi minimamente dell’amministrazione.
Nel modello IaaS, nonostante l’elevato livello di astrazione dall’infrastruttura hardware sottostante, gli utenti hanno la totale responsabilità della creazione, manutenzione, aggiornamento e amministrazione dell’infrastruttura virtuale che utilizzano e che hanno deciso di mettere in piedi in base alle loro esigenze.
In questo caso, infatti, le risorse hardware e di rete sono fornite dal provider, mentre i sistemi operativi, le applicazioni e i dati utilizzati sono gestiti dall’utente.
Una via di mezzo è costituita dal modello PaaS, in cui l’infrastruttura sottostante a livello di sistemi operativi, risorse di rete, manutenzione e aggiornamenti sono a carico del provider, mentre l’utente ha in carico la gestione degli strumenti di sviluppo che utilizza in maniera attiva e non come semplice fruitore, come nel modello SaaS.