Function as a Service: soluzioni per uno sviluppo più veloce
Nell’abito del cloud computing sono state sviluppate una serie di soluzioni IT negli ultimi anni che offrono agli utenti diversi vantaggi, soprattutto per quanto riguarda l’accessibilità indipendente da un luogo fisico e l’utilizzo flessibile. Il settore in assoluto più conosciuto è quello del Software as a Service, abbreviato in SaaS, che racchiude tutti quei software utilizzabili tramite la connessione Internet, senza dover però possedere una versione locale.
Function as a Service o FaaS descrive dei pacchetti di applicazioni che vengono sviluppati, gestiti ed eseguiti dagli sviluppatori. Ciò significa che per gestirli non è necessaria alcuna infrastruttura, in quanto messa a disposizione dal fornitore del servizio. Lo sviluppo delle funzionalità avviene isolatamente nei cosiddetti container. L’elaborazione dati o le app per dispositivi mobili sono un esempio comune delle funzioni che adottano il modello FaaS. In questo articolo vi spieghiamo di quali settori si occupa Function as a Service, come gli sviluppatori possono usare questo servizio e vi mostriamo i vantaggi e gli svantaggi di questa soluzione di cloud computing.
- Certificato SSL Wildcard incluso
- Registrazione di dominio sicura
- Indirizzo e-mail professionale da 2 GB
Che cos’è FaaS?
Il Function as a Service corrisponde a un servizio di cloud computing con il quale possono essere sviluppate ed eseguite applicazioni. La sua particolarità è che il server sul quale viene eseguita l’applicazione, così come l’intera infrastruttura del servizio, si trovano fisicamente presso il provider. Questo permette agli sviluppatori di evitare operazioni quali la manutenzione o il regolare aggiornamento e di concentrarsi completamente sulla programmazione del codice dei pacchetti di applicazioni. La parola “Funzione” (Function) in questo caso definisce una componente software solitamente eseguita in pochi secondi. Le applicazioni sono costituite di una serie di funzioni o anche di una sola. Con FaaS è inoltre possibile assemblare componenti di microservizi, consistenti in un grande numero di funzioni.
Anche se molte delle soluzioni FaaS sono rese disponibili su cloud, alcune delle architetture di questo tipo vengono eseguite anche in locale, installate e ospitate in propri data center. Il provider calcola l’utilizzo della soluzione FaaS sulla base delle prestazioni di calcolo necessarie e dello spazio di archiviazione usato.
Come funziona Function as a Service?
Con Function as a Service gli sviluppatori ottengono un metodo per l’implementazione del serverless computing. Per farlo viene trascritta una logica di business all’interno di un cosiddetto container, la gestione avviene attraverso un’apposita piattaforma di proprietà. Una piattaforma di questo tipo viene solitamente resa disponibile in cloud; tuttavia, il modello trova impiego anche in locale o in modalità ibrida.
FaaS adotta un sistema reattivo controllato dagli eventi. Gli eventi possono essere scatenati in diversi modi, ad esempio il clic su un pulsante che richiama la funzione collegata. Non appena la funzione viene attivata, il servizio rimane in attesa fino alla volta successiva. Il funzionamento di FaaS è motivato dal fatto che la reazione viene direttamente avviata ed eseguita. Il caricamento di un file immagine può, ad esempio, provocare una reazione che porta alla conversione automatica del file in un determinato formato.
Per richiamare le esecuzioni della logica Function as a Service viene solitamente messa a disposizione un’infrastruttura che rende superflui tutti processi continuamente eseguiti in background lato server. Questo ha un effetto positivo sulle possibilità di scalare il servizio: il provider cloud assicura la disponibilità delle funzioni richieste e fa sì che le risorse vengano assegnate in modo preciso al secondo. Ne consegue che se le richieste sono poche, l’applicazione viene ridotta. Con FaaS vengono sempre e solo calcolate le risorse effettivamente usate. I tempi di inattività non vengono invece considerati.
Nella pratica sono due le tipologie di applicazioni per le quali il modello FaaS risulta particolarmente adatto: i carichi di lavoro raramente eseguiti e le transazioni molto voluminose traggono particolare beneficio da questo metodo di funzionamento.
Qual è la differenza tra FaaS e SaaS?
La differenza sostanziale tra FaaS e SaaS sta nell’entità delle applicazioni di entrambi i servizi cloud. Mentre FaaS si muove nel panorama del microcosmo e si limita a semplici funzioni, gli utenti dei servizi Software as a Service ottengono applicazioni più consistenti.
L’aspetto condiviso è che per nessuno dei due tipi di servizi deve essere messo a disposizione un server dedicato per poterli utilizzare. Questo permette di annullare lo sforzo di gestione e manutenzione così che le risorse rimaste disponibili possano essere impiegate per altri progetti e sviluppi.
Tra le soluzioni SaaS rientrano, ad esempio, Google Drive o Slack, impiegati quotidianamente da un gran numero di aziende. SaaS prevede solitamente una chiara definizione della gamma di funzioni, riducendo l’influsso degli sviluppatori sulle funzioni aggiuntive. Al contrario, con il modello FaaS sono gli sviluppatori a definire quali sono le funzioni desiderate a seconda delle esigenze.
Quali vantaggi e svantaggi comporta il modello Function as a Service?
I vantaggi dei sistemi FaaS
- Sviluppo veloce: gli sviluppatori non perdono tempo nella configurazione e nella gestione dei server. Tutte le capacità disponibili possono essere utilizzare per scrivere le logiche di utilizzo e quindi sviluppare più velocemente le applicazioni.
- Scalabilità automatica: le soluzioni FaaS sono per loro natura scalabili. Per questo motivo non è necessario decidere preventivamente come impostare al meglio i servizi per quanto riguarda la quantità di dati richiesta o i volumi di utilizzo. Il servizio viene scalato automaticamente dal provider e calcolato al secondo.
- Costi efficienti: con Function as a Service viene calcolato soltanto quello che gli utenti usano. Nessun costo viene sostenuto per le risorse non utilizzate.
- Sforzo di gestione minimo: con i servizi FaaS sia l’hosting di un server che la gestione e la manutenzione dell’infrastruttura server non sono di competenza degli sviluppatori.
- Libertà di programmazione: le soluzioni FaaS sono per lo più disponibili in tutti i linguaggi di programmazione più comuni, così che non è richiesta alcuna conoscenza di programmazione aggiuntiva per la loro implementazione.
Gli svantaggi dei sistemi FaaS
- Possibilità di configurazione limitate: poiché dell’infrastruttura e della relativa gestione se ne occupa il fornitore, gli sviluppatori devono lavorare con i sistemi messi a loro disposizione. Per coloro i quali hanno necessità di definire l’infrastruttura server ma che desiderano risparmiare le risorse per la manutenzione, vale la pena di considerare il Backend as a Service (BaaS).
- Complessità elevata per l’esecuzione dei test: in base al provider, trasferire il codice FaaS in un ambiente di prova locale può risultare un’impresa di non poco conto. Testare un’applicazione rende perciò necessario moltiplicare l’impiego delle risorse.