Best Practice

FaaS: Function as a Service

Sviluppare applicazioni dinamiche ottimizzando scalabilità e costi dell’infrastruttura.

#FaaS
#cloud computing
#serverless

Una nuova tipologia di cloud computing

Function as a Service (FaaS) è una tipologia di cloud computing serveless che consente di eseguire un’applicazione attivando una funzione quando si verifica un determinato evento, per cessarla immediatamente al suo termine, in modo da non dover mantenere un’infrastruttura persistente.

Questo permette agli utenti di sviluppare ed eseguire la propria applicazione senza dover creare e configurare l'infrastruttura informatica sottostante, potendosi così concentrare sullo sviluppo, senza dedicare effort alla creazione e preparazione degli ambienti infrastrutturali.

Alla base del FaaS vi sono tipicamente dei container “stateless”; le funzioni vengono eseguite come risposta ad un determinato evento. Il FaaS permette di ottenere ambienti di runtime “effimeri” ma scalabili in maniera molto semplice e in tempi brevi.

Vantaggi in termini di scalabilità, modello di pricing e costi operativi

Function as a Service presenta diversi vantaggi rispetto ai popolari modelli Infrastructure as a Service (IaaS) e Platform as a Service (PaaS) e alle infrastrutture tradizionali (on-premises).

Picture

Scalabilità

La scalabilità è insita all'interno della tecnologia stessa: lo scaling viene gestito in maniera totalmente trasparente dalla piattaforma e, nel caso si utilizzi un Cloud Service Provider, virtualmente infinita. Questo permette ad esempio di rispondere alle variazioni di carico degli utenti (ad esempio campagne di marketing) senza effettuare nessuna operazione.

Modello di pricing

Il modello di pricing dei modelli FaaS è "Pay per use": il principale razionale di calcolo è il numero di chiamate effettuate verso l'applicazione. In questo modo ci si allontana dai vecchi paradigmi come la memoria o i processori da allocare, avvicinandosi a concetti più vicini alla variabilità delle esigenze di business.

Costi operativi

La totale assenza di infrastruttura fa si che il Total Cost of Ownership (TCO) della soluzione si riduca notevolmente. Inoltre la tecnologia FaaS è studiata per essere altamente controllabile tramite strumenti tipici del Software Development LifeCycle (SDLC) come pipeline e Infrastracture as Code (IaC).

Un confronto tra i diversi modelli offerti dai Cloud Service Provider

Nei laboratori Reply abbiamo condotto una sperimentazione per stimare il risparmio tra i diversi servizi di cloud computing dei Cloud Service Provider pubblici.

È stato sviluppato un applicativo utilizzando i framework e un'architettura tipica di un'applicazione Enterprise Intranet ed è quindi stato simulato il traffico di utenti reali in tre diversi setup: IaaS, PaaS e FaaS.

Nel caso IaaS si è scelto di non utilizzare automatismi: in questo caso il sizing viene calcolato "al picco". Nel caso del PaaS si è scelto di ingabbiare il carico degli utenti, rilasciando le risorse quando non utilizzate. Il FaaS non ha richiesto alcuna allocazione di risorse poiché il sizing coincide con la curva di carico. I risultati dello studio Reply hanno mostrato che in condizioni di alta variabilità di traffico il risparmio rispetto allo IaaS è stato del 40% utilizznado il PaaS e del 70% per quanto riguarda il FaaS.

Picture

Lessons learned
dall’esperienza Reply

Reply ha maturato una consolidata esperienza nell’utilizzo dei modelli FaaS, sia in ambienti on-premises con tecnologie OpenFaaS, che in cloud, sfruttando i vari servizi che tutti i maggiori Cloud Service Provider mettono a disposizione. L’esperienza ha mostrato che ogni business ha una sua curva di carico, una sua stagionalità e talvolta anche dei periodi di quiete. Analizzando le applicazioni gestite dai team Reply, sono state raggruppate le applicazioni in 3 macro-categorie:

  • Follow the sun, ovvero applicazioni che servono una clientela worldwide 24x7

  • B2C applications, che mostrano generalmente una curva ad M con una riduzione di traffico durante il weekend

  • Working hours, con alto traffico nelle ore lavorative e traffico sostanzialmente nullo nelle altre.

Essendo il modello di costo "Pay per use", le applicazioni che massimizzano il risultato sono queste ultime. La ragione è da ricercarsi nel fatto che, rispetto ad altri ambienti che richiedono ambienti "up and running" 24x7, col FaaS è possibile azzerare i costi nei momenti di inutilizzo. Grazie alle consolidate partnership con tutti i principali Cloud Service Provider, Reply può supportare le aziende nell’analizzare i possibili vantaggi dell’adozione di un modello FaaS per gli applicativi esistenti e per quelli in fase di progettazione.