La premessa del serverless è sempre stata seducente: scrivere una funzione, non gestire un server, pagare per l'utilizzo effettivo. Il problema è che l’attuazione non è mai stata così pulita come il discorso. I contenitori devono essere inizializzati. I processi vengono riutilizzati tra le richieste di client diversi. E quanto più globale deve essere il tuo sistema, tanto più costosa diventa la latenza di una funzione che si sveglia dall’altra parte del pianeta. WebAssembly all'edge risolve esattamente questa serie di problemi, non essendo più veloce nel throughput grezzo, ma avendo un modello di esecuzione fondamentalmente diverso.
Il problema delle partenze a freddo
Quando una funzione Lambda riceve la sua prima richiesta dopo un periodo di inattività, il runtime deve inizializzare l'ambiente. A seconda della lingua e della dimensione del pacchetto, questo costa tra 100 ms e 500 ms. Contenitore in Cloud Run o Kubernetes? Possono trascorrere da uno a dieci secondi prima che sia pronto a servire il traffico. Per le API interne in cui la latenza P99 non è un problema critico, puoi conviverci. Per la logica che tocca ogni richiesta dell'utente (instradamento geografico, convalida dei token, personalizzazione dell'intestazione, test A/B) quel tempo diventa un problema visibile.
Cloudflare Workers e Fastly Compute hanno fatto scelte architetturali che eliminano strutturalmente questo problema. In Workers, il codice viene eseguito in isolati V8, condivisioni leggere all'interno dello stesso processo. l'isolato esiste già; quando arriva una richiesta, viene inviata in microsecondi. La partenza a freddo, in pratica, si avvicina allo zero. In Fastly Compute l'approccio è ancora più diretto: il modulo Wasm viene compilato in anticipo in codice nativo sulla macchina host e caricato come pura unità di esecuzione. Meno di un millisecondo dall'inizio all'elaborazione.
Deno Deploy segue una linea simile, con il supporto per TypeScript, JavaScript e Wasm distribuiti in più di trenta edge location. Il risultato è lo stesso: il divario tra "richiesta arrivata" e "funzione avviata in esecuzione" crolla a qualcosa che non è più misurabile nell'esperienza dell'utente.
Isolamento per richiesta, non per processo
C'è un dettaglio che appare raramente nei tutorial serverless ma che conta molto negli ambienti multi-tenant: cosa succede tra richieste consecutive all'interno dello stesso processo?
Nelle funzioni Lambda e Cloud Run, il contenitore o il processo viene spesso riutilizzato per aumentare l'efficienza. Ciò è positivo per le prestazioni, ma crea una finestra in cui lo stato accidentale può fuoriuscire tra le invocazioni. Le variabili globali modificate da una richiesta possono influenzare quella successiva. Connessioni aperte, cache in memoria: tutto questo persiste nello stesso processo. Per le applicazioni senza proprietà per progettazione con team disciplinati, non è un problema. Ma è una superficie di rischio che esiste.
Il modello Wasm al bordo chiude questa superficie in altro modo. Ogni modulo Wasm opera sulla propria memoria lineare: un array contiguo di byte privato di quel modulo. Non esiste un heap condiviso tra le richieste. Non è possibile per una richiesta leggere la memoria di un'altra, anche se sono in esecuzione contemporaneamente sullo stesso hardware. L'isolamento non dipende da un processo separato; è a livello del modello di esecuzione della macchina virtuale.
Per le piattaforme che eseguono la logica da migliaia di client sullo stesso hardware, questo dettaglio non è facoltativo. È la differenza tra un modello di sicurezza su cui puoi ragionare formalmente e uno che si basa sulle migliori pratiche di ciascun team.
Dove edge Wasm vince su Lambda e Cloud Run
La vittoria non è universale. Esiste una serie specifica di casi in cui la combinazione di avvio immediato, distribuzione globale e isolamento delle richieste crea una reale differenza di prodotto.
La logica che deve essere vicina all'utente geograficamente avvantaggia di più. Routing per località, risposte personalizzate per mercato, convalida dell'autenticazione prima di raggiungere il server di origine: tutto ciò ha un impatto diretto sulla latenza in base al luogo in cui viene eseguito il codice. Una funzione edge opera in una presenza di rete a decine di millisecondi di distanza dall'utente, non in una regione cloud a centinaia di distanza.
Anche la modifica delle richieste e delle risposte si adatta bene: inserimento di intestazioni, riscrittura di URL, applicazione di caching personalizzato, reindirizzamento basato su test A/B. Si tratta di operazioni a bassa CPU con un impatto elevato sull'esperienza. La logica di limitazione della velocità e il rilevamento dei bot vincono allo stesso modo: controlla il traffico prima che raggiunga l'infrastruttura principale, personalizzato per tenant, gestito a livello globale.
Dove il modello non regge
Il limite della CPU per richiesta è rigido: circa cinquanta millisecondi sulla maggior parte delle piattaforme. Qualsiasi elaborazione più lunga è esterna al modello.
I carichi di lavoro con stato rappresentano l’altro limite strutturale. Wasm at the edge non ha accesso nativo a database e qualsiasi persistenza passa attraverso una chiamata di rete all'origine. Se la logica aziendale è leggere, trasformare e scrivere dati, la latenza di questa chiamata può annullare qualsiasi vantaggio. Anche le dipendenze pesanti sono un problema: un modulo Wasm con megabyte di librerie perde il vantaggio dell'inizializzazione rapida.
Lo scambio è esplicito: ottieni distribuzione globale e avvio immediato e rinunci a processi di lunga durata, accesso avanzato al sistema operativo e carichi di lavoro ad uso intensivo della CPU. Accettare questo scambio per i casi giusti – e rifiutarlo per quelli sbagliati – è la decisione architettonica che conta.
Cosa deve valutare il responsabile tecnico
La domanda produttiva non è "dovremmo usare edge Wasm?" ma "quale frazione della logica edge della nostra piattaforma guadagna da questo modello?" Quasi ogni piattaforma ha una logica che riguarda ogni richiesta: autenticazione, instradamento, feature flag, caching personalizzato. Questa logica è un candidato naturale.
La valutazione inizia mappando la latenza attuale per regione geografica. Se c’è una grande divergenza tra P50 e P99 a seconda di dove si trova l’utente, l’edge computing entra nella conversazione. Se la base utenti è geograficamente concentrata, il vantaggio si riduce.
Il secondo asse è l’isolamento multi-tenant. Se la piattaforma esegue una logica diversa per client, il modello di isolamento per richiesta di Wasm offre una garanzia che i contenitori tradizionali non possono essere consegnati senza costi operativi aggiuntivi. Il terzo asse è l'onboarding: Workers e Fastly Compute dispongono di CI/CD maturi, ma la toolchain Wasm presenta ancora bordi irregolari rispetto a Lambda in Node o Python. Questo costo deve essere incluso nel calcolo.
Leggi anche
- Operatori Cloudflare: guida pratica all'edge computing serverless
- Operatori Cloudflare in produzione: cosa cambia dopo hello world
- Cloudflare Workers vs Pages: la differenza che conta prima di scegliere
- WebAssembly oltre il browser: il livello di esecuzione universale mancante
- RISC-V all'edge e IoT: perché l'architettura aperta è importante
- Sviluppo di applicazioni serverless con AWS Lambda e Cloudflare Workers nel 2025