Il serverless computing è un modello di esecuzione del cloud computing in cui il cloud provider gestisce dinamicamente l’allocazione delle risorse della macchina. Ciò è in contrasto con un ambiente tradizionale virtualizzato o containerizzato, in cui l’utente finale è responsabile del provisioning e della gestione delle proprie risorse hardware del server. Come nel caso dei container, l’idea alla base del serverless computing può portare a una riduzione dei costi di sviluppo e di gestione.
Le sfide del serverless computing
Il serverless computing è un approccio basato sul cloud per la creazione e l’esecuzione di applicazioni e servizi che non necessitano di server dedicati o macchine virtuali.
L’idea alla base del serverless computing è che non ci si debba preoccupare dell’infrastruttura o dell’hardware sottostante su cui gira l’applicazione. I server sono gestiti dal provider del cloud, quindi l’unica cosa da fare è scrivere codice.
Poiché non sono necessari server fisici, i costi sono in genere inferiori, ma ci sono anche alcune limitazioni. Ad esempio, il ridimensionamento non è automatico, quindi se la vostra applicazione diventa popolare, dovrete aumentare manualmente la capacità del server in base alle necessità.
Vantaggi del serverless computing
L‘informatica serverless offre diversi vantaggi rispetto alle architetture cloud tradizionali:
- Migliori prestazioni: Le architetture serverless sono intrinsecamente orientate agli eventi, il che significa che possono rispondere rapidamente alle richieste degli utenti con una latenza minima. Questo è particolarmente importante per le app mobili, perché gli utenti si aspettano che rispondano immediatamente dopo aver eseguito un’azione, altrimenti si sentiranno frustrati e abbandoneranno l’app. Le architetture serverless sono inoltre più performanti di quelle tradizionali perché possono gestire picchi di traffico senza alcuno sforzo da parte dell’utente (a patto che il provider abbia una capacità sufficiente).
- Nessuna gestione dell’infrastruttura: Molte organizzazioni hanno difficoltà ad assumere ingegneri qualificati in grado di gestire ambienti infrastrutturali complessi come Amazon Web Services (AWS) o Microsoft Azure, senza sacrificare la capacità di gestione dell’infrastruttura.
Gli svantaggi del serverless computing
Gli svantaggi del serverless computing sono piuttosto limitati rispetto agli svantaggi ma per completezza tra essi possiamo ricordare:
- Costi elevati per l’esecuzione del codice: il costo dell’utilizzo di serverless varia a seconda del numero di richieste effettuate.
- Mancanza di controllo sulle risorse: non è possibile controllare la quantità di memoria o di CPU utilizzata dalla funzione.
In conclusione
I critici notano che il serverless computing è ancora più costoso di ordini di grandezza rispetto alle macchine virtuali tradizionali, anche se lo sviluppatore non deve preoccuparsi di scalare e pianificare la capacità. Tuttavia, si stanno già delineando tendenze in cui il serverless sta scendendo di prezzo e le macchine virtuali stanno aumentando di costo a causa della limitazione delle risorse. Questi cambiamenti di prezzo renderanno sicuramente più facile per gli utenti aziendali la scelta tra virtualizzazione tradizionale e serverless computing.