Che cos'è l'architettura serverless?

Aggiornato: settembre 2026

L’architettura serverless è un modello di esecuzione cloud in cui il provider esegue il codice su richiesta: nessun server da provisionare o gestire. I server continuano a esistere – semplicemente si smette di affittarli, aggiornarli e scalarli. Si pubblicano funzioni; la piattaforma alloca capacità di calcolo quando arriva un evento e fattura solo ciò che gira davvero.

Punti chiave

DomandaRisposta
Che cos’èCodice eseguito su capacità di calcolo on demand gestita dal provider, senza provisioning di server
Problema che risolvePianificazione della capacità, costo dei server inattivi e gestione dell’infrastruttura
Modello di fatturazionePer richiesta + per GB-secondo di esecuzione; scende a zero quando è tutto fermo
A cosa fare attenzioneCold start, limiti di durata dell’esecuzione, lock-in del provider
Equivalente su Back4appLe funzioni Cloud Code: si pubblica il codice, Back4app lo esegue

Il problema che risolve

Con un deployment tradizionale si affitta capacità prima della domanda: dimensionare l’istanza, configurare l’autoscaling, pagare il tempo di inattività, applicare le patch al sistema operativo. Sbagliare in un senso significa bruciare denaro; nell’altro, perdere richieste proprio al picco di traffico.

In un modello serverless quell’intero ciclo sparisce. Si scrive una funzione, e passare da zero a migliaia di esecuzioni concorrenti è lavoro del provider. Questo è tutto il codice backend necessario per calcolare lato server il voto medio di un film:

// cloud/main.js – una funzione Cloud Code di Back4app
Parse.Cloud.define('averageStars', async (request) => {
  const query = new Parse.Query('Review');
  query.equalTo('movie', request.params.movie);
  const reviews = await query.find();
  const sum = reviews.reduce((acc, r) => acc + r.get('stars'), 0);
  return sum / reviews.length;
});

Niente app Express attorno, niente Dockerfile, niente load balancer. La funzione è l’unità di deployment.

Chiamarla da qualsiasi client

Ogni SDK client invoca la stessa funzione per nome: trasporto, autenticazione e scalabilità li gestisce la piattaforma.

// JavaScript / Node.js — Back4app JS SDK
const params = { movie: 'Inception' };
const rating = await Parse.Cloud.run('averageStars', params);
console.log(`Average rating: ${rating}`);

Come scorre una richiesta serverless

Flusso di una richiesta serverlessUn client chiama un endpoint gestito; la piattaforma esegue la funzione su un'istanza calda oppure ne provisiona una con un cold start, legge il database gestito, restituisce la risposta e scende a zero dopo un periodo di inattività.

sì

no

dopo l'inattività

App client

Endpoint HTTPS gestito

Istanza calda
disponibile?

Esegui la funzione

Cold start:
provisioning del runtime

Database gestito

Risposta al client

Scende a zero
costo: 0 USD

Un client chiama un endpoint gestito; la piattaforma esegue la funzione su un'istanza calda oppure ne provisiona una con un cold start, legge il database gestito, restituisce la risposta e scende a zero dopo un periodo di inattività.

Il ramo da tenere d’occhio è il cold start. Quando non esiste un’istanza calda, la piattaforma deve fare il provisioning di un runtime prima di eseguire il codice: da pochi millisecondi a diversi secondi, a seconda del linguaggio, della dimensione del codice e delle dipendenze. In produzione riguarda solo una piccola frazione delle richieste, perché una funzione invocata con regolarità continua a riutilizzare istanze calde – trascurabile per la maggior parte delle API, ma reale sui percorsi critici per la latenza, ed è il motivo per cui esistono le funzioni edge e le strategie di warm-up.

Serverless vs. container vs. server tradizionali

DimensioneServerlessContainer (Kubernetes)VM tradizionali
Unità di deploymentFunzioneImmagine di containerImmagine di macchina
ScalabilitàAutomatica, per richiesta, fino a zeroAutomatica, ma il cluster va configurato e pagatoManuale o gruppi di autoscaling
Costo a riposo0 USDIl cluster continua a girareL’istanza continua a girare
Cold startSì (da ms a secondi)No (i pod restano caldi)No
Processi di lunga durataLimitati dai timeout di esecuzioneSìSì
Carico operativoNessunoRilevante (cluster, aggiornamenti, capacità)Il più alto (sistema operativo, patch, alta disponibilità)
Ideale perCarichi event-driven, a picchi o imprevedibiliCarico costante, runtime personalizzatiSistemi legacy, controllo totale

FaaS e BaaS: le due metà del serverless

“Serverless” copre due modelli complementari, una distinzione formalizzata dall’articolo canonico di Mike Roberts su martinfowler.com. La separazione ha una data di nascita: il calcolo commerciale attivato da eventi è arrivato nel 2014 e in due anni il serverless è passato da idea di ricerca a scelta predefinita in produzione per il lavoro event-driven – ed è il motivo per cui il vocabolario sembra ancora più nuovo delle idee che copre. FaaS (Functions-as-a-Service) significa che la logica lato server resta da scrivere, ma gira su capacità di calcolo stateless, attivata da eventi e interamente gestita: il modello delle “cloud function”. BaaS (Backend-as-a-Service) va oltre: database, autenticazione, archiviazione di file e API si consumano a loro volta come servizi gestiti, così gran parte del codice backend che altrimenti andrebbe scritto sparisce del tutto.

Quasi tutte le applicazioni reali hanno bisogno di entrambi: funzioni per la logica su misura, servizi gestiti per tutto il resto. Questa combinazione è esattamente ciò che una piattaforma BaaS mette insieme. Per approfondire quella metà del modello, vale la pena leggere la nostra guida completa al Backend as a Service.

Casi d’uso tipici del serverless

  • API e backend mobile. Il caso dominante: traffico guidato dalle richieste che di notte si ferma e al lancio esplode, esattamente la forma che la tariffazione a esecuzione premia.
  • Elaborazione di eventi e dati. Ridimensionare un’immagine al caricamento, validare un record al salvataggio, sincronizzare una modifica verso un sistema di terze parti: reazioni brevi a eventi.
  • Job pianificati. Report notturni, attività di pulizia e sincronizzazioni ricorrenti girano come funzioni attivate da cron, senza un server che aspetta tra un’esecuzione e l’altra.
  • Funzionalità in tempo reale. Chat, notifiche e dashboard dal vivo combinano funzioni serverless con un’infrastruttura in tempo reale gestita, invece che con server WebSocket costruiti a mano.
  • MVP e prototipi. Quando si valida un’idea, non spendere un minuto sull’infrastruttura è tutto il punto: si pubblica una funzione, si ottiene un URL, si spedisce.
  • Agenti IA e webhook. Il codice di raccordo tra LLM, provider di pagamento e API SaaS è per natura event-driven e di breve durata: un caso perfetto per il serverless.

Conviene passare al serverless? Matrice decisionale

Scegliere il serverless quando…Scegliere server sempre attivi quando…
Il traffico è a picchi, imprevedibile o di basso volumeIl traffico è costante e ad alto volume (il sempre attivo costa meno)
Serve lanciare in fretta con un team piccoloCi sono processi di lunga durata che superano i timeout delle funzioni
I mattoni standard (autenticazione, CRUD, archiviazione) coprono quasi tuttoServono runtime personalizzati, GPU o hardware specializzato
Non ci sono risorse DevOps dedicateLe normative impongono il controllo totale dell’infrastruttura
Il costo deve seguire l’uso, partendo da 0 USDUna latenza di coda sotto i 10 ms è irrinunciabile su ogni richiesta

Sul costo aiutano alcuni riferimenti concreti: le piattaforme serverless fatturano per richiesta più il tempo di calcolo consumato (GB-secondi), senza impegno iniziale, e il piano gratuito di Back4app include 25.000 richieste API al mese, abbastanza per far girare un MVP vero a 0 USD prima di qualsiasi decisione di scalabilità.

Limiti e trade-off

  • I cold start. La prima invocazione di una funzione inattiva paga una penalità di provisioning (da meno di 100 ms a oltre un secondo). Mitigazioni: concorrenza calda, bundle più piccoli, runtime edge.
  • I limiti di durata dell’esecuzione. Le funzioni sono fatte per lavori brevi; la codifica video o i batch di un’ora appartengono ai container o ai sistemi di job in background.
  • Debug e osservabilità più difficili. Non c’è un server in cui entrare via SSH. Si dipende da log, metriche e tracing della piattaforma: conviene valutarli prima di impegnarsi.
  • Il vendor lock-in. Le funzioni scritte contro API proprietarie costano care da spostare. Meglio le piattaforme costruite su open source: Cloud Code di Back4app poggia su una base open-source ospitabile in proprio in qualsiasi momento.
  • Il costo a regime. Pagare a esecuzione è imbattibile a volumi bassi e irregolari, ma può superare un prezzo fisso per server sotto carico costante e pesante. Conviene rifare i conti quando il traffico si stabilizza.
  • L’assenza di stato. Le funzioni non conservano memoria tra un’invocazione e l’altra; sessione e stato applicativo devono vivere in un database o in una cache, un vincolo di progettazione se stai portando codice stateful.

L’architettura serverless su Back4app

Back4app è una piattaforma open-source di Backend as a Service (BaaS) che combina database gestito, API REST e GraphQL generate automaticamente, autenticazione, archiviazione di file e funzioni serverless con Cloud Code. Offre entrambe le metà in un’unica piattaforma. La metà FaaS è Cloud Code: funzioni JavaScript come averageStars qui sopra, che si pubblicano dalla dashboard o dalla CLI, più trigger di database e job pianificati, senza gateway, policy IAM o infrastruttura da configurare. La metà BaaS arriva già pronta con ogni app Back4app: database, autenticazione degli utenti, archiviazione di file e API REST e GraphQL generate automaticamente. E poiché Back4app poggia su una base open-source, le funzioni scritte sono portabili: lo stesso stack si può ospitare in proprio più avanti, il che toglie di mezzo l’obiezione del lock-in che pesa sulle piattaforme serverless legate a un singolo provider.

Domande frequenti

Serverless significa che non ci sono server?

No: i server continuano a eseguire il codice. "Serverless" significa che restano invisibili, perché il provider cloud li possiede, li provisiona, li aggiorna e li scala. Si pubblicano funzioni e la piattaforma decide dove e quando eseguirle. Dal punto di vista di chi sviluppa non c'è nulla da dimensionare, riavviare o mantenere.

Il serverless costa meno dei server tradizionali?

Per carichi a picchi o di basso volume di solito sì: si paga per richiesta e per GB-secondo di esecuzione, e la fattura scende a zero quando non gira nulla. Per traffico costante ad alto volume un container sempre attivo o un'istanza riservata costa spesso meno, perché il prezzo per invocazione su milioni di richieste regolari può superare una tariffa fissa per server. Conviene modellare la curva di traffico reale prima di scegliere.

Quali sono gli svantaggi dell'architettura serverless?

I trade-off principali sono i cold start (di norma da meno di 100 ms a oltre 1 secondo alla prima invocazione di una funzione inattiva), i limiti di durata dell'esecuzione, un debug locale e un'osservabilità più difficili e un potenziale vendor lock-in se le funzioni usano API specifiche del provider. Le piattaforme costruite su open source, come Cloud Code di Back4app, attenuano il rischio di lock-in perché lo stesso stack si può ospitare in proprio.

Meglio il serverless o i container?

Meglio il serverless dei container Docker per carichi event-driven, a picchi o imprevedibili, e per team piccoli che non vogliono gestire infrastruttura. Meglio i container per processi di lunga durata, runtime personalizzati o servizi ad alto volume costante, dove la capacità sempre attiva costa meno. Molti sistemi in produzione combinano entrambi: serverless per le API e i gestori di eventi, container per i carichi di fondo regolari.

I cold start sono ancora un problema?

Molto meno di un tempo. In produzione i cold start riguardano solo una piccola frazione delle invocazioni – una funzione invocata con regolarità riutilizza istanze calde per centinaia di migliaia di chiamate – e durano di norma da pochi millisecondi a circa un secondo, a seconda del runtime e della dimensione del codice. Sui percorsi critici per la latenza si possono attenuare con concorrenza calda, dipendenze più leggere o funzioni edge. Per API e backend mobile tipici si notano di rado.

Qual è la differenza tra FaaS e BaaS?

Il FaaS (Functions-as-a-Service) esegue il codice lato server che resta da scrivere: funzioni stateless attivate da eventi, come Cloud Code di Back4app. Il BaaS (Backend-as-a-Service) va oltre: database, autenticazione, archiviazione di file e API si consumano come servizi già pronti, così gran parte del codice backend sparisce del tutto. Sono le due metà complementari del modello serverless, e quasi tutte le applicazioni reali le usano entrambe.

Quando NON conviene usare il serverless?

Meglio evitarlo per job di lunga durata che superano i limiti di esecuzione, per carichi che richiedono hardware specializzato o runtime personalizzati, per sistemi critici per la latenza che non tollerano alcun cold start e per traffico costante ad alto volume, dove i server sempre attivi costano meno. Anche requisiti normativi di controllo totale dell'infrastruttura possono escluderlo.

Quali linguaggi di programmazione possono usare le funzioni serverless?

Dipende dai runtime che la piattaforma mette a disposizione: JavaScript/Node.js è il più supportato in assoluto, e quasi tutte le piattaforme aggiungono opzioni come Python, Go o Java. Su Back4app le funzioni Cloud Code si scrivono in JavaScript su un runtime Node.js gestito, quindi lo stesso linguaggio del frontend web esegue la logica di backend. Qualunque sia la piattaforma, i client non ne risentono: chiamano le funzioni per nome via HTTPS o tramite un SDK.

Termini correlati

Confronta con

Fonti di approfondimento

Pronto a costruire il tuo backend?

Avvia il tuo progetto su Back4app in pochi minuti: database, autenticazione, API e Cloud Code inclusi. Nessuna carta di credito richiesta.

Scritto e revisionato da Back4app Engineering, Back4app Engineering · Pubblicato il 2026-09-30