Con il termine inglese cloud computing (in italiano nuvola informatica) si indica un paradigma di erogazione di risorse informatiche, come l'archiviazione, l'elaborazione o la trasmissione di dati, caratterizzato dalla disponibilità on demand attraverso Internet a partire da un insieme di risorse preesistenti e configurabili.
Le risorse non vengono pienamente configurate e messe in opera dal fornitore apposta per l'utente, ma gli sono assegnate, rapidamente e convenientemente, grazie a procedure automatizzate, a partire da un insieme di risorse condivise con altri utenti lasciando all'utente parte dell'onere della configurazione. Quando l'utente rilascia la risorsa, essa viene similmente riconfigurata nello stato iniziale e rimessa a disposizione nel pool condiviso delle risorse, con altrettanta velocità ed economia per il fornitore.
La correttezza nell'uso del termine è contestata da molti esperti: se queste tecnologie sono viste da Rob van der Meulen e Christy Pettey di Gartner come una maggiore evoluzione tecnologica offerta dalla rete Internet, da altri, come Richard Stallman, sono invece considerate come una parola ingannevole ideata dal marketing per far cadere gli utenti nel tranello dei software offerti come servizio, che spesso li privano del controllo delle loro attività informatiche.
Introduzione
Utilizzando varie tipologie di unità di elaborazione (CPU), memorie di massa fisse o mobili come RAM, dischi rigidi interni o esterni, Cd/DVD, chiavi USB eccetera, un computer è in grado di elaborare, archiviare, recuperare programmi e dati.
Nel caso di computer collegati in rete locale (LAN) o geografica (WAN) la possibilità di elaborazione/archiviazione/recupero può essere estesa ad altri computer e dispositivi remoti dislocati sulla rete stessa.
Sfruttando la tecnologia del cloud computing gli utenti collegati ad un cloud provider possono svolgere tutte queste mansioni, anche tramite un semplice internet browser.
Possono, ad esempio, utilizzare software remoti non direttamente installati sul proprio computer e salvare dati su memorie di massa on-line predisposte dal provider stesso (sfruttando sia reti via cavo che senza fili).
Funzioni
Nonostante il termine sia piuttosto vago e sembri essere utilizzato in diversi contesti con significati differenti tra loro, si possono distinguere tre tipologie fondamentali di servizi cloud computing:
- SaaS (Software as a Service) - Consiste nell'utilizzo di programmi installati su un server remoto, cioè fuori dal computer fisico o dalla LAN locale, spesso attraverso un server web. Questo acronimo condivide in parte la filosofia di un termine oggi in disuso, ASP (Application service provider).
- DaaS (Data as a Service) - Con questo servizio vengono messi a disposizione via web solamente i dati ai quali gli utenti possono accedere tramite qualsiasi applicazione come se fossero residenti su un disco locale.
- HaaS (Hardware as a Service) - Con questo servizio l'utente invia dati a un computer che vengono elaborati da computer messi a disposizione e restituiti all'utente iniziale.
A questi tre principali servizi possono essere integrati altri:
- PaaS (Platform as a Service) - Invece che uno o più programmi singoli, viene eseguita in remoto una piattaforma software che può essere costituita da diversi servizi, programmi, librerie, etc.
- IaaS (Infrastructure as a Service) - Utilizzo di risorse hardware o virtuali in remoto. La caratteristica dello IaaS è che le risorse vengono istanziate su richiesta o domanda al momento in cui una piattaforma ne ha bisogno.
Il termine cloud computing si differenzia però da grid computing che è invece un paradigma orientato al calcolo distribuito e, in generale, richiede che le applicazioni siano progettate in modo specifico.
Nel caso di funzionalità di memorizzazione in remoto la creazione di una copia di sicurezza (backup) è automatica e l'operatività si trasferisce tutta online mentre i dati sono memorizzati in server farm generalmente localizzate nei Paesi di origine del service provider.
Il cloud computing rende disponibili all'utilizzatore le risorse come se fossero implementate da sistemi (server o periferiche personali) "standard". L'implementazione effettiva delle risorse non è definita in modo dettagliato; anzi l'idea è proprio che l'implementazione sia un insieme eterogeneo e distribuito – the cloud, in inglese nuvola – di risorse le cui caratteristiche non siano note all'utilizzatore.
Casi d'uso
Il sistema del cloud computing prevede tre fattori distinti:
- Fornitore di servizi (cloud provider)– Offre servizi (server virtuali, storage, applicazioni complete) generalmente secondo un modello "pay-per-use";
- Cliente amministratore – Sceglie e configura i servizi offerti dal fornitore, generalmente offrendo un valore aggiunto come ad esempio applicazioni software;
- Cliente finale – Utilizza i servizi opportunamente configurati dal cliente amministratore.
In determinati casi d'uso il cliente amministratore e il cliente finale possono coincidere. Ad esempio un cliente può utilizzare un servizio di storage per effettuare il backup dei propri dati, in questo caso il cliente finale provvede a configurare e utilizzare il servizio.
I principali processi su cui i diversi fornitori cominciano a proporre soluzioni in modalità cloud sono Customer relationship management (CRM), Human Capital Management (HCM), Enterprise resource planning (ERP).