search Il media che reinventa l'impresa

Serverless computing, fino alla fine della logica del Cloud

Serverless computing, fino alla fine della logica del Cloud

Da Laurent Hercé

Il 13 novembre 2024

Il serverless computing è un principio che si è affacciato di recente sulla scena IT. È una sorta di ricerca dell'assoluto da parte dei CIO, e forse ancor più dei CFO. Cerca di rispondere alla domanda più primitiva del Cloud: possiamo fare a meno dei server?

Quando il Cloud Computing è nato, si trattava di ridurre i costi di investimento nelle infrastrutture IT. E, per estensione, di liberarsi gradualmente di tutti i vincoli imposti da queste infrastrutture.

Diamo un'occhiata più da vicino al serverless: come si definisce? Quali sono i vantaggi più tangibili e dimostrabili e, soprattutto, quali sono gli svantaggi e i rischi? Come si vedrà dalle risposte che forniamo di seguito, non c'è nulla di magico in serverless. Esiste però un mix efficace di tecnologie e modelli di business per rispondere il più possibile alle mutevoli esigenze delle aziende.

Serverless: la definizione di serverless computing

Che cos'è il serverless?

Il termine "serverless" si riferisce all'esecuzione del codice di un'applicazione senza la necessità di un server. Non c'è un'infrastruttura locale o Cloud dedicata specificamente a una determinata organizzazione o applicazione.

In altre parole, in un' architettura serverless, non solo l'esecuzione del codice, ma anche la manutenzione dei server è gestita dal cloud provider.

L'avvento del FaaS, Function as a Service (funzione come servizio)

Una precisazione è d'obbligo: dietro questo nome accattivante ci sono, nonostante le apparenze... i server.

Perché la tecnologia non è ancora arrivata alla fase in cui l'informatica diventerà totalmente virtuale, impalpabile, libera da ogni vincolo fisico. Esistono, ovviamente, risorse e server su cui il codice verrà eseguito.

Questo approccio è abbastanza simile a quello dei microservizi. La differenza è che l' architettura serverless è naturalmente legata a un Cloud Service Provider (CSP). Mentre i microservizi si basano su contenitori che possono essere distribuiti su diversi host.

Spesso si usa il termine FaaS, o Function As A Service. L'idea è quella di eseguire una funzione su richiesta, ogni volta che è necessaria, richiedendola a un provider cloud remoto:

  1. Lo sviluppatore deve semplicemente fornire il suo codice;
  2. il provider restituirà il risultato ogni volta che viene richiesto.

Quindi, prima di tutto, stiamo cercando di ridurre i costi dell'infrastruttura e di essere altamente adattabili.

Vantaggi e limiti di serverless

Vantaggi finanziari... ma non solo

Il modello di fatturazione è il più delle volte un modello "pay-as-you-go": l'azienda paga la memoria, lo storage e la potenza di calcolo utilizzata durante l'esecuzione, in base al suo utilizzo, e quindi in base al tempo di server impiegato:

  • serverless permette di ridurre i costi di un servizio che viene utilizzato poco;
  • in ogni caso, la fatturazione è una sorta di culmine del concetto di Cloud Computing: è un riflesso rigoroso dell'utilizzo del server remoto;
  • se una funzione o un codice non viene eseguito, il costo può essere pari a zero.

Un altro vantaggio è la velocità di sviluppo. Per passare dal progetto alla produzione, non è più necessario preoccuparsi dell'infrastruttura: la potenza di calcolo sarà inevitabilmente disponibile, come e quando serve.

Anche la flessibilità è un indubbio vantaggio. Se non volete perdere tempo a dimensionare o testare le risorse hardware, trasferite il carico al CSP. Il CSP sarà sempre in grado di fornirvi la potenza necessaria, quando ne avrete bisogno: questo fa parte del contratto.

Senza server, ma non senza vincoli

Nonostante le apparenze, questa architettura impone alcune regole.

Una di queste è il numero ridotto di fornitori. I 3 maggiori sono :

  • AWS (Amazon Web Service), e in particolare AWS Lambda, che è il player storico,
  • Microsoft Azure Functions,
  • e Google Functions.

Il metodo di fatturazione implica la necessità di progettare codice che non consumi molto tempo di calcolo:

  • in ogni caso, il tempo di esecuzione assegnato alla funzione è generalmente limitato;
  • non può essere superato, pena un sovraccarico di costi.

👉 Ad esempio, AWS, che ha lanciato questo concetto nel 2014, fornisce le seguenti cifre:

  • il tempo di esecuzione mediano per una funzione sui suoi server è di 800 ms,
  • solo un quarto supera i 3 secondi
  • e il 12% supera i 10 secondi.

In generale, la codifica è vincolata dai linguaggi (o dal linguaggio) supportati dal fornitore di servizi cloud. Anche la fatturazione si basa sulla memoria richiesta per l'esecuzione del codice.

Quindi, sebbene l'architettura serverless sia altamente flessibile e possa far fronte a grandi aumenti del carico di lavoro, deve essere tenuta sotto controllo in termini di costi. Può persino essere più costosa di un'architettura tradizionale on-premise o cloud.

Serverless significa anche un approccio specifico alla sicurezza

A causa della sua natura molto specifica, il paradigma serverless si distingue per una serie di aspetti in materia di sicurezza:

  • i cloud provider gestiscono il sistema operativo, la sicurezza del runtime e le patch. Questa è una garanzia, data la scala degli attuali provider;
  • la natura effimera e stateless del serverless computing rende la vita più difficile agli attaccanti. Il fatto che le funzioni serverless vadano e vengano, senza memoria, riduce il rischio di attacchi a lungo termine;
  • le dimensioni ridotte dei blocchi di codice ne facilitano l'analisi da parte degli strumenti di sicurezza CSP.

D'altro canto, questa architettura crea anche delle vulnerabilità. Ogni funzione diventa un potenziale punto di attacco, rendendo più difficile il monitoraggio dei server da parte dei provider. È inoltre più complicato, sia per il CSP che per il codificatore, osservare più processi e più punti di ingresso/uscita.

Le applicazioni tradizionali hanno un perimetro più chiaro, con l'esterno e l'interno chiaramente distinti. È possibile installare funzioni di sicurezza tradizionali come WAF, firewall e IDS.

Infine, va notato che le applicazioni cloud native possono utilizzare numerosi moduli e librerie con codice proveniente da varie fonti di terze parti. I potenziali aggressori potrebbero quindi cercare di includere codice dannoso nei progetti comuni.

Serverless, un'architettura da adottare con urgenza?

Come spesso accade con le tecnologie e i concetti emergenti, dobbiamo fare un passo indietro prima di decidere se adottarli o rifiutarli. Ha senso solo in un determinato contesto.

Al di là del semplice aspetto tecnico, il suo utilizzo può avere un impatto anche sulle risorse umane dell'organizzazione. Richiede di affidarsi a un solido team di codificatori, che potrebbe essere necessario rafforzare.

Allo stesso tempo, può portare a una riduzione delle risorse dedicate all'infrastruttura e alla sua gestione.


Quindi, in realtà, anche se sembra pensata per permettervi di fare scelte una tantum, potenziando alcuni progetti, può trasformare profondamente il vostro Dipartimento IT e i servizi ad esso collegati.

Articolo tradotto dal francese