Il cloud come modello pervasivo nell’ambito dell’IT

Il cloud computing si basa molto (ma non solamente) sulla virtualizzazione, e quest’ultima non è un concetto nuovo nell’informatica; lo si è applicato infatti alla memoria di lavoro per espandere lo spazio indirizzabile dai programmi, nonché ai metodi per la gestione delle librerie di file – ma sempre per facilitare il compito ai programmatori e creare delle astrazioni logiche al posto delle risorse fisiche vere e proprie con cui aver a che fare.

Tuttavia la trovata più geniale della virtualizzazione (anch’essa nient’affatto recente) consiste nel rendere virtuale un sistema, ovvero una “macchina”; come è possibile? Semplificando al massimo, si può dire che occorre caricare sul sistema fisico un sistema operativo speciale detto hypervisor sul quale, a sua volta, vengono caricati uno o più sistemi operativi tradizionali.

Dal punto di vista degli utilizzatori è come se avessero un sistema totalmente dedicato; in realtà accedono semplicemente ad una delle varie istanze di sistema operativo che convivono in altrettante macchine virtuali sopra un unico hypervisor, il quale governa il sistema fisico vero e proprio.

Le architetture di tipo software-defined

Questo ci fa capire come il software non si limiti ad eseguire calcoli e gestire dati, ma consenta anche di manipolare, oltre che di controllare, l’hardware. L’obiettivo è creare per gli utilizzatori un ambiente virtuale flessibile, configurabile e spostabile a piacimento semplicemente dando ordini ad uno speciale strato di software che “ricopre” l’hardware.

I vantaggi? Una enorme comodità e la possibilità di modificare i sistemi logici (quelli utilizzati effettivamente) senza toccare quelli fisici (e perciò l’hardware). Ma nulla si ottiene gratis: lo svantaggio evidente di questo approccio è, come minimo, una riduzione di prestazioni; tuttavia, i benefici sono tanti e tali che vale la pena di utilizzare la virtualizzazione praticamente sempre.

Ad esempio, è possibile bilanciare il carico di lavoro tra sistemi virtuali, così come replicarli ed utilizzarne alcuni come riserva in caso di problemi; in pratica un pool (cluster) di macchine virtuali è molto più agile di un equivalente fisico, sia per la gestione delle applicazioni che del disaster recovery.

Un’architettura software-defined è esattamente ciò che abbiamo appena descritto: un ambiente dove gli utilizzatori hanno a che fare semplicemente con hardware standard non specializzato perché “fa tutto il software”, configurando e ri-configurando l’hardware in maniera rapida e automatica.

Come è nato il cloud?

Come abbiamo appena spiegato, la grande idea della virtualizzazione ha pervaso i diversi elementi del datacenter: sistemi, storage e rete, ma nessuno pensò di descrivere il tutto come “cloud”, ovvero qualcosa di immateriale – bastava il termine “virtuale” (benché, ad onor del vero, anche la parola “cloud” fosse già stata utilizzata in ambito ITC).

A fare questo salto di qualità ci pensarono aziende come Amazon che, per operare nel commercio elettronico, disponeva di immense server farm – ovvero grandi ambienti elaborativi e perciò potenza di calcolo ed aree di storage. A qualcuno venne così in mente di razionalizzare al massimo le risorse ed “affittare” quelle temporaneamente inutilizzate sotto forma di servizi; d’altra parte, il fatto che tali risorse fossero virtualizzate rendeva la cosa fattibile: un sistema virtuale (fatto di software) è facilmente configurabile e gestibile da remoto, dato che non occorre in alcun modo mettere le mani su dell’hardware.

Come mai nessuno ci aveva pensato prima? Perché occorre aspettare fino agli anni duemila perché ci sia una rete capace di collegare tutti (Internet) con una capacità (ampiezza di banda) sufficiente ad avere anche da remoto prestazioni simili a quelle che si hanno con risorse fisiche on-site.

In pratica abbiamo assistito ad un ennesimo capitolo dell’evoluzione dei sistemi: dai mainframe centralizzati siamo passati alle reti locali, alle architetture distribuite e quindi al client-server, poi al al web computing ed alle applicazioni eseguibili sui browser (applet), infine al cloud con tutte le sue peculiari caratteristiche di offerta; parliamo infatti di infrastrutture, piattaforme e software offerti come servizi (rispettivamente IaaS, PaaS e SaaS) – e persino di Haas (Hardware as a Service).

Cloud privato, pubblico e ibrido

Ad un certo punto è nata un’alternativa seria all’hosting “in casa” di applicazioni e servizi: li si poteva “affittare” e pagare a consumo (on demand) sul cloud – cosa ideale per chi voleva espandersi ma non aveva spazio o capitali da investire in IT, o per chi partiva da zero e poteva decidere se creare un datacenter proprio o approvvigionarsi in rete utilizzando solo dei “terminali” per l’utilizzo di tali applicazioni e servizi.

Chi utilizza il cloud, inoltre, paga sotto forma di spese operative (OpEx) e non in conto capitale (CapEx), non si deve occupare di gruppi di continuità, condizionamento e manutenzioni varie o di ambienti ignifughi per custodire i supporti elettronici, ottici o magnetici di back-up; infine dispone di tecnologie sempre aggiornate – sia per quanto riguarda l’hardware che il software.

Rimane il fatto che la maggior parte delle organizzazioni non era in condizioni di partire da zero ed aveva una serie di risorse di tipo legacy da mantenere ed ammortizzare – con tanto di funzioni applicative che ci giravano sopra e che non si potevano migrare né facilmente né rapidamente altrove (per ragioni di prestazioni, di sicurezza o di conformità legale – pensiamo ad esempio alle restrizioni introdotte dalla recente normativa europea che va sotto il nome di GDPR).

A questo punto, la strada più logica è stata quella di adottare non uno ma tre (o forse quattro) modelli: il cloud vero e proprio (quello pubblico), quello privato (che è da qualche parte nel mondo ma del quale si ha l’utilizzo esclusivo come se fosse in casa nostra), quello ibrido (un mix dei primi due) e la sua controparte domestica, in cui il datacenter viene organizzato in modo analogo al cloud attraverso l’utilizzo spinto della virtualizzazione ma soprattutto dell’automazione.

In ogni caso, il vero punto di forza di questo approccio consiste nel fatto che l’informatica viene concepita e fruita come una utility (pago solo quello che uso, nel modo che preferisco e senza preoccuparmi delle infrastrutture ).

In sintesi

Molti pensano che il cloud sia soltanto un modo di delocalizzare sistemi ed applicazioni. Sbagliato: il cloud è un modo nuovo di concepire l’IT, sia dentro che fuori il datacenter – cosa che lo rende più economico, flessibile e facile da gestire.