Vantaggi del Cloud Computing

da | 26 Mag 2023 | Cloud

Flessibilità e Scalabilità

Parlare di Cloud al giorno d’oggi è diventato comune, molte aziende sono sicuramente desiderose di adottare questa nuova tecnologia, ma spesso si trovano in difficoltà nel valutare questa opportunità. In questo articolo, esamineremo assieme i principali vantaggi derivanti dall’adozione del Cloud, giustificando le ragioni per cui un’azienda dovrebbe utilizzare questa tecnologia per ottimizzare gli investimenti nel digitale.

Ci sono varie caratteristiche del Cloud computing che contribuiscono al beneficio di seguire questo paradigma, oggi inizieremo a parlare di Flessibilità e Scalabilità per poi approfondire gli ulteriori aspetti in articoli che seguiranno nelle prossime settimane.

Flessibilità e Scalabilità sono due delle principali caratteristiche di una soluzione Cloud, e questo permette alle aziende di adattarsi in modo agile alle mutevoli esigenze del mercato digitale. Le risorse utilizzate da un software in cloud possono essere facilmente scalate o ridimensionate in base al carico di lavoro, consentendo alle aziende di ottimizzare i costi operativi evitando sovradimensionamenti o sottodimensionamenti delle risorse IT.

Il modo in cui incidono queste due caratteristiche dipende dalla scelta che viene effettuata rispetto alla Modalità di Utilizzo del Cloud, vediamo quali sono le modalità ad oggi più diffuse e quali sono i gradi di flessibilità e scalabilità che possiamo ottenere partendo dalle fondamenta rappresentate dall’Infrastruttura Cloud fino a raggiungere la modalità più astratta rappresentato dal Serverless.

IAAS (Infrastructure as a Service)

Questa modalità rappresenta il livello più basso del Cloud su cui poggiano tutti i servizi gestiti di livello più alto. Ogni Cloud Provider mette a disposizione la propria Infrastruttura As-a-Service, ossia espongono le componenti di base di una infrastruttura: Macchine Virtuali, Risorse di Archiviazione, Reti e Sistemi Operativi. In base alle capacità richieste per ogni componente si subiranno dei costi in proporzione.

Questa modalità è decisamente la più flessibile, in quanto permette di scegliere e comporre l’infrastruttura in ogni suo dettaglio, per questo partendo da un’applicazione tradizionale On-Prem è la strada più diretta per un porting di tipo Lift-and-Shift, ossia una migrazione che non richiede una nuova fase di Design architetturale ma semplicemente sposta ciò che è in esecuzione Om-Prem su infrastruttura cloud.

La scalabilità in un’approccio IAAS è comunque notevole ma richiede un effort di design e gestione molto impegnativo rispetto agli altri modelli.

PAAS (Platform as a Service)

In questo caso andiamo invece a sfruttare un ecosistema di servizi che dipendono dallo specifico Cloud Provider che permette di usare un’Infrastruttura gestita come nel caso IAAS con l’aggiunta di astrazione totale rispetto al Server che espone questi servizi in modalità del tutto Managed.

Ad esempio mentre nel caso IAAS per un’applicazione Web saremmo costretti ad installare e configurare il Web Server su una o più istanze di Virtual Machine e garantire una configurazione corretta ad esempio di aspetti come Load Balancing (dunque più VM che lavorano in parallelo), la stessa architettura PAAS al contrario metterebbe a disposizione una Web Farm che lavora in base a configurazioni che permettono anche di sfruttare Auto-Scaling e Load Balancing integrato.

Dunque il Load Balancing di un Web Server nel caso PAAS diventa un aspetto completamente trasparente e gestito dal Cloud Provider, potenzialmente dinamico in funzione del carico di lavoro. La scalabilità dell’approccio PAAS è alla pari di IAAS ma la semplicità di gestione e configurazione della soluzione sono il vantaggio principale. Dunque si ottiene la stessa scalabiltà di IAAS ma con meno effort. Per quanto riguarda invece la flessibilità qui andiamo a perdere qualcosa rispetto a IAAS in quanto non abbiamo più il controllo totale delle componenti di infrastruttura.

Serverless

Quest’ultimo modello rappresenta l’astrazione più alta dell’infrastruttura dove il codice eseguito da un’applicazione oppure i dati persistenti richiesti da un processo non risiedono su un Server specifico ma vengono gestiti dinamicamente da istanze di computo in genere allocate solo nel momento in cui è richiesta l’elaborazione. Ci sono dunque varie tipologie di servizi Serverless, FAAS (Function-as-a-Service) è una classe molto diffusa, ma troviamo sui vari Cloud Provider anche Database Serverless, Api Gateway e Container Orchestration.

L’architettura su cui questo modello si innesta perfettamente è l’EDA (Event Driven Architecture) dove è possibile scrivere delle logiche applicative completamente astratte dall’Infrastruttura sottostante che dichiarano semplicemente la gestione di un Evento.

Esempi di eventi che si prestano bene per una architettura di questo tipo sono:

  • Disponibiltà di un nuovo file da processare
  • Disponibilità di un nuovo messaggio in Coda
  • Modifica di un Record di un Database
  • Attivazione ad-hoc tramite API (qui stiamo scavalcando il confine di EDA, ma è cmq uno scenario gestibile tramite Serverless)

La scalabilità è sicuramente la caratteristica principale di questa modalità Cloud in quanto non essendo legati ad alcuna infrastruttura specifica il sistema riesce a scalare dinamicamente in base al work load del sistema. La flessiblità è anche notevole in quanto i servizi serverless offerti coprono i linguaggi di programmazione ad oggi più diffusi.