Logo ImpresaCity.it

Perchè tutti parlano di serverless computing

Tutti i cloud provider principali hanno attivato un servizio di serverless computing: ecco cos'è e perché interessa tanto

Autore: f.p.

L'ultima in ordine di tempo è stata Oracle con il progetto open source Fn, lanciato dall'OpenWorld di San Francisco insieme ad altre novità: oggi tutti i principali cloud provider hanno una loro offerta di serverless computing. O, come alcuni preferiscono chiamarla in stile "aaS", di Functions-as-a-Service. Provider come AWS (con AWS Lambda), Google (con le Cloud Functions) o Microsoft (con le Azure Functions) considerano il serverless computing come un elemento chiave nella crescita dello sviluppo in cloud, ma per molte imprese il concetto in sé e le possibili applicazioni non sono proprio evidenti. Anche perché si tratta di un campo realtivamente nuovo in cui le cose cambiano velocemente.

Il serverless computing non è ovviamente davvero senza server. L'espressione nasce perché contrariamente al modello di sviluppo cloud più tradizionale non ci si deve preoccupare di definire prima le caratteristiche delle macchine virtuali o dei container che muoveranno la nostra applicazione. Di questo aspetto si occupa direttamente l'ambiente cloud, a noi sta solo creare il codice che esegue i compiti desiderati.

aws-lambda.jpg
L'unità base dell'approccio serverless è la funzione: un blocco di codice che esegue un compito ben preciso e che si attiva al verificarsi di eventi altrettanto specifici. A quel punto la piattaforma cloud attiva autonomamente le risorse di computing e storage che servono a eseguire la funzione e le varia a seconda delle necessità. Quando la funzione si completa, le risorse allocate sono disattivate e tutto torna allo stato "silente" di prima. Il modello ha due importanti vantaggi: gli sviluppatori devono pensare solo al codice e non all'infrastruttura, la gestione automatizzata è più semplice e garantisce che non ci siano risorse allocate inutilmente.

Questo approccio non sarebbe probabilmente mai nato se per le applicazioni cloud-native non ci si fosse spostati decisamente verso un modello a microservizi. Se si crea un'applicazione assemblando più servizi diversi che hanno compiti ben specifici, realizzare proprio tali servizi attraverso funzioni è un passo logico conseguente.

azure-functions-vs2017.jpg
Ma, proprio come i microservizi, il serverless computing va bene in alcuni casi e meno bene in altri. Innanzitutto è complesso trasformare applicazioni tradizionali in collezioni di funzioni che operino seguendo la medesima logica, quindi il FaaS è intrinsecamente legato al mondo cloud. In secondo luogo i vantaggi delle funzioni si realizzano se queste possono davvero comportarsi come devono, attivandosi e disattivandosi in maniera indipendente fra loro e dalle attivazioni precedenti e successive. Il FaaS è cioè "stateless", non mantiene lo stato degli elementi su cui interviene. Non ha una "memoria" e se bisogna dargliela si devono attivare risorse parallele (database, cache...) che complicano lo sviluppo.

Infine, di norma tutti i servizi FaaS pongono un limite a quanto una funzione può restare attiva, di solito qualche minuto al massimo. E non si possono sviluppare funzioni in un linguaggio qualsiasi, anche se i principali (Java, Python, PHP, C#, JavaScript...) sono quasi sempre supportati.

Per tutte queste caratteristiche le funzioni sono oggi usate soprattutto come elemento di raccordo e integrazione fra altre applicazioni o servizi. E in ambienti che si basano intrinsecamente su una logica a eventi, come ad esempio quelli collegati a Internet of Things o alle applicazioni mobili.
Pubblicato il: 04/10/2017

Tag:

Cosa pensi di questa notizia?

Speciali

speciali

F-Secure: Download PDF

speciali

HPE - Le tecnologie, le soluzioni