Cloud computing
Scalabilità del cloud computing: cos’è e le diverse tipologie
Il concetto di scalabilità rappresenta uno dei cardini della gestione delle risorse nell’ambito di discipline come l’informatica e le telecomunicazioni ed il termine stesso ha goduto di un’impennata di popolarità grazie al cloud computing, in particolare per quanto riguarda i modelli a servizio.
Ma cosa rappresenta realmente la scalabilità quando si parla di cloud computing? Quali sono i vantaggi che comporta? In che modo è possibile ottenerla?
Sono le domande che è lecito porsi soprattutto quando ci si ritrova ad esaminare l’offerta dei servizi forniti dai cloud service provider, per individuare quelli più idonei al soddisfacimento dei propri carichi di lavoro, con un fattore di priorità legato al controllo dei cosiddetti costi del cloud.
Cos’è la scalabilità del cloud computing?
La scalabilità del cloud computing fa riferimento alla capacità di aumentare o diminuire le risorse IT necessarie al soddisfacimento dei carichi di lavoro, che possono variare nel tempo, sia per quanto riguarda la quantità che la varietà.
La scalabilità, insieme all’approccio pay-as-you-go, è da sempre uno dei principali tratti distintivi del cloud computing, e costituisce uno dei principali fattori di adozione da parte delle organizzazioni impegnate nel loro percorso di trasformazione digitale.
Dal punto di vista tecnologico, la scalabilità consiste nella possibilità di variare le risorse IT allocate nell’infrastruttura cloud, che comprendono di base la capacità elaborativa, la memoria e lo storage necessario per eseguire le applicazioni.
Ciò che ha reso dirompente l’impatto del cloud sul mercato IT è stata proprio la straordinaria agilità e rapidità entro cui questo processo avviene, grazie alle tecnologie di virtualizzazione, che consentono di rendere disponibili a livello logico le risorse senza doverle configurare ogni volta a livello hardware.
In altri termini, mediante un semplice pannello di controllo, gli utenti possono accedere ai servizi in cloud e scalare in modalità self-service le risorse di cui necessitano, pagando effettivamente soltanto ciò che utilizzano.
Scalabilità ed elasticità del cloud
Nella letteratura informatica, specie quella anglosassone, la scalabilità è associata o utilizzata, più o meno impropriamente, quale sinonimo di elasticità. Pur avendo molti punti in comune, l’elasticità si riferisce alla capacità del sistema di scalare le risorse per soddisfare con estrema precisione le richieste a livello IT dei carichi di lavoro. L’infrastruttura in cloud viene metaforicamente identificata come un elastico, sempre teso al punto giusto.
In termini più pratici, la differenza tra scalabilità ed elasticità del cloud può essere interpretata nel modo seguente. Nel primo caso, la configurazione delle risorse rimane un processo prevalentemente manuale, in cui l’utente deve sapere di preciso cosa chiedere, mentre nel secondo caso sono previste interfacce in grado di scalare automaticamente le risorse addirittura in tempo reale, come nel caso dei servizi serverless, ampiamente utilizzati nel contesto dello sviluppo software.
A prescindere dalla capacità di riallocare o meno dinamicamente le risorse IT, scalabilità ed elasticità del cloud sono concetti che viaggiano in parallelo, avendo in comune il loro principale obiettivo: soddisfare le esigenze IT dei clienti in modo che possano utilizzare ciò di cui hanno effettivamente bisogno, minimizzando i rischi di sovradimensionamento e sottodimensionamento che si riflettono in costi non necessari o inefficienze a livello operativo.
Scalabilità orizzontale
La scalabilità orizzontale prevede l’aggiunta o la rimozione di altre macchine rispetto all’infrastruttura esistente. Nel caso del cloud si tratta prevalentemente di nuove macchine, fisiche o virtuali, da configurare in funzione delle proprie esigenze, in maniera simile a quanto avverrebbe nel caso dell’acquisto di un nuovo server da collocare nel data center on-premise.
Anche se si tratta di un metodo per certi versi complesso e laborioso, è la scelta che consente al reparto IT di avere il maggior livello di controllo possibile sull’infrastruttura, anche nel caso di servizi le cui risorse sono fisicamente collocate presso provider terzi.
La scalabilità orizzontale è utile e vantaggiosa soprattutto nei contesti di lungo periodo, per implementare progetti destinati ad avere un ciclo di vita importante e soprattutto a dover garantire un contesto di high availability. La ripartizione dei carichi di lavoro su più macchine consente infatti di configurare eseguire un failover in modo da avere sempre il minor downtime possibile nel caso in cui dovessero verificarsi problemi nella normale erogazione dei servizi.
Scalabilità verticale
In ambito cloud, si parla di scalabilità verticale quando si tratta di aggiungere o rimuovere i singoli elementi delle risorse hardware, vale a dire CPU, GPU, RAM, storage e banda di rete, oltre ad una serie di opzioni che fanno parte della specificità della singola offerta presente sul mercato.
Rispetto alla scalabilità orizzontale, la definizione delle singole risorse presenta un approccio almeno in via teorica più semplice rispetto alla configurazione di intere macchine virtuali, in quanto sostanzialmente si traduce in una semplice interfaccia di controllo da remoto che consente agli operatori di gestire le risorse necessarie per l’esecuzione ottimale delle applicazioni, senza doversi preoccupare di tutto il resto.
I principali hyperscaler hanno nel tempo migliorato progressivamente la scalabilità verticale dei loro servizi, che oggi avviene con un’operatività quasi in tempo reale.
Scalabilità diagonale
La scalabilità diagonale contempla l’adozione simultanea della scalabilità orizzontale e della scalabilità verticale nel contesto di un’architettura IT concepita in maniera estremamente agile, per sfruttare in maniera capillare tutti i vantaggi offerti dai servizi presenti sul mercato del cloud.
I vantaggi di un sistema scalabile
L’aumento di risorse IT disponibili si traduce quasi sempre in un aumento dei costi relativo al servizio. La scalabilità di per sé costituisce un’importante qualità da sfruttare, ma a priori non equivale ad una garanzia automatica di successo nell’ambito della cloud adoption. Occorre effettuare analisi e valutazioni mirate alla soluzione del caso specifico.
Le aziende devono essere ben consapevoli delle competenze necessarie in materia di architettura cloud e dell’elevato livello di conoscenza delle applicazioni da distribuire che occorre per implementare in maniera efficiente soluzioni realmente scalabili nel tempo. Qualora queste qualità non fossero disponibili internamente, è possibile avvalersi di consulenze esperte e qualificate, che vanno riconosciute nel possesso delle certificazioni relative alle tecnologie adoperate e alla comprovabile esperienza sul campo.
Se correttamente implementata, la scalabilità del cloud consente alle organizzazioni di ottenere importanti vantaggi.
Rinuncia all’investimento iniziale e controllo dei costi
Grazie alla scalabilità del cloud, le organizzazioni possono evitare il corposo e complesso investimento iniziale in infrastruttura hardware-software, che oltre alla disponibilità di capitale comporta scelte molto articolate in previsione di quantificare effettivamente la quantità e la qualità delle risorse necessarie. Il rischio, concreto e ricorrente, è di sovradimensionare o sottodimensionare la stima.
Un sistema on-premise non può essere scalato con un semplice click del mouse e gli acquisti in eccesso comportano in ogni caso una spesa ingiustificata. Questo genere di complessità in cloud viene del tutto dimenticato, a favore di un’agilità complessiva nei confronti dell’innovazione senza precedenti per il business.
Oltre a questi aspetti, le organizzazioni pagano solo ciò di cui necessitano nel tempo in cui effettivamente lo utilizzano, evitano l’obsolescenza dell’hardware proprietario e possono disporre di soluzioni sempre sicure ed aggiornate grazie ai cloud service provider, a cui fa carico l’intero onere della gestione e manutenzione dell’infrastruttura, da cui traggono un utile commerciale grazie alle economie di scala del cloud pubblico.
Diponibilità rapida di risorse per le applicazioni
La scalabilità in cloud prevede l’allocazione rapida delle risorse, configurabili attraverso semplici e intuitivi pannelli di controllo accessibili da qualsiasi pagina web. Gli amministratori possono monitorare lo stato attivo del servizio e scegliere se aumentare o diminuire le risorse in funzione della richiesta dei loro carichi di lavoro. Una volta effettuate le modifiche, la disponibilità delle risorse allocate viene garantita entro tempi mediamente brevi, almeno per quanto riguarda i cloud provider più autorevoli.
Performance e flessibilità in funzione del business
Le organizzazioni avviano e cessano continuamente nuovi progetti, che richiedono risorse IT utili all’esecuzione delle loro applicazioni. La scalabilità del cloud consente pertanto di risolvere un problema storico nell’IT, relativo ad un’infrastruttura troppo statica per fare fronte alla rapidità con cui il business cresce e decresce nel tempo. Al tempo stesso, anche le PMI possono accedere a servizi che nel contesto on-premise difficilmente si sarebbero potute permettere, a tutto vantaggio dell’innovazione del loro business.
Ridondanza e disaster recovery
La scalabilità si applica anche al contesto multicloud, che rende possibile ridurre i costi per l’infrastruttura destinata al data recovery, in quanto non si rende più necessario costruire e mantenere i data center secondari. È infatti possibile ottenere in tempi rapidi la ridondanza necessaria variando le risorse allocate su più servizi di storage offerti da cloud differenti.
Se vuoi farti guidare da noi, scopri i nostri servizi