Una delle ultime incarnazioni dell’IT come servizio è quella che può essere definita come Function-as-a-service con l’acronimo FaaS, una tipologia di computing altrimenti nota come serverless o anche event-driven.
Secondo la definizione degli esperti, FaaS è un modello di erogazione dei servizi cloud che permette agli sviluppatori di usare soltanto la quantità di risorse di cui hanno bisogno e quindi pagare il provider in funzione delle funzioni volta a volte utilizzate, quando un evento predefinito ne ha attivato il codice e il relativo servizio.
Come accade con altri modelli di cloud, lo sviluppatore può concentrarsi sulle funzionalità applicative e non doversi più preoccupare di aspetti come il provisioning di server e sistemi operativi.
Nel Faas tutta l’infrastruttura d’erogazione dei servizi è esternalizzata al provider e trasparente a chi sviluppa. I compiti di business sono svolti da un insieme di microservizi che eseguono singole funzioni; in questo modello di cloud non esistono applicazioni monolitiche e le applicazioni sono riscritte come insieme di microservizi, ciascuno indipendente, scalabile con un costo che varia in funzione dell’effettivo utilizzo.
Con il Faas non serve pagare un canone per disporre di server, storage o di un application server in cloud: il conto è proporzionale all’impegno effettivo delle funzioni da parte degli utilizzatori finali. Va da sé che questo modello di cloud risulti ideale, per esempio, in applicazioni aperte al pubblico di cui è difficile stimare a priori il livello di successo e quindi di utilizzo. L’astrazione del Faas può essere vantaggiosa rispetto, per esempio, all’impiego del cloud Iaas dove analoghe funzioni richiederebbero il provisioning di macchine virtuali, sistemi di sicurezza e per il bilanciamento dei carichi di lavoro.
FaaS non è comunque la panacea del mondo cloud. Gli sviluppatori devono valutare con attenzione quando sfruttare questa opzione e quando è meglio guardare altrove in attesa di migliori soluzioni. La tecnologia non è adatta per le applicazioni che comportano un forte impegno di elaborazione numerica, come applicazioni scientifiche e analitiche. Non è inoltre adatta per grandi processi batch. FaaS va molto bene in alcune aree verticali come, per esempio, la traduzione di comandi vocali, l’analisi di immagini grafiche: singole attività che devono essere eseguite in modo veloce e asincrono dal resto delle applicazioni.
Al pari di altre interpretazioni dell’IT in cloud, FaaS ha il vantaggio della scalabilità, ma alcuni provider possono imporre dei limiti superiori nell’uso di singole funzioni. Prima di basare su Faas le applicazioni critiche sotto il profilo della scalabilità è quindi utile verificare se le aspettative sono compatibili con le condizioni di servizio offerte dal provider.