L’architettura serverless consente agli sviluppatori di creare velocemente applicazioni, perché non c’è bisogno di gestire l’infrastruttura, né di svolgere le attività di provisioning.
Infatti, a svolgere le attività di provisioning, ovvero quel processo per il quale un amministratore di sistema assegna privilegi e risorse sia agli utenti di una rete sia ai fornitori, e a gestire l’infrastruttura, ci pensa la stessa architettura serverless, lasciando così liberi gli sviluppatori di concentrarsi sul loro business e non su questi processi, che sono loro invisibili grazie appunto a questo tipo di architettura.
Ne consegue che l’architettura serverless aiuta i team aziendali a essere più produttivi, perché velocizza l’entrata dei loro prodotti o servizi sul mercato, consentendo loro di concentrarsi sulle innovazioni tecnologiche e di ottimizzare al massimo le risorse a loro disposizione.
I vantaggi dell’architettura serverless
Nessuna gestione dell’infrastruttura
L’architettura serverless è anche definita FaaS – Function as a Service – perché fa parte di quella categoria di servizi di cloud computing che fornisce una piattaforma la quale consente ai clienti di sviluppare, eseguire e gestire le funzionalità delle applicazioni senza doversi preoccupare della manutenzione dell’infrastruttura tipicamente associata allo sviluppo e al lancio di qualsiasi app.
Al contrario, se non si usa l’architettura serverless, il team aziendale è costretto a:
- pagare per l’accesso al server anche quando non lo si usa
- manutenere il server e tutto ciò che è collegato al server
- coordinare gli aggiornamenti di sicurezza del server
- ridurre o aumentare la potenza del server a seconda che il suo uso aumenti o diminuisca
Si capisce come queste attività siano d’impatto a livello di tempo: una risorsa molto preziosa per chi deve costruire e mantenere un’applicazione.
L’architettura serverless consente di dedicare tempo esclusivamente all’attività centrale del proprio business.
Modello Pay-per-use
La fatturazione dei servizi si basa di solito sul modello Pay-per-use, ovvero si paga solo per i servizi effettivamente usati.
In pratica, la struttura serverless offre in tempo reale i servizi necessari per creare una singola funzione, che si pagano per il tempo impiegato a crearla.
Ovviamente, per permettere l’esecuzione delle funzioni, anche l’architettura serverless usa server sia fisici sia virtuali, ma questi sono invisibili agli sviluppatori.
Scalabilità e gestione delle risorse
L’architettura serverless consente alle imprese in crescita rapida di cominciare in piccolo, quindi senza spendere una fortuna per la creazione e lo sviluppo delle prime applicazioni, per poi crescere piano piano senza che i servizi siano interrotti e senza modifiche dei sistemi non pianificate e molto costose.
Alta tolleranza ai guasti
Usando un’architettura serverless non è necessario integrare caratteristiche relative ai guasti, perché sono garantite di default dai servizi che eseguono l’applicazione.
Gli svantaggi dell’architettura serverless
La scelta di adottare soluzioni cloud è vantaggiosa dal punto di vista economico, dati i risparmi conseguenti all’abbandono di infrastrutture autogestite, ma presenta svantaggi riguardo: la sicurezza, l’affidabilità e la qualità dei servizi richiesti dai provider cloud.
Sicurezza e privacy
Le informazioni sono affidate a provider esterni, e queste vengono diffuse e replicate in nodi sparsi per la rete. I cloud pubblici condividono le proprie risorse con un numero indefinito di utenti, mettendo a rischio dati sensibili se vengono scoperte falle nell’infrastruttura da parte di utenti che hanno accesso ai servizi.
Vendor lock-in
È impossibile trasferire i propri servizi in altre tecnologie senza impiegare importanti risorse, come eseguire il completo refactoring del codice implementativo dei servizi.
Ogni vendor utilizza software e hardware differenti, e manca una standardizzazione per la portabilità delle applicazioni e dei dati mantenuti tra i diversi cloud provider.
Per esempio, Google mantiene i propri dati sul framework BigTable, mentre Facebook li mantiene sulla piattaforma Cassandra, e Amazon utilizza Dynamo.
La mancanza di interfacce obbliga l’utente a fidarsi completamente del provider, nonostante questo possa perdere valenza tecnologica nel tempo, o nuove soluzioni più allettanti vengano lanciate sul mercato.
La disponibilità dei servizi cloud
Ci sono imprese che hanno bisogno di una disponibilità̀ 24/7 dei propri servizi e non accettano guasti all’infrastruttura.
I provider non possono evitare di mandare in down le loro infrastrutture, nonostante questo accada per poche ore nel corso dell’intero anno.
Per far fronte alla paura delle organizzazioni nei confronti di possibili guasti, si definiscono clausole di qualità del servizio, chiamate Service Level Agreement (SLA), che offrono tempi e misure garantite dal provider verso i servizi offerti, e che, se violati, possono essere strumento di denuncia e di risarcimento monetario.
Per esempio, i maggiori provider cloud offrono up-time garantito del 99,99% l’anno, che corrisponde a dieci minuti di downtime massimo in ben dodici mesi di servizio eseguito.
Instabilità infrastrutturale
Un ultimo svantaggio dell’architettura serverless è legato all’instabilità infrastrutturale, dovuta all’importante numero di utenti che, ogni giorno, utilizza i servizi cloud, portando a possibili picchi di carico con conseguenti crolli nelle performance.
Altro fattore svantaggioso è la latenza: i data center cloud sono pochi e, spesso, distanti dal luogo in cui viene lanciata la richiesta. La distanza porta ritardi considerevoli, e, in applicazioni real time, inaccettabili.
Sviluppo futuro dell’architettura serverless
Nonostante gli svantaggi evidenti, i vantaggi dell’architettura serverless sono innegabili: consumi e tempi di esecuzione più convincenti, grazie alla loro capacità di allocare autonomamente le risorse in maniera più efficiente ed ottimizzata rispetto al classico approccio a micro-servizi.
Le soluzioni serverless si sono dimostrate vincenti in scenari industriali, soprattutto grazie all’esecuzione del cluster in ambiente edge, che ha permesso la replicazione di istanze secondo politiche di località e frequenza delle richieste, offrendo prestazioni complessivamente migliori.
Nei prossimi anni la standardizzazione del serverless sarà un argomento principe, soprattutto per evitare alle imprese di rimanere legate ad un unico provider cloud.
La crescita del serverless porterà le organizzazioni ad investire sulla messa in sicurezza di questa tecnologia.
Come ogni tecnologia emergente, il serverless sta vivendo una fase di crescita e di importante sviluppo, portando al contempo confusione e indecisione sulla scelta nell’adozione di questo tipo di architettura.
In ogni caso, i prossimi anni vedranno l’arrivo di standardizzazioni e nuove astrazioni, catapultando il serverless a tecnologia dominante in tutti i settori economici.
Comments are closed.