Serverless computing: cosa si nasconde dietro al moderno modello cloud

L'attività digitale si sta spostando sempre più sul cloud, non solo nel settore privato, ma soprattutto in quello aziendale. Molti fornitori stanno lanciando soluzioni di servizi interessanti e promettenti, ma non sempre è facile fornire una descrizione e una differenziazione delle varie offerte. Questo vale, ad esempio, anche per la classificazione della nuovissima cosiddetta elaborazione serverless, indicata nei circuiti professionali anche come Function-as-a-Service (FaaS). Sebbene il nome potrebbe farlo pensare, non si tratta affatto di strutture cloud senza server. Di seguito analizzeremo più da vicino questa tecnologia.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estremamente vantaggiose e potenti core dedicati
  • Massima flessibilità senza periodo contrattuale minimo
  • Servizio di assistenza tecnica 24 ore su 24, 7 giorni su 7

Una spiegazione del concetto serverless

L'elaborazione serverless, o architettura serverless, è un modello cloud che consente agli utenti di creare ed eseguire applicazioni o processi senza entrare in contatto con il server sottostante. Contrariamente a quanto suggerisce il nome, anche un ambiente cloud di questo tipo ha un server; tuttavia predisposizione, scalabilità e gestione sono di responsabilità solo del provider. Pertanto l'approccio serverless va oltre il modello Platform-as-a-Service (PaaS), in cui sviluppatori o clienti non possono evitare di rivolgersi al o ai server tramite un'API e di aggiungere o abilitare risorse autonomamente.

Poiché queste attività amministrative vengono a mancare nei progetti in un'infrastruttura di elaborazione serverless, essa consente di concentrarsi interamente sullo sviluppo e l'esecuzione del rispettivo software. Perché ciò sia possibile, tuttavia, oltre al codice di programma effettivo è importante creare funzioni senza stato che contengano istruzioni su come un programma dovrebbe reagire a determinati eventi. Il rispettivo codice di programma, comprese le funzioni desiderate (che, grazie alla mancanza di stato, non hanno dipendenze infrastrutturali), può quindi essere caricato nell'ambiente cloud in qualsiasi momento ed essere eseguito lì. Visto il ruolo elementare delle funzioni, alcuni provider offrono anche il proprio servizio serverless con il nome di "Function-as-a-Service (FaaS)".

N.B.

I fornitori di elaborazione serverless non sono responsabili solo della disponibilità delle risorse server necessarie, ma anche della garanzia della massima sicurezza possibile in caso di guasti. La fatturazione si basa generalmente sul modello pay-per-use, quindi ai clienti sono addebitati solo i servizi effettivi.

Come funziona il serverless computing?

Essenziale per un'architettura serverless è la gestione dell'hardware 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 noleggiate. 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 accoppiamento eccessivo delle singole funzioni e di mantenere basso il fabbisogno di risorse durante il runtime. Una possibile funzione basata sugli eventi potrebbe essere ad esempio quella di creare automaticamente una miniatura durante il caricamento di un'immagine. Nella variante classica il client deve sempre inviare una richiesta separata al server per richiamare una funzione corrispondente per la creazione della miniatura.

A differenza di un'infrastruttura Platform-as-a-Service, il provider dell'elaborazione serverless non fornisce a tale scopo un ambiente di lavoro di lunga durata, ma offre puntualmente e in tempo reale le risorse necessarie per il tempo di esecuzione di una singola chiamata di funzione. Naturalmente, in background (ma non visibili all'utente), anche nei servizi serverless sono utilizzati server fisici e virtuali per consentire l'esecuzione delle funzioni.

Serverless architecture: una panoramica di vantaggi e svantaggi

Sebbene le infrastrutture cloud classiche consentano già agli utenti di esternalizzare l'hardware necessario, spesso richiedono molta amministrazione e microgestione. L'elaborazione serverless dovrebbe ridurre al minimo questo impegno.

Riassumiamo punti forti e deboli del concetto serverless nella seguente tabella:

Vantaggi Svantaggi
Scalabilità e gestione delle risorse necessarie 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 imprevisti e crescita sproporzionata L'implementazione di strutture serverless è molto impegnativa
I costi sono calcolati esclusivamente per le risorse utilizzate Elevata dipendenza dal provider (“effetto lock-in”) - quando si cambia provider, ad esempio, la maggior parte delle funzioni basate sugli eventi deve essere riscritta
Elevata tolleranza ai guasti grazie all'infrastruttura hardware flessibile nei data center del provider Processo di monitoraggio e debug relativamente complicato, poiché non sono possibili analisi approfondite delle prestazioni e degli errori

Quando si utilizza il principio serverless?

L'elaborazione serverless è progettata innanzitutto per lo scambio di dati di breve durata di applicazioni web e aziendali nel cloud. Nella pratica, quindi, non si tratta di elaborare intere applicazioni o sequenze di codici estese (sostanzialmente l'architettura serverless non è affatto indicata per questo), ma piuttosto di elaborare singole funzioni, in qualsiasi numero. Questo rende l'approccio interessante per diversi scenari, come mostra il seguente elenco:

  • Proxy API: molte vecchie applicazioni aziendali hanno API complesse e ingombranti (interfacce software). Con la serverless architecture e il gateway API corrispondente, è possibile creare un livello di astrazione alternativo per rendere queste applicazioni accessibili attraverso un semplice API REST e quindi più accessibili ad altri sistemi.
  • Serverless back end: sempre più spesso, il serverless computing viene utilizzato anche per costruire e gestire l'intero back end di un'applicazione sul cloud. Per questo scenario si utilizza anche l'espressione Backend-as-a-Service (BaaS).
  • Ulteriore elaborazione di dati (non) strutturati: i Big Data sono diventati parte integrante del moderno ambiente aziendale. L'infrastruttura serverless si rivela in tal senso un potente alleato quando si tratta di elaborare tali informazioni; quindi di transcodificare, spostare, combinare e manipolare, tra le altre cose, dati strutturati (JSON, XML, ecc.) e non strutturati (immagini, audio, ecc.).
  • Esecuzione di attività nei tempi previsti: nella maggior parte dei casi le funzioni possono non solo essere basate su eventi, ma anche eseguite secondo una pianificazione definita. In questo modo, ad esempio, è possibile ordinare automaticamente i database o creare backup.
  • Implementazione di assistenti linguistici e chat bot: la tecnologia serverless è l'ideale anche per integrare assistenti linguistici digitali e chat bot.
Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top