Function as a Service (FaaS) rappresenta una categoria di servizi di cloud computing che fornisce una piattaforma che consente ai clienti di sviluppare, eseguire e gestire le funzionalità delle applicazioni senza la complessità della creazione e della manutenzione dell'infrastruttura tipicamente associata allo sviluppo e al lancio di un'app. Questo modello architetturale è comunemente associato al serverless computing, in cui gli sviluppatori possono concentrarsi sulla scrittura del codice della propria applicazione e il fornitore di servizi cloud gestisce l'ambiente di esecuzione.
Tracciare la storia e le origini del Function as a Service (FaaS)
La nascita del Function as a Service (FaaS) è fortemente legata all’evoluzione del cloud computing. La nascita del cloud computing nei primi anni 2000 ha portato alla ribalta Infrastructure as a Service (IaaS) e Platform as a Service (PaaS). Tuttavia, gli sviluppatori dovevano comunque gestire i server in entrambi i modelli, anche se in misura minore con PaaS.
La svolta è arrivata nel 2014, quando Amazon Web Services (AWS) ha introdotto AWS Lambda come prima piattaforma FaaS. Ha eliminato completamente la necessità per gli sviluppatori di preoccuparsi dei server. Lambda ha consentito agli sviluppatori di eseguire il proprio codice in risposta a eventi quali modifiche ai dati in un bucket Amazon S3 o aggiornamenti in una tabella Amazon DynamoDB. Ciò ha segnato un cambiamento rivoluzionario nel modo in cui le applicazioni potevano essere create e distribuite.
Approfondimento del Function as a Service (FaaS)
FaaS è un metodo serverless per eseguire porzioni di codice modulari sull'edge. Invece di distribuire un'intera app o un servizio, gli sviluppatori possono eseguire piccole parti di funzioni che eseguono un'unica attività definita. Queste funzioni sono "senza stato" perché sono progettate per essere di breve durata ed essere eseguite all'interno di un ambiente senza stato. Il fornitore di servizi cloud gestisce automaticamente le risorse necessarie per l'esecuzione e la scalabilità.
Le funzioni vengono attivate da eventi quali richieste HTTP, operazioni di database, code, archiviazione e così via. Il provider esegue la funzione e restituisce il risultato una volta completata con successo. Una caratteristica fondamentale del FaaS è che si paga solo per il tempo di elaborazione effettivo della funzione e non per l’infrastruttura sottostante.
Svelare la struttura interna e il meccanismo di funzionamento di FaaS
In un modello FaaS, la logica dell'applicazione è suddivisa in funzioni separate. Questi sono gestiti da una piattaforma sottostante e sono tipicamente stateless. Dopo aver ricevuto un evento, la piattaforma attiva rapidamente le risorse per eseguire la funzione, elabora l'evento e quindi spegne le risorse al termine dell'elaborazione.
- Attivatore di eventi: un evento come una richiesta HTTP, un caricamento di file o un'operazione sul database attiva la funzione.
- Inizializzazione delle funzioni: il fornitore cloud prepara la funzione per l'esecuzione. Ciò può comportare l'avvio di un contenitore e il caricamento del codice funzione al suo interno.
- Esecuzione: La funzione viene eseguita con i dati dell'evento forniti.
- Risposta: la funzione elabora i dati dell'evento e restituisce un risultato. Nell'ambito di questi trattamenti potrebbe anche interagire con altri servizi o database.
- Fermare: una volta terminata l'esecuzione della funzione, il fornitore di servizi cloud spegnerà le risorse utilizzate per eseguire la funzione.
Caratteristiche principali di Function as a Service (FaaS)
- Evento guidato: le funzioni vengono eseguite in risposta a eventi o trigger.
- Apolide: Le funzioni non conservano le informazioni tra le esecuzioni.
- Scalabile: il fornitore di servizi cloud gestisce automaticamente la scalabilità della funzione.
- Di breve durata: è previsto che le funzioni si avviino rapidamente, vengano eseguite per un breve periodo e quindi si interrompano.
- Paga per utilizzo: il prezzo si basa sul tempo di calcolo effettivo utilizzato dalla funzione.
Diversi tipi di Function as a Service (FaaS)
Sebbene il concetto di base di FaaS rimanga lo stesso, diversi fornitori di servizi cloud offrono prodotti FaaS leggermente diversi. Alcuni dei più popolari includono:
Fornitore | Prodotto FaaS |
---|---|
AWS | Lambda |
GoogleNuvola | Funzioni del cloud |
Microsoft Azure | Funzioni di Azure |
IBM | Funzioni del cloud |
Oracolo | Progetto Fn |
Modi di utilizzare Function as a Service (FaaS), problemi e soluzioni
FaaS è particolarmente utile per le applicazioni che devono rispondere a informazioni in tempo reale o richieste sporadiche. Ad esempio, può essere utilizzato per l'elaborazione di file in tempo reale, la trasformazione dei dati o l'elaborazione del flusso di eventi. Tuttavia, esistono potenziali sfide legate ai limiti di tempo di esecuzione, alla gestione dello stato, ai test e al debug. Le soluzioni includono un'attenta progettazione del codice funzione per rispettare i limiti di tempo di esecuzione e l'utilizzo di servizi cloud aggiuntivi per gestire lo stato.
Confronto con concetti simili
Concetto | Descrizione |
---|---|
FaaS | Gli sviluppatori forniscono il codice funzione. La piattaforma gestisce automaticamente tutta l'infrastruttura. |
IaaS | Gli sviluppatori gestiscono applicazioni, dati, runtime e middleware. Il provider gestisce la virtualizzazione, i server, l'archiviazione e la rete. |
PaaS | Gli sviluppatori gestiscono le applicazioni e i dati. Il provider gestisce runtime, middleware, sistema operativo, virtualizzazione, server, archiviazione e rete. |
Prospettive e tecnologie del futuro legate al FaaS
È probabile che FaaS continui ad evolversi con il più ampio ecosistema serverless. I progressi nell’edge computing potrebbero vedere il FaaS diventare più diffuso ai margini della rete, più vicino alle fonti dei dati. Inoltre, potremmo vedere ambienti serverless più ibridi in cui FaaS viene utilizzato insieme ad altri modelli di calcolo per diverse parti di un'applicazione.
Il ruolo dei server proxy in Function as a Service (FaaS)
I server proxy possono svolgere un ruolo in FaaS fungendo da intermediari per le richieste dei client che cercano risorse da altri server. Possono migliorare le prestazioni, fornire sicurezza e mantenere l'anonimato. Nel contesto FaaS, un server proxy può essere utilizzato per gestire le richieste che attivano funzioni, offrendo funzionalità aggiuntive di controllo, registrazione e modifica.