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

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.

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con le notizie di ImpresaCity.it iscriviti alla nostra Newsletter gratuita.
Se vuoi ricevere le notifiche delle notizie più importanti della giornata iscriviti al canale Telegram di ImpresaCity al link: t.me/impresacity
Pubblicato il: 04/10/2017

Tag:

Speciali

Speciali

Gli ERP nell’era della trasformazione digitale

Speciali

NetApp Data Driven Academy