Tutto sulla nuvola: il cloud computing mette a disposizione risorse di calcolo on-demand, accessibili ovunque sia presente una buona connessione Internet, attraverso modelli di pagamento basati sul consumo effettivo.
Nel 2021 il mercato del cloud italiano si è attestato su 3,84 miliardi di euro (+16% dal 2020), con cloud pubblici e ibridi come componente principale, secondo i dati forniti dall’Osservatorio Cloud Transformation della School of Management del Politecnico di Milano.
Ma decidere di spostare dati e operazioni sul cloud non è immediato né scontato e richiede attenzione: vediamo quindi cosa è e come funziona l’architettura che ha trasformato in profondità il modo di fare business.
Cos’è il cloud computing
Il cloud computing, o cloud, significa letteralmente “nuvola informatica”, “computazione sulla nuvola”.
Video – Cosa è il cloud computing – Wolters Kluwer Italia
L’architettura in cloud genera infatti spazi digitali accessibili da Internet e dotati di risorse di calcolo on-demand, da affittare e pagare sulla base dell’utilizzo (pay-as-you-go).
Ogni “nuvola” può essere considerata come un datacenter virtuale, quindi uno spazio che contiene i server, la capacità di archiviazione (storage), i database e diversi strumenti di computazione.
Uno spazio che può essere utilizzato contemporaneamente da più utenti e che resta “separato” dal computer locale: la computazione avviene tutta sulla “nuvola” attraverso Internet, nessun dato viene salvato sul computer o sul dispositivo di connessione ma su server da remoto.
Basta quindi un dispositivo connesso ad Internet per accedere alle risorse informatiche di cui si ha bisogno 24 ore su 24, senza particolari investimenti in infrastrutture o manutenzione, e con la possibilità di dimensionare la richiesta delle risorse a seconda del fabbisogno: questi aspetti rendono il cloud particolarmente interessante per le aziende.
Un datacenter tradizionale in-house richiede infatti un grande supporto IT nella progettazione, nella gestione, nella manutenzione e nei servizi di back-up: anziché dotarsi di hardware e software sempre più potenti, il cloud computing consente di utilizzare le risorse necessarie attraverso semplici interfacce collegate online da desktop, laptop, smartphone.
Storia del cloud computing
Il cloud computing si basa sulla virtualizzazione dei centri di calcolo accessibili attraverso Internet: un percorso che inizia negli anni Sessanta con le prime architetture di rete che permettevano di collegare diversi terminali della stessa azienda al processore principale (mainframe).
L’utilizzo era in “time-sharing”: il tempo di calcolo del mainframe veniva condiviso e suddiviso per le esigenze degli altri terminali. Il concetto di “time sharing”, condivisione a tempo, è attribuito all’informatico John McCarthy, che lo enunciò durante un discorso pubblico in occasione del centenario del MIT, nel 1961.
McCarthy parlò della possibilità di vendere in futuro le risorse computazionali come utilities, servizi di pubblica utilità quanto l’acqua e l’energia, sulla base dei consumi: da questa intuizione si è sviluppato in seguito l’Utility computing, il modello che vede le risorse di calcolo come servizio, una delle basi del cloud attuale.
Video – The Birth of Time-Shared Computing – Robert Fano – From the Vault of MIT (in inglese)
Nel 1969 la nascita di Arpanet, la rete di computer realizzata dal Dipartimento della Difesa USA, mostrò il primo esempio di network geograficamente distribuito. Negli anni ’70 IBM introdusse il sistema RUSH – Remote Users of Shared Hardware, che consentiva a più utenti di usare nello stesso momento le risorse di calcolo dello stesso computer attraverso terminali virtuali.
Negli anni Novanta lo sviluppo sia di Internet che del grid computing, la computazione a griglia distribuita, ha portato alla nascita dei primi servizi cloud ad opera di aziende americane: su tutte, Salesforce.
Nel 2004 è arrivato Gmail, il servizio mail di Google basato su cloud e nel 2008 sono nati gli Amazon Web Services dedicati alle aziende.
Come funziona il cloud computing?
L’architettura del cloud computing può essere suddivisa in front end e back end, ovvero il lato dell’utente del computer e il lato della “nuvola”, collegati tra loro dalla rete Internet.
Il front end, quello che “vede” l’utente, è composto dal computer o dalla rete di computer utilizzati e dall’applicazione/interfaccia che serve ad accedere al cloud. A volte, come nel caso dei programmi di posta elettronica, l’interfaccia è costituita dal semplice browser Internet.
Il back end è invece composto dal sistema cloud vero e proprio: i server, i computer e i sistemi di archiviazione che “reggono” il servizio online.
L’architettura del cloud computing è infatti generalmente centralizzata, dai ruoli client-server ben definiti: i computer che si collegano dal front end sono “client”, cioè richiedono servizi al sistema in back end che ha la funzione di “server” e li fornisce.
La connessione ad Internet consente di accedere al cloud da qualunque dispositivo tramite l’interfaccia ma, a parte particolari configurazioni, il cloud computing non è un’architettura distribuita, orizzontale, bensì verticale.
Il back end può essere composto da più server centrali da remoto, uno per ogni applicazione: i server gestiscono e ordinano le richieste attraverso software middleware, che operano tra sistema operativo e applicazioni e fanno comunicare client e server tra loro.
Il back end di un sistema cloud deve contenere più copie di backup dati in ridondanza, per garantire la business continuity in caso di guasti: un obiettivo che può essere raggiunto aumentando il numero dei dispositivi di archiviazione o attraverso la virtualizzazione del server.
Spesso un server non funziona a pieno regime: la parte inutilizzata viene sfruttata dalla virtualizzazione del server come se all’interno dello stesso server fisico fossero presenti più server con più sistemi operativi, in modo da utilizzare appieno la potenza di calcolo.
Video – Il cloud computing in 6 minuti – SimpliLearn (Inglese)
Tipi di cloud computing
Esistono diversi modelli di cloud computing: cloud privato, pubblico, ibrido; community cloud, HPC cloud, multicloud, big data cloud, distributed cloud.
Cloud privato
Il cloud privato è un’architettura dedicata a un singolo utente o una singola organizzazione, con accesso completamente isolato, alto livello di personalizzazione e di controllo delle risorse.
Il cloud privato può essere memorizzato in una struttura apposita, nel datacenter locale, nel datacenter del fornitore o in un data center esterno, ma il collegamento/accesso avviene tramite rete privata (VPN/LAN) per garantire la massima privacy e sicurezza.
Cloud pubblico
Il cloud pubblico è un’architettura in cui tutto il back end è di proprietà del fornitore, che lo gestisce e se ne assume la responsabilità. Hardware, software, infrastrutture appartengono e sono a carico del fornitore, che le affitta all’utente/organizzazione tramite abbonamenti/licenze sull’utilizzo.
Le risorse sono quindi condivise con altri utenti/organizzazioni e messe a disposizione “on-demand” a seconda del fabbisogno.
Cloud ibrido
Il cloud ibrido è un mix tra il cloud pubblico e quello privato: combina i servizi delle due modalità di cloud a seconda delle esigenze dell’utente.
Le risorse vengono quindi spostate in qualsiasi momento dall’azienda alla “nuvola” e viceversa: ad esempio, il cloud pubblico gestisce gli eventuali sovraccarichi o surplus di calcolo, il locale l’ordinaria amministrazione e particolari storage/operazioni ad alta riservatezza.
Video – Cloud transformation: pronti per il sorpasso? – Osservatori Digital Innovation – Politecnico di Milano
Community cloud
Il community cloud è il cloud a disposizione di più soggetti che hanno attività o business in comune: generalmente è un cloud privato, gestito dalla community stessa, con accesso condiviso.
HPC cloud
L’HPC, High Performance Computing, è l’utilizzo del cluster computing per risolvere compiti che richiedono alte prestazioni computazionali.
Il cluster computing, la computazione a grappolo, è un’architettura distribuita in cui un compito di calcolo viene smistato in parti diverse a ciascun computer della rete, che risolve la propria porzione in parallelo agli altri. Una modalità che consente di avere un gruppo di macchine che lavorano come se fossero una.
Quando tutta o parte di questa attività avvengono su cloud, si parla di HPC cloud.
Multicloud
Il multicloud è l’utilizzo di più “nuvole” da parte della stessa azienda, che noleggia servizi diversi da fornitori diversi.
Da una parte, questo riduce la dipendenza da un solo provider e fornisce più opzioni; dall’altra, l’interoperabilità e la gestione di “parti” della propria attività su piattaforme diverse può risultare molto complicata. Non a caso sono nate ulteriori piattaforme di gestione multicloud con dashboard centralizzate e personalizzate.
Big data cloud
Il Big data cloud è il cloud specializzato nell’archiviazione e nell’analisi dei Big data. I big data richiedono particolari volumi di storage ed elevate prestazioni di calcolo per garantire i processi di rilevazione dei pattern ricorrenti e deduzione delle informazioni utili.
Il big data cloud fornisce le risorse di calcolo on-demand, a seconda delle esigenze.
Distributed cloud
Il cloud distribuito è un cloud pubblico che unisce dispositivi di back end posizionati in punti geografici diversi. Un’architettura in cui le “macchine” sono distribuite nello spazio, più vicine ai luoghi di utilizzo quindi con un minore tempo di latenza delle operazioni, ma il controllo è sempre centralizzato.
Servizi di cloud computing
I più comuni servizi di cloud computing sono SaaS – Software as a Service, IaaS – Infrastructure as a Service, PaaS – Platform as a Service, serverless computing.
Si aggiungono i servizi di Banking as a Service, Data as a Service, Everything as a Service.
SaaS – Software as a Service
SaaS – Software as a Service è un modello di distribuzione del software: il programma viene eseguito su cloud e reso disponibile on-demand attraverso una connessione ad Internet.
Sta diventando il modello prevalente di distribuzione del software: anziché la licenza on-premise, che comprende l’acquisto e l’installazione in locale, per utilizzare un particolare programma basta abbonarsi e accedere al cloud attraverso lo stesso account con qualunque dispositivo da qualsiasi parte del mondo.
IaaS – Infrastructure as a Service
IaaS, Infrastructure as a Service, è l’accesso on-demand tramite connessione Internet all’infrastruttura di calcolo: spazio server, connessioni di rete, larghezza di banda, indirizzi IP. Risorse prevalentemente hardware messe a disposizione sulla “nuvola” da più server e data center in remoto.
Il cloud bilancia il carico di lavoro e il consumo di risorse a seconda delle esigenze: oltre agli abbonamenti, sono presenti anche le soluzioni pay-as-you-go.
PaaS – Platform as a Service
PaaS, Platform as a Service, è un ambiente di sviluppo memorizzato ed eseguito in cloud.
Include server, spazio di archiviazione e reti, distribuzione, test, hosting e manutenzione, sistemi di gestione di database e di business intelligence: gli sviluppatori sono quindi incentivati a utilizzare gli strumenti già accessibili a seconda delle esigenze, e implementare le applicazioni utili.
Serverless computing
Il serverless computing è un modello di cloud usato per creare e gestire applicazioni senza avere il server in house, ma usando quello in remoto fornito dal cloud.
Questo comporta maggiore focus sullo sviluppo dell’app e un’accelerazione del time to market.
BaaS – Banking as a Service
BaaS – Banking as a Service è l’implementazione di servizi bancari e finanziari in cloud.
Sul cloud viene trasferita e gestita la parte amministrativo-contabile dell’azienda, quindi i pagamenti e i conti digitali, i trasferimenti bancari, le carte di credito e prepagate a disposizione con i relativi movimenti.
DaaS – Data as a Service
DaaS – Data as a Service è il servizio più vicino al Big data cloud: l’archiviazione, la gestione e l’analisi dei big data interamente sulla “nuvola” per estrarre informazioni utili nel più breve tempo possibile e fornire supporto alle decisioni.
H3 XaaS – Everything as a Service
XaaS – Everything as a Service si riferisce a tutto quello che può essere fornito secondo il modello di distribuzione in cloud.
Cloud computing esempi
Di seguito, alcuni esempi di applicazioni di Cloud computing.
- Big data analysis: il cloud è un utile supporto per l’elaborazione avanzata di grandi volumi di dati. I software di machine learning e altre forme di IA girano molto spesso in cloud, perché la “nuvola” consente di dimensionare l’utilizzo delle risorse di archiviazione e calcolo a seconda delle esigenze.
Video: The Future of Cloud Big Data Analytics – Deloitte US
- Big data storage: il cloud consente di archiviare file e documenti in un unico spazio digitale. L’accesso al database salvato in remoto può avvenire da qualsiasi dispositivo, garantendo la business continuity anche in caso di guasto delle apparecchiature fisiche. La sicurezza dei dati conservati è un aspetto problematico da non sottovalutare.
- Comunicazione: sono in cloud i principali servizi di posta elettronica e i principali social media. Il cloud consente infatti l’hosting necessario per gestire le comunicazioni in tempo reale, sincronizzare in automatico i file da diversi dispositivi, garantire il backup dei dati, trasmettere in streaming.
- Industry 4.0: il cloud fa parte delle più diffuse architetture di gestione dell’IIOT. Se l’elaborazione di alcuni dati provenienti dai sensori può avvenire ai margini della rete (edge computing), l’analisi avanzata per il supporto alle decisioni avviene in cloud. Sono inoltre disponibili in cloud i software gestionali come ERP, CRM, CMMS, PLM, MES.
- Smart working: il cloud consente di lavorare da casa con le stesse dotazioni dell’ufficio. Basta una buona connessione ad Internet per accedere a programmi e risorse sulla “nuvola”.
Vantaggi del cloud computing
- Accessibilità: il cloud è accessibile ovunque ci sia una buona connessione Internet da qualsiasi dispositivo. L’utilizzo del servizio è quindi slegato dalle capacità delle infrastrutture locali come server o memoria del pc.
- Backup e business continuity: il cloud facilita la ridondanza delle copie di backup, che non sono salvate in locale quindi meno soggette a interruzioni del servizio in caso di disastri naturali o danni in loco.
- Riduzione dei costi: le soluzioni cloud consentono di risparmiare sull’installazione, la gestione, la manutenzione e l’aggiornamento delle infrastrutture, delle piattaforme e dei software, che vengono esternalizzate. I servizi cloud si pagano in base all’utilizzo, senza altri costi aggiuntivi.
- Scalabilità: a differenza di una configurazione IT tradizionale, che richiede pre-pianificazione e acquisto in anticipo, le risorse sulla “nuvola” possono essere dimensionate a seconda delle esigenze e della domanda di utilizzo in tempo reale. Una flessibilità che riguarda anche le diverse soluzioni tra cloud pubblico, privato e ibrido e comporta la possibilità di un’adeguata personalizzazione.