FaaS (Function as a Service) computing si aggiunge alla lunga lista di acronimi su base as-a-Service. Ma, al contrario dei più noti, capire cosa è il FaaS computing e a cosa serva esattamente non è così immediato. Anche perché si tratta di un modello che si rivolge agli sviluppatori dei team IT e ai partner di sviluppo delle aziende.

Così, un modello FaaS a prima vista potrebbe non provocare un impatto diretto sul business aziendale. Ma non è così, sebbene possa essere difficile per il management aziendale comprenderne i vantaggi immediati, a lungo andare l’impatto c’è, eccome.

Vediamo, dunque, di approfondire il concetto di FaaS computing, di capirne l’impatto sul business, apprezzandone i vantaggi e riportando alcuni esempi di applicazione.

Cosa è il FaaS computing (Function as a Service)

Per FaaS (Function as a Service) si intende un modello di cloud computing in cui l’elemento distintivo è l’evento. Eventi, gestiti da applicazioni, che vengono eseguiti in container “stateless” ovvero in cui qualsiasi dato applicativo è archiviato all’esterno del container stesso.

I container applicativi sono, in un certo senso, l’evoluzione delle Virtual Machine (VM). Si tratta di ambienti di sviluppo in cui si propone una nuova architettura per l’impacchettamento e la distribuzione del codice attraverso moduli indipendenti. Alla base del paradigma DevOps per lo sviluppo delle applicazioni, i container migliorano le applicazioni in termini di modularità e scalabilità. Questo approccio comporta la velocizzazione dello sviluppo applicativo grazie alla condivisione pubblica dei container, tipicamente residenti su cloud, e quindi al loro riutilizzo. Altri vantaggi riguardano la riduzione del time-to-market, l’incremento della qualità della applicazione, quindi dei rischi di sicurezza, e ne favoriscono la scalabilità.

Nel FaaS una funzione è un’attività applicativa che si esegue in logica di business. Le applicazioni su container sono un insieme di funzioni.

Generalmente i container sono stateless. In questo modo tutelano e riducono i dati circolanti su cloud proteggendoli. I dati rimangono ben custoditi nelle unità di storage, mentre i container usufruiscono di copie per il tempo necessario alla specifico evento da risolvere.

Un modello FaaS (Function as a Service) permette agli sviluppatori di creare, eseguire e gestire i pacchetti applicativi come se fossero funzioni, senza preoccuparsi della loro architettura. Per capire, la nozione matematica di funzione può tornare utile. Ciò che succede è l’elaborazione di un dato, o di insiemi di dati, che viene richiamato dal suo repository e la successiva manifestazione del risultato dell’elaborazione, il risultato della funzione. Una funzione che agisce indipendentemente dall’ambiente, l’infrastruttura, in cui opera.

FaaS è, dunque, una modalità di esecuzione dell’elaborazione – ancora una volta indipendente dal luogo e dall’hardware – con cui gli sviluppatori architettano la logica da eseguire su container gestiti da una piattaforma cloud. In verità, la modalità FaaS si sta rapidamente diffondendo su ogni tipo di ambiente IT, nei cloud ibridi come nell’on premise convertito alla logica del cloud privato.

Quali vantaggi comporta

Chiarito il modello FaaS, illustriamone i vantaggi immediati. In primo luogo, gli sviluppatori smettono di preoccuparsi dei problemi legati all’infrastruttura IT (gestione, provisioning, allocazione risorse). Queste attività sono a carico di specifici applicativi di gestione automatizzata di ambienti e container perché… questo è il cloud.

Occuparsi dello sviluppo senza pensare al resto è un vantaggio enorme. Un vantaggio che si traduce, come detto, in un time-to-market più rapido, in un’ottimizzazione dei processi, in una maggiore focalizzazione sul business. E, non ultimo, in un risparmio di costi e risorse.

Insomma, il FaaS è una modalità moderna di sviluppo e rilascio delle applicazioni utile in tutti i contesti di business che dipendono fortemente dalla qualità, dalla velocità di aggiornamento, di esecuzione e dalla scalabilità.

Di seguito sintetizziamo i principali vantaggi dell’approccio FaaS:

  • Maggiore produttività degli sviluppatori e tempi di sviluppo più rapidi
  • Nessuna responsabilità nella gestione dei server
  • Scalabilità facilitata
  • Addebito solo delle risorse consumate
  • Realizzazione delle funzioni con qualsiasi linguaggio di programmazione

Come funziona il FaaS computing

FaaS permette di eseguire le applicazioni in risposta a eventi, senza preoccuparsi della gestione dei server. L’infrastruttura FaaS viene generalmente utilizzata on demand mediante un modello di esecuzione basato su eventi.

Così il modello si sfrutta quando necessario, senza richiedere l’esecuzione costante dei processi server in background. Un po’ come accade nel modello PaaS (Platform-as-a-Service), in cui l’infrastruttura è parte del processo.

LEGGI ANCHE: COSA E’ IL PAAS E A COSA SERVE

Nel FaaS, un provider cloud rende la funzione disponibile e gestisce l’allocazione delle risorse. Essendo basate sugli eventi e non sulle risorse, le funzioni risultano facilmente aggiornabili, migliorabili e scalabili.

Esistono vincoli architettonici per poter sfruttare i vantaggi del modello FaaS. Uno su tutti è il limite di tempo per l’esecuzione di una determinata funzione. Le funzioni, insomma, devono poter essere avviate ed eseguite rapidamente. Parliamo di millisecondi in cui si elaborano le singole richieste. In presenza di richieste simultanee, il sistema crea automaticamente il numero di copie della funzione necessarie per soddisfare la domanda. Appena diminuisce la domanda, l’applicazione elimina automaticamente le copie non necessarie. La scalabilità dinamica del modello FaaS è anche conveniente, poiché i provider addebitano solo il costo delle risorse utilizzate e non dei tempi morti.

Nell’esecuzione on premise, questa dinamicità aumenta la densità della piattaforma, consentendo l’esecuzione di più carichi di lavoro e l’ottimizzazione delle risorse.
Il modello FaaS, insomma, è perfetto per transazioni con volumi elevati, carichi di lavoro con frequenza discontinua come la generazione di report, l’elaborazione di immagini o le attività programmate.

FaaS Vs Serverless: le differenze

Sebbene FaaS consenta di realizzare un’applicazione totalmente serverless oppure un po’ serverless e un po’ costituita da componenti di microservizi convenzionali ci sono delle differenze tra i due approcci, vediamole.

Sebbene FaaS e serverless sembrino intimamente correlati, ci sono delle differenze. Ma oggi il significato di serverless si è ampliato. Includendo un insieme più vasto di modelli architetturali che utilizzano servizi comuni in aggiunta alla logica FaaS. Il modello serverless può essere utilizzato dai microservizi e dalle app tradizionali, a condizione che questi siano containerizzati e rispettino i requisiti di scalabilità dinamica e gestione dello stato.

Il termine “serverless” è utilizzato anche per indicare servizi gestiti come, per esempio, database e sistemi di messaggistica, gestiti, appunto, da un provider cloud o da un’azienda terza. La combinazione di servizi FaaS e servizi di back-end comuni serverless, come database, messaggistica e autenticazione, connessi da un’architettura basata su eventi, permette agli sviluppatori “serverless” di ottenere i maggiori vantaggi.

Alcuni esempi di utilizzo

Esempi di utilizzo comuni del modello FaaS sono l’elaborazione dei dati, i servizi IoT, le app mobile o web. Il modello è applicato da servizi cloud native particolarmente diffusi e specifici degli ambienti cloud dei maggiori hyperscaler.

Così, abbiamo AWS Lambda, Google Cloud Functions, IBM Cloud Functions, Microsoft Azure Functions e OpenFaas. Da segnalare che gli ultimi due sono erogati in modalità open source.

Vogliamo un esempio concreto? Amazon Alexa. Le skill di Alexa si implementano via AWS Lambda. Le skill per loro natura richiedono di essere attive velocemente e non devono sottostare ad alcuna condizione in particolare.

Amazon ha, inoltre, bisogno di scalare le skill in base alla richiesta e di renderle disponibili secondo frequenze non costanti. L’intero processo di Estrazione, Trasformazione e Caricamento (ETL) è totalmente gestito secondo il modello FaaS. Recuperare i dati, elaborarli e archiviare i risultati in un database (o in qualsiasi altro archivio) è la missione ideale per una funzione, attivabile da remoto o pianificata.

 

 

Cosa è il FaaS computing e a cosa serve ultima modifica: 2021-12-01T10:21:28+01:00 da Valerio Mariani

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui