L'at­ti­vi­tà digitale si sta spostando sempre più sul cloud, non solo nel settore privato, ma so­prat­tut­to in quello aziendale. Molti fornitori stanno lanciando soluzioni di servizi in­te­res­san­ti e pro­met­ten­ti, ma non sempre è facile fornire una de­scri­zio­ne e una dif­fe­ren­zia­zio­ne delle varie offerte. Questo vale, ad esempio, anche per la clas­si­fi­ca­zio­ne della nuo­vis­si­ma co­sid­det­ta ela­bo­ra­zio­ne ser­ver­less, indicata nei circuiti pro­fes­sio­na­li anche come Function-as-a-Service (FaaS). Sebbene il nome potrebbe farlo pensare, non si tratta affatto di strutture cloud senza server. Di seguito ana­liz­ze­re­mo più da vicino questa tec­no­lo­gia.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estre­ma­men­te van­tag­gio­se e potenti core dedicati
  • Massima fles­si­bi­li­tà senza periodo con­trat­tua­le minimo
  • Servizio di as­si­sten­za tecnica 24 ore su 24, 7 giorni su 7

Una spie­ga­zio­ne del concetto ser­ver­less

L'e­la­bo­ra­zio­ne ser­ver­less, o ar­chi­tet­tu­ra ser­ver­less, è un modello cloud che consente agli utenti di creare ed eseguire ap­pli­ca­zio­ni o processi senza entrare in contatto con il server sot­to­stan­te. Con­tra­ria­men­te a quanto sug­ge­ri­sce il nome, anche un ambiente cloud di questo tipo ha un server; tuttavia pre­di­spo­si­zio­ne, sca­la­bi­li­tà e gestione sono di re­spon­sa­bi­li­tà solo del provider. Pertanto l'ap­proc­cio ser­ver­less va oltre il modello Platform-as-a-Service (PaaS), in cui svi­lup­pa­to­ri o clienti non possono evitare di ri­vol­ger­si al o ai server tramite un'API e di ag­giun­ge­re o abilitare risorse au­to­no­ma­men­te.

Poiché queste attività am­mi­ni­stra­ti­ve vengono a mancare nei progetti in un'in­fra­strut­tu­ra di ela­bo­ra­zio­ne ser­ver­less, essa consente di con­cen­trar­si in­te­ra­men­te sullo sviluppo e l'e­se­cu­zio­ne del ri­spet­ti­vo software. Perché ciò sia possibile, tuttavia, oltre al codice di programma effettivo è im­por­tan­te creare funzioni senza stato che con­ten­ga­no istru­zio­ni su come un programma dovrebbe reagire a de­ter­mi­na­ti eventi. Il ri­spet­ti­vo codice di programma, comprese le funzioni de­si­de­ra­te (che, grazie alla mancanza di stato, non hanno di­pen­den­ze in­fra­strut­tu­ra­li), può quindi essere caricato nel­l'am­bien­te cloud in qualsiasi momento ed essere eseguito lì. Visto il ruolo ele­men­ta­re delle funzioni, alcuni provider offrono anche il proprio servizio ser­ver­less con il nome di "Function-as-a-Service (FaaS)".

N.B.

I fornitori di ela­bo­ra­zio­ne ser­ver­less non sono re­spon­sa­bi­li solo della di­spo­ni­bi­li­tà delle risorse server ne­ces­sa­rie, ma anche della garanzia della massima sicurezza possibile in caso di guasti. La fat­tu­ra­zio­ne si basa ge­ne­ral­men­te sul modello pay-per-use, quindi ai clienti sono ad­de­bi­ta­ti solo i servizi effettivi.

Come funziona il ser­ver­less computing?

Es­sen­zia­le per un'ar­chi­tet­tu­ra ser­ver­less è la gestione del­l'hard­ware da parte del provider: per gli utenti, l'unica sfida è integrare il proprio software o la propria logica, comprese le funzioni adeguate, nelle strutture cloud no­leg­gia­te. Il richiamo di queste funzioni funziona...

  • in modo asincrono tramite eventi
  • o in modo sincrono in base al classico modello client-server.

La prima variante ha il vantaggio di impedire un ac­cop­pia­men­to eccessivo delle singole funzioni e di mantenere basso il fab­bi­so­gno di risorse durante il runtime. Una possibile funzione basata sugli eventi potrebbe essere ad esempio quella di creare au­to­ma­ti­ca­men­te una miniatura durante il ca­ri­ca­men­to di un'im­ma­gi­ne. Nella variante classica il client deve sempre inviare una richiesta separata al server per ri­chia­ma­re una funzione cor­ri­spon­den­te per la creazione della miniatura.

A dif­fe­ren­za di un'in­fra­strut­tu­ra Platform-as-a-Service, il provider del­l'e­la­bo­ra­zio­ne ser­ver­less non fornisce a tale scopo un ambiente di lavoro di lunga durata, ma offre pun­tual­men­te e in tempo reale le risorse ne­ces­sa­rie per il tempo di ese­cu­zio­ne di una singola chiamata di funzione. Na­tu­ral­men­te, in back­ground (ma non visibili al­l'u­ten­te), anche nei servizi ser­ver­less sono uti­liz­za­ti server fisici e virtuali per con­sen­ti­re l'e­se­cu­zio­ne delle funzioni.

Ser­ver­less ar­chi­tec­tu­re: una pa­no­ra­mi­ca di vantaggi e svantaggi

Sebbene le in­fra­strut­tu­re cloud classiche con­sen­ta­no già agli utenti di ester­na­liz­za­re l'hard­ware ne­ces­sa­rio, spesso ri­chie­do­no molta am­mi­ni­stra­zio­ne e mi­cro­ge­stio­ne. L'e­la­bo­ra­zio­ne ser­ver­less dovrebbe ridurre al minimo questo impegno.

Rias­su­mia­mo punti forti e deboli del concetto ser­ver­less nella seguente tabella:

Vantaggi Svantaggi
Sca­la­bi­li­tà e gestione delle risorse ne­ces­sa­rie da parte del provider L'accesso alle macchine virtuali, al sistema operativo o agli ambienti di runtime resta vietato
Fornitura rapida delle risorse in tempo reale, anche con carichi di picco im­pre­vi­sti e crescita spro­por­zio­na­ta L'im­ple­men­ta­zio­ne di strutture ser­ver­less è molto im­pe­gna­ti­va
I costi sono calcolati esclu­si­va­men­te per le risorse uti­liz­za­te Elevata di­pen­den­za dal provider (“effetto lock-in”) - quando si cambia provider, ad esempio, la maggior parte delle funzioni basate sugli eventi deve essere riscritta
Elevata tol­le­ran­za ai guasti grazie al­l'in­fra­strut­tu­ra hardware fles­si­bi­le nei data center del provider Processo di mo­ni­to­rag­gio e debug re­la­ti­va­men­te com­pli­ca­to, poiché non sono possibili analisi ap­pro­fon­di­te delle pre­sta­zio­ni e degli errori

Quando si utilizza il principio ser­ver­less?

L'e­la­bo­ra­zio­ne ser­ver­less è pro­get­ta­ta in­nan­zi­tut­to per lo scambio di dati di breve durata di ap­pli­ca­zio­ni web e aziendali nel cloud. Nella pratica, quindi, non si tratta di elaborare intere ap­pli­ca­zio­ni o sequenze di codici estese (so­stan­zial­men­te l'ar­chi­tet­tu­ra ser­ver­less non è affatto indicata per questo), ma piuttosto di elaborare singole funzioni, in qualsiasi numero. Questo rende l'ap­proc­cio in­te­res­san­te per diversi scenari, come mostra il seguente elenco:

  • Proxy API: molte vecchie ap­pli­ca­zio­ni aziendali hanno API complesse e in­gom­bran­ti (in­ter­fac­ce software). Con la ser­ver­less ar­chi­tec­tu­re e il gateway API cor­ri­spon­den­te, è possibile creare un livello di astra­zio­ne al­ter­na­ti­vo per rendere queste ap­pli­ca­zio­ni ac­ces­si­bi­li at­tra­ver­so un semplice API REST e quindi più ac­ces­si­bi­li ad altri sistemi.
  • Ser­ver­less back end: sempre più spesso, il ser­ver­less computing viene uti­liz­za­to anche per costruire e gestire l'intero back end di un'ap­pli­ca­zio­ne sul cloud. Per questo scenario si utilizza anche l'e­spres­sio­ne Backend-as-a-Service (BaaS).
  • Ulteriore ela­bo­ra­zio­ne di dati (non) strut­tu­ra­ti: i Big Data sono diventati parte in­te­gran­te del moderno ambiente aziendale. L'in­fra­strut­tu­ra ser­ver­less si rivela in tal senso un potente alleato quando si tratta di elaborare tali in­for­ma­zio­ni; quindi di trans­co­di­fi­ca­re, spostare, combinare e ma­ni­po­la­re, tra le altre cose, dati strut­tu­ra­ti (JSON, XML, ecc.) e non strut­tu­ra­ti (immagini, audio, ecc.).
  • Ese­cu­zio­ne di attività nei tempi previsti: nella maggior parte dei casi le funzioni possono non solo essere basate su eventi, ma anche eseguite secondo una pia­ni­fi­ca­zio­ne definita. In questo modo, ad esempio, è possibile ordinare au­to­ma­ti­ca­men­te i database o creare backup.
  • Im­ple­men­ta­zio­ne di as­si­sten­ti lin­gui­sti­ci e chat bot: la tec­no­lo­gia ser­ver­less è l'ideale anche per integrare as­si­sten­ti lin­gui­sti­ci digitali e chat bot.
Vai al menu prin­ci­pa­le