Scalabilità ed elasticità sono due caratteristiche fondamentali del moderno cloud computing. Possiamo farne a meno?
Ogni giorno, intorno a noi, abbiamo esempi di “scalabilità“. La scalabilità è la capacità di un sistema di aumentare le proprie prestazioni se gli vengono fornite nuove risorse.
Per l’esattezza, abbiamo esempi di sistemi non scalabili. Un esempio è la fornitura di acqua nelle nostre case: il dimensionamento delle condutture e dei bacini idrici è calcolato per il momento di massimo utilizzo. Ogni momento nel quale utilizziamo una capacità inferiore al massimo possibile, stiamo sotto utilizzando il sistema. Il sistema ha un costo fisso che, nei momenti di sotto utilizzo, non viene coperto totalmente e si compensa successivamente.
Adesso immaginiamo un sistema di distribuzione dell’acqua che abbia condotte di dimensioni dinamiche. Consentirebbe di portare solamente la quantità di acqua necessaria nelle nostre case. Inoltre, questo sistema dovrebbe avere tanti bacini di piccole dimensioni, che si svuotano e si riempiono sulla base della richiesta effettiva.
Se un sistema di questo tipo esistesse, l’utilizzo dell’acqua sarebbe ottimale e tutto il mondo ne godrebbe enormemente.
La scalabilità nel cloud computing
Il cloud computing è stato pensato sin dall’inizio con l’obiettivo di essere scalabile in modo dinamico.
Grazie ai moderni sistemi, adottati universalmente dai cloud provider, è possibile aumentare o diminuire le risorse in base alla domanda. La domanda è rappresentata dal carico di lavoro di un servizio in un determinato momento. La scalabilità è una caratteristica fondamentale del cloud computing e deve essere garantita al livello più alto possibile.
Si suddivide in scalabilità verticale e scalabilità orizzontale.

La scalabilità verticale, ovvero il cosiddetto “aumento delle prestazioni”, è ottenuta attraverso l’aggiunta di risorse per aumentare la potenza di un server esistente. Avviene attraverso l’aggiunta processori, di memoria RAM o di schede grafiche.
La scalabilità orizzontale, definita come “aumento del numero di elementi o istanze”, è ottenuta attraverso l’aggiunta di altri server.
Il processo di scalabilità dinamica è basato su attivatori o “trigger“. I trigger determinano l’evento che avvia il processo. Ad esempio l’utilizzo del processore oltre l’80% può scatenare l’attivazione di un secondo server. L’utilizzo di memoria oltre il 90%, per un periodo prolungato ben definito, può avviare un processo di aumento dinamico della RAM.
Solamente i cloud provider che hanno pensato la loro offerta cloud con queste caratteristiche possono considerarsi all’interno della “fascia alta” di mercato. Questa fascia sarà l’unica che rimarrà presente sul mercato nel giro dei prossimi 5/7 anni.
Bret McGowen di Google, nel 2018, alla Serverlessconf di San Francisco, ha chiarito un concetto fondamentale: scalabilità ed elasticità, insieme alle funzioni serverless, saranno i temi fondamentali del futuro del cloud (leggete l’articolo “Cloud Computing nel 2020” per capire cosa sono le funzioni serverless).
Elasticità
La scalabilità rappresenta la capacità di aumentare la potenza e il numero di risorse in gioco. Ma questo può essere ottenuto anche attraverso un metodo “classico“. Posso semplicemente acquistare RAM o server a necessità. In entrambi i casi ottengo scalabilità: verticale nel caso della RAM e orizzontale nel casi dei server.
Il vero valore aggiunto del cloud computing è quando aggiungo l’elasticità alla scalabilità. L’elasticità mi consente di diminuire automaticamente o manualmente la potenza e le risorse in gioco.
I cloud provider evoluti forniscono le dashboard, ossia i pannelli di controllo, che ci consentono la configurazione del processo di aumento del numero di risorse (scale-out) oppure la loro diminuzione (scale-down) a fronte di specifici eventi.
Grazie all’elasticità posso raggiungere il “Pay-per-use”, ovvero la disponibilità di risorse in cloud attraverso il pagamento del solo utilizzo effettivo. 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.
Il cloud computing, grazie a scalabilità ed elasticità, sposta drasticamente il CAPEX vero l’OPEX e libera risorse economiche dell’azienda.
Per oggi ci fermiamo qui e nella prossima parte parleremo di “Aggiornabilità“.