saverioriotto.it

Function as a Service(FaaS): introduzione, dettagli e quando utilizzarlo

Modello di cloud computing che consente ai clienti cloud di sviluppare applicazioni e distribuire funzionalità e di essere addebitato solo quando la funzionalità viene eseguita. FaaS viene spesso utilizzato per distribuire microservizi e può anche essere definito elaborazione serverless.

Function as a Service(FaaS): introduzione, dettagli e quando utilizzarlo

Cos’è il FaaS

L'hosting di applicazioni software su Internet di solito significa fornire e gestire server virtuali o fisici, insieme a sistemi operativi e processi dei server. Con FaaS, tutto l'hardware fisico, i sistemi operativi delle macchine virtuali e i software del server Web vengono gestiti automaticamente dal provider cloud. Invece di avere un'applicazione su un server, le aziende possono eseguirla direttamente in cloud.

FaaS (Function-as-a-Service) è un servizio di cloud computing che offre agli utenti la possibilità di eseguire codice come Javascript, Linux, HTML ecc.. in risposta a eventi, senza dover costruire alcuna infrastruttura complessa (ovvero l'infrastruttura associata a creazione e avvio di app a microservizi).

In altre parole per effettuare il deploy di un servizio devi rendere disponibile un server fisico o una Virtual Machine(VM), gestire un sistema operativo, avere una connessione stabile e rendere operativi tutti i sottoservizi (per es. Web Server, Database, ecc…) prima ancora che aver sviluppato il servizio che intendi fornire!

Attraverso un FaaS invece ti focalizzi solo sulle singole funzioni della tua applicazione.

 # Codice Container Runtime Sistema operativo Hardware
Legacy SI SI SI SI SI
Virtual Machine SI SI Si SI NO
Containers SI SI NO NO NO
Faas SI NO NO NO NO


La differenza tra FaaS e Serverless

FaaS non è la stessa cosa, ma è un sottoinsieme di "Serverless e Functions as a Service". L'elaborazione serverless si concentra su una particolare categoria di servizi, ad esempio database, messaggistica, API o storage, in cui la gestione, la configurazione e la fatturazione dei server sono invisibili agli utenti finali. FaaS, tuttavia, è una delle tecnologie di architettura serverless più centrali. Si concentra su paradigmi di elaborazione basati su eventi che coinvolgono interi codici applicativi eseguiti solo in risposta alle richieste.

Come funziona il Function as a Service?

Dalla prospettiva dell'utente, il Function as a Service è un ambiente precostruito per lo sviluppo o l'implementazione di software. Il fornitori di servizi cloud (CSP) possiede e gestisce l'intero stack di tecnologia, tra cui tutto l'hardware, il middleware e il software.

In altri modelli di servizi cloud, l'utente paga, in un periodo di tempo definito, per l'accesso continuo a determinate macchine o container virtuali e per le risorse che consumano.

Nel modello FaaS, i clienti pagano solo per il tempo e le risorse necessarie per produrre una funzione.

In una struttura di prezzo di CSP, ad esempio, la durata di una funzione e l'implementazione delle risorse sono misurate in "secondi per gigabye", arrotondati al millisecondo più vicino.

I vantaggi del Function as as Service(FaaS)

Il FaaS è uno strumento utilissimo e questi sono tutti i benefici che otterrai utilizzandolo:

 - Ti focalizzi sul codice e non sull’infrastruttura: lo abbiamo già accennato, puoi dividere alcune componenti applicative in funzioni implementate tramite FaaS rendendone indipendente lo sviluppo e la scalabilità;
 - Paghi solo ciò che usi: la gestione della domanda è automatizzata, non devi “spegnere” ed “accendere” nulla, una volta sviluppato, il FaaS si attiva in base all’evento che hai definito, svolge le sue attività e va in stand-by e tu pagherai solo per le risorse utilizzate mentre il FaaS svolge le sue attività.
 - Scala automaticamente: non devi impostare trigger, soglie, capacità e qualsiasi altra variabile. Il FaaS opera autonomamente per fornire le massime prestazioni.
 - Alta Affidabilità: il FaaS ti permette di sfruttare la sua struttura nativa per ottenere alta affidabilità a livello mondiale senza alcun costo aggiuntivo a tuo carico.

Svantaggi di FaaS

 - C'è meno trasparenza che coinvolge l'infrastruttura di back-end poiché viene gestita esternamente
 - Il costo può essere difficile da prevedere o incorporare nei budget a causa del modello pay-per-use
 - A causa dell'introduzione abbastanza recente di FaaS, devono ancora essere sviluppate soluzioni a problemi come il monitoraggio delle funzioni e il debug remoto

Quando utilizzarlo?

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. Può essere utilizzato in vari modi, dalle app Web e parlare con API e chatbot online alla personalizzazione dell'interfaccia utente di un sito Web con test A/B e geolocalizzazione e altro ancora. Alcuni dei casi d'uso più popolari per FaaS sono le API per applicazioni Web e mobili, elaborazione multimediale, elaborazione dati e Internet of Things (IoT).




Commenti
* Obbligatorio