Nell’abito del cloud computing sono state svi­lup­pa­te una serie di soluzioni IT negli ultimi anni che offrono agli utenti diversi vantaggi, so­prat­tut­to per quanto riguarda l’ac­ces­si­bi­li­tà in­di­pen­den­te da un luogo fisico e l’utilizzo fles­si­bi­le. Il settore in assoluto più co­no­sciu­to è quello del Software as a Service, ab­bre­via­to in SaaS, che racchiude tutti quei software uti­liz­za­bi­li tramite la con­nes­sio­ne Internet, senza dover però possedere una versione locale.

Function as a Service o FaaS descrive dei pacchetti di ap­pli­ca­zio­ni che vengono svi­lup­pa­ti, gestiti ed eseguiti dagli svi­lup­pa­to­ri. Ciò significa che per gestirli non è ne­ces­sa­ria alcuna in­fra­strut­tu­ra, in quanto messa a di­spo­si­zio­ne dal fornitore del servizio. Lo sviluppo delle fun­zio­na­li­tà avviene iso­la­ta­men­te nei co­sid­det­ti container. L’ela­bo­ra­zio­ne dati o le app per di­spo­si­ti­vi mobili sono un esempio comune delle funzioni che adottano il modello FaaS. In questo articolo vi spie­ghia­mo di quali settori si occupa Function as a Service, come gli svi­lup­pa­to­ri possono usare questo servizio e vi mostriamo i vantaggi e gli svantaggi di questa soluzione di cloud computing.

Registra il tuo dominio
  • Domain Connect gratuito per una con­fi­gu­ra­zio­ne facile del DNS
  • Cer­ti­fi­ca­to SSL Wildcard gratuito
  • Pro­te­zio­ne privacy inclusa

Che cos’è FaaS?

Il Function as a Service cor­ri­spon­de a un servizio di cloud computing con il quale possono essere svi­lup­pa­te ed eseguite ap­pli­ca­zio­ni. La sua par­ti­co­la­ri­tà è che il server sul quale viene eseguita l’ap­pli­ca­zio­ne, così come l’intera in­fra­strut­tu­ra del servizio, si trovano fi­si­ca­men­te presso il provider. Questo permette agli svi­lup­pa­to­ri di evitare ope­ra­zio­ni quali la ma­nu­ten­zio­ne o il regolare ag­gior­na­men­to e di con­cen­trar­si com­ple­ta­men­te sulla pro­gram­ma­zio­ne del codice dei pacchetti di ap­pli­ca­zio­ni. La parola “Funzione” (Function) in questo caso definisce una com­po­nen­te software so­li­ta­men­te eseguita in pochi secondi. Le ap­pli­ca­zio­ni sono co­sti­tui­te di una serie di funzioni o anche di una sola. Con FaaS è inoltre possibile as­sem­bla­re com­po­nen­ti di mi­cro­ser­vi­zi, con­si­sten­ti in un grande numero di funzioni.

Anche se molte delle soluzioni FaaS sono rese di­spo­ni­bi­li su cloud, alcune delle ar­chi­tet­tu­re di questo tipo vengono eseguite anche in locale, in­stal­la­te e ospitate in propri data center. Il provider calcola l’utilizzo della soluzione FaaS sulla base delle pre­sta­zio­ni di calcolo ne­ces­sa­rie e dello spazio di ar­chi­via­zio­ne usato.

Come funziona Function as a Service?

Con Function as a Service gli svi­lup­pa­to­ri ottengono un metodo per l’im­ple­men­ta­zio­ne del ser­ver­less computing. Per farlo viene tra­scrit­ta una logica di business all’interno di un co­sid­det­to container, la gestione avviene at­tra­ver­so un’apposita piat­ta­for­ma di proprietà. Una piat­ta­for­ma di questo tipo viene so­li­ta­men­te resa di­spo­ni­bi­le in cloud; tuttavia, il modello trova impiego anche in locale o in modalità ibrida.

FaaS adotta un sistema reattivo con­trol­la­to 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 suc­ces­si­va. Il fun­zio­na­men­to di FaaS è motivato dal fatto che la reazione viene di­ret­ta­men­te avviata ed eseguita. Il ca­ri­ca­men­to di un file immagine può, ad esempio, provocare una reazione che porta alla con­ver­sio­ne au­to­ma­ti­ca del file in un de­ter­mi­na­to formato.

Per ri­chia­ma­re le ese­cu­zio­ni della logica Function as a Service viene so­li­ta­men­te messa a di­spo­si­zio­ne un’in­fra­strut­tu­ra che rende superflui tutti processi con­ti­nua­men­te eseguiti in back­ground lato server. Questo ha un effetto positivo sulle pos­si­bi­li­tà di scalare il servizio: il provider cloud assicura la di­spo­ni­bi­li­tà 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’ap­pli­ca­zio­ne viene ridotta. Con FaaS vengono sempre e solo calcolate le risorse ef­fet­ti­va­men­te usate. I tempi di inat­ti­vi­tà non vengono invece con­si­de­ra­ti.

Nella pratica sono due le tipologie di ap­pli­ca­zio­ni per le quali il modello FaaS risulta par­ti­co­lar­men­te adatto: i carichi di lavoro raramente eseguiti e le tran­sa­zio­ni molto vo­lu­mi­no­se traggono par­ti­co­la­re beneficio da questo metodo di fun­zio­na­men­to.

Qual è la dif­fe­ren­za tra FaaS e SaaS?

La dif­fe­ren­za so­stan­zia­le tra FaaS e SaaS sta nell’entità delle ap­pli­ca­zio­ni di entrambi i servizi cloud. Mentre FaaS si muove nel panorama del mi­cro­co­smo e si limita a semplici funzioni, gli utenti dei servizi Software as a Service ottengono ap­pli­ca­zio­ni più con­si­sten­ti.

L’aspetto condiviso è che per nessuno dei due tipi di servizi deve essere messo a di­spo­si­zio­ne un server dedicato per poterli uti­liz­za­re. Questo permette di annullare lo sforzo di gestione e ma­nu­ten­zio­ne così che le risorse rimaste di­spo­ni­bi­li possano essere impiegate per altri progetti e sviluppi.

Tra le soluzioni SaaS rientrano, ad esempio, Google Drive o Slack, impiegati quo­ti­dia­na­men­te da un gran numero di aziende. SaaS prevede so­li­ta­men­te una chiara de­fi­ni­zio­ne della gamma di funzioni, riducendo l’influsso degli svi­lup­pa­to­ri sulle funzioni ag­giun­ti­ve. Al contrario, con il modello FaaS sono gli svi­lup­pa­to­ri a definire quali sono le funzioni de­si­de­ra­te a seconda delle esigenze.

Quali vantaggi e svantaggi comporta il modello Function as a Service?

I vantaggi dei sistemi FaaS

  • Sviluppo veloce: gli svi­lup­pa­to­ri non perdono tempo nella con­fi­gu­ra­zio­ne e nella gestione dei server. Tutte le capacità di­spo­ni­bi­li possono essere uti­liz­za­re per scrivere le logiche di utilizzo e quindi svi­lup­pa­re più ve­lo­ce­men­te le ap­pli­ca­zio­ni.
  • Sca­la­bi­li­tà au­to­ma­ti­ca: le soluzioni FaaS sono per loro natura scalabili. Per questo motivo non è ne­ces­sa­rio decidere pre­ven­ti­va­men­te come impostare al meglio i servizi per quanto riguarda la quantità di dati richiesta o i volumi di utilizzo. Il servizio viene scalato au­to­ma­ti­ca­men­te dal provider e calcolato al secondo.
  • Costi ef­fi­cien­ti: con Function as a Service viene calcolato soltanto quello che gli utenti usano. Nessun costo viene sostenuto per le risorse non uti­liz­za­te.
  • Sforzo di gestione minimo: con i servizi FaaS sia l’hosting di un server che la gestione e la ma­nu­ten­zio­ne dell’in­fra­strut­tu­ra server non sono di com­pe­ten­za degli svi­lup­pa­to­ri.
  • Libertà di pro­gram­ma­zio­ne: le soluzioni FaaS sono per lo più di­spo­ni­bi­li in tutti i linguaggi di pro­gram­ma­zio­ne più comuni, così che non è richiesta alcuna co­no­scen­za di pro­gram­ma­zio­ne ag­giun­ti­va per la loro im­ple­men­ta­zio­ne.

Gli svantaggi dei sistemi FaaS

  • Pos­si­bi­li­tà di con­fi­gu­ra­zio­ne limitate: poiché dell’in­fra­strut­tu­ra e della relativa gestione se ne occupa il fornitore, gli svi­lup­pa­to­ri devono lavorare con i sistemi messi a loro di­spo­si­zio­ne. Per coloro i quali hanno necessità di definire l’in­fra­strut­tu­ra server ma che de­si­de­ra­no ri­spar­mia­re le risorse per la ma­nu­ten­zio­ne, vale la pena di con­si­de­ra­re il Backend as a Service (BaaS).
  • Com­ples­si­tà elevata per l’ese­cu­zio­ne dei test: in base al provider, tra­sfe­ri­re il codice FaaS in un ambiente di prova locale può risultare un’impresa di non poco conto. Testare un’ap­pli­ca­zio­ne rende perciò ne­ces­sa­rio mol­ti­pli­ca­re l’impiego delle risorse.
Vai al menu prin­ci­pa­le