Blog

Il paradigma Faas (Serverless computing)

Cos’è il Faas o serverless computing

Il paradigma “Serverless” rappresenta un passo avanti nell’innovazione dei servizi cloud perché riesce a velocizzare e rendere ancora più lean la release di applicazioni laddove sono richieste elevate potenze di elaborazione “on demand” al verificarsi di condizioni definite. Alcuni esempi di servizi serverless o FAAS sono oggi forniti da Amazon AWS Lambda, Google Cloud Foundation, Microsoft Azure Functions, oltre che da svariati progetti open source, tra i più noti, da segnalare Riff. Lo sviluppatore non deve più preoccuparsi del provisioning, dei server o delle configurazioni infrastrutturali, ma solamente di sviluppare funzioni che possano operare in maniera indipendente dalle applicazioni (l’interazione è gestita da API/dev toolkit). Poiché la logica d’esecuzione non dipenderà più dallo stato dei sistemi, diventa possibile eseguire molteplici istanze in parallelo. Ogni servizio serverless si avvierà e si arresterà automaticamente a richiesta. L’esecuzione, isolata dal resto, per essere utile, dev’essere integrata nelle business application esistenti e con altri servizi che leggono e scrivono dati. Gli eventi o i “trigger” costituiranno quindi il punto di collegamento.

 

 

I vantaggi del serverless computing per le business application

Tra i maggiori vantaggi di business associati con il paradigma dei servizi serverless c’è la flessibilità di costo, che viene misurato addirittura in frazione di centesimi, ed è calcolato volta per volta per ogni esecuzione del codice, estremizzando il modello pay-per-use del cloud a vantaggio, in particolare, nella fase di testing e prototyping. Se da una parte gli sviluppatori hanno la possibilità di scrivere il codice di “aggancio” delle funzioni serverless con gli eventi, dall’altra i fornitori di servizi propongono template e opzioni precostruite per le esigenze più comuni, come l’accesso agli storage o per l’interazione con le API più diffuse.

L’approccio basato su eventi o trigger è particolarmente funzionale nell’ambito delle architetture distribuite, quindi a servizi che operano in luoghi diversi e sotto differenti autorità. Se propriamente usato, il paradigma serverless riduce in maniera rilevante i costi sia dello sviluppo sia dell’utilizzo dei servizi in prod. Questo perché aumenta la velocità di sviluppo e contemporaneamente riduce gli oneri connessi con il provisioning delle risorse nelle fasi di testing. Questo tipo di architettura è quindi ideale per espandere le applicazioni esistenti, integrando web service in job concatenati. Altra possibilità riguarda l’ingestion e l’elaborazione di eventi provenienti “dal mondo reale”, come la rilevazione di alert provenienti dai guasti ai macchinari di una linea di produzione. Il modello di calcolo pay-per-use dei costi d’uso associati ai servizi serverless risulta ideale laddove serva gestire le risposte ad eventi di frequenza non prevedibile come le interazioni con clienti o i segnali inviati da dispositivi IoT.

I vantaggi del serverless computing per i dev

Come abbiamo già accennato in precedenza, il paradigma serverless libera gli sviluppatori dalla necessità di gestire l’infrastruttura. L’accesso “on demand” all’elaborazione risolve quindi le necessità di potenza di calcolo per workload molto impegnativi come simulazioni in ambito finanziario, o analisi in ambito big data. Gli sviluppatori che hanno già utilizzato istanze di public cloud per accedere a potenza di elaborazione più velocemente e con minori costi rispetto ai classici servizi “data center” troveranno gli ambienti serverless molto più efficaci e elastici nella scalabilità.

Come sperimentare i nuovi servizi

Senza dubbio, uno dei modi migliori per mettere alla prova e testare il serverless computing è nel public cloud, andando ad analizzare magari tra le offerte Faas dei provider di fiducia. Altro aspetto fondamentale è l’adeguata selezione del progetto o della parta di progetto, più adatto per essere prototipato sotto il paradigma serverless. Potrebbe essere quindi scelta saggia partire da IoT, software che supporta carichi di lavoro di scala variabile o applicazioni decentralizzate che devono reggere un numero imprevedibile di richieste utenti. Il serverless computing può rivelarsi l’opzione più economica per far girare job anche di tipo batch.

Contattaci per una consulenza: