La scalabilità del cloud computing è una delle declinazioni del concetto stesso di scalabilità, propria di quei sistemi in grado di aumentare o di ridurre le proprie prestazioni, le risorse e le funzionalità in base a necessità o a specifiche richieste. Si tratta, in questo caso, di sistemi particolarmente flessibili, personalizzabili e adattabili alle esigenze delle aziende.
Ricordiamo che un’elevata scalabilità si traduce in un’ottimizzazione dell’efficienza complessiva del sistema e in risparmi significativi in termini di costi e di risorse.
In particolare, il concetto di scalabilità viene utilizzato nell’ambito della programmazione software, delle telecomunicazioni e dell’informatica.
Ed è possibile individuarne tre tipologie:
- la scalabilità di carico, in cui il sistema incrementa le proprie funzioni in base alla capacità di calcolo che gli viene assegnata;
- la scalabilità geografica, quando il sistema mantiene le proprie funzioni e caratteristiche indipendentemente dalla distanza che lo separa dagli utilizzatori;
- la scalabilità amministrativa, in cui la gestione del sistema resta inalterata nonostante il numero di organizzazioni che lo utilizzano.
La scalabilità è anche tra le peculiarità del cloud computing, inteso come paradigma di soluzioni e di servizi offerti da un fornitore a un cliente attraverso la rete Internet, a partire da un insieme di risorse disponibili in remoto sotto forma di architettura distribuita.
Anzi, la scalabilità è ritenuta una delle ragioni per cui il cloud ha registrato – e ancora continua a registrare – una crescita dai numeri importanti sul mercato.
La scalabilità nel cloud computing
Riferito ai servizi di cloud computing, il concetto di scalabilità si veste di un significato preciso, che ha a che vedere con la possibilità di aumentare le risorse virtuali a disposizione in ogni momento, per poter gestire in maniera efficiente e puntuale il flusso di traffico.
Grazie alla scalabilità, ad esempio, un’azienda che acquista un servizio in cloud è nelle condizioni di poter scalare le risorse a seconda delle proprie esigenze, sia che si tratti di una crescita del carico di lavoro, sia che, al contrario, si tratti di un calo.
Il cloud computing è scalabile in modo dinamico, consentendo – grazie agli evoluti sistemi adottati dai cloud provider – di aumentare o diminuire le risorse in base alla domanda rappresentata dal carico di lavoro di un servizio in un determinato momento.
Ma il vero valore aggiunto del cloud computing si ha quando, alla scalabilità, viene affiancata l’elasticità, caratteristica che consente di diminuire automaticamente – oppure manualmente – la potenza e le risorse in gioco. In che modo? Attraverso i pannelli di controllo forniti dai cloud provider, che consentono la configurazione del processo di aumento del numero di risorse oppure la loro diminuzione.
Grazie all’elasticità, è così possibile usufruire del “pay-per-use”, ovvero della disponibilità di risorse in cloud attraverso il pagamento del solo utilizzo effettivo. A tale proposito, le migliori offerte dei maggiori cloud provider consentono di pagare per l’utilizzo “al secondo” oppure “a chiamata”, senza alcun anticipo e senza costi di ingresso. Ma vediamo, ora, nello specifico le due tipologie di scalabilità del cloud computing.
Scalabilità orizzontale
Detta anche “horizontal scaling”, questo tipo di scalabilità si riferisce alla modifica dell’infrastruttura per mezzo dell’aggiunta di nuove macchine, consentendo, in questo modo, di alleggerire i nodi esistenti andandone a distribuire il carico su un numero più elevato. Su ognuna di queste macchine aggiunte, che vanno a completare l’infrastruttura a disposizione, è possibile poi effettuare lo scaling delle risorse.
Scalabilità verticale
La “vertical scaling” si ha, invece, quando si vanno ad aggiungere, o a togliere, delle risorse hardware come, ad esempio, l’unità centrale di elaborazione, la memoria RAM, la banda o lo spazio sul disco. La scalabilità verticale viene presa in considerazione da quelle aziende che, in determinati periodi, hanno bisogno di un maggiore – o minore – quantitativo di risorse a disposizione. Scalando le risorse in verticale, è più semplice usufruire del giusto quantitativo di risorse per gestire il traffico Web in un dato periodo. C’è, però, da aggiungere che la scalabilità verticale è un processo molto più rapido rispetto alla scalabilità orizzontale, che richiede sempre competenze specifiche.
Esistono, poi, servizi che forniscono tutto l’occorrente a quei siti Web e a quelle applicazioni che hanno bisogno di quantitativi differenti di risorse a seconda del periodo. È il caso, ad esempio, dei siti che hanno picchi di traffico nel corso di alcune stagioni e che, quindi, necessitano, limitatamente a quell’arco di tempo, di usufruire di maggiore potenza e capacità.
Infine, le soluzioni di Autoscaling e di Load Balancing riguardano, nel primo caso, la possibilità di scalare le risorse sia in verticale che in orizzontale, in modo tale da poter contare su un certo quantitativo di risorse in specifici periodi dell’anno per fronteggiare eventuali picchi di traffico, pagando soltanto le risorse effettivamente utilizzate. Il Load Balancing, invece, ottimizza le risorse utilizzate, ne evita il sovraccarico e massimizza la potenza di calcolo.
I vantaggi di un sistema scalabile e della scalabilità del cloud computing
In generale, i vantaggi di cui è possibile usufruire ricorrendo al cloud computing scalabile sono molteplici. In estrema sintesi, i più importanti vedono al centro il cliente e la possibilità, per lui, di richiedere al fornitore un servizio completamente tarato sulle proprie esigenze oppure di incrementarlo o ridurlo successivamente, sempre in base a proprie esigenze e disponibilità.
Un altro vantaggio è dato dal fatto che le risorse a disposizione possono diminuire automaticamente in caso di malfunzionamento, garantendo comunque un livello minimo di servizio anche nel caso in cui insorgano problemi. Efficienza e risparmio, dunque: il cliente paga solo per il servizio a lui necessario e che meglio risponde alle sue richieste.
Lasciando il generale per entrare nello specifico, la scalabilità verticale ha il vantaggio di mettere più risorse a disposizione in tempi molto brevi e senza ricorrere a interventi specifici sul proprio applicativo.
Una scelta diversa è, invece, la scalabilità orizzontale, che ha il vantaggio dell’aggiornamento dell’infrastruttura con l’affiancamento di nuovi server a scalabilità quasi infinita, non precludendo comunque la possibilità, sui singoli server, di scalabilità verticale anche per brevi periodi.
La scalabilità, sia orizzontale che verticale, è una caratteristica peculiare di tutti i servizi inclusi nell’offerta di cloud computing, di cui i principali – lo ricordiamo – sono:
- Infrastructure as a Service (IasS), vale a dire infrastruttura hardware come server, backup, sistemi di memoria;
- Platform as a Service (PaaS), piattaforma software utilizzata nello sviluppo di programmi e applicazioni;
- Software as a Service (SaaS), programmi installati su un server remoto spesso utilizzati tramite un server Web;
- Data as a Service (DaaS), ovvero la condivisione, via web, di dati ai quali si accede inserendo apposite credenziali in una piattaforma.