Il serverless computing ti permette di eseguire codice senza gestire server. Scrivi funzioni, le distribuisci e la piattaforma gestisce scalabilita, disponibilita e infrastruttura. Nel 2026, tre piattaforme dominano il panorama serverless: AWS Lambda, Vercel Serverless Functions e Cloudflare Workers. Ognuna ha punti di forza e compromessi differenti.
In questo articolo, le confrontiamo con esempi reali, considerazioni sulle prestazioni e analisi dei prezzi.
Come Funziona il Serverless
Distribuisci una funzione. Quando arriva una richiesta, la piattaforma:
- Avvia un ambiente di esecuzione (o riutilizza uno gia attivo)
- Esegue la tua funzione
- Restituisce la risposta
- Scala a zero quando inattiva (non paghi per il tempo di inattivita)
Panoramica delle Piattaforme
AWS Lambda
La piattaforma serverless originale (lanciata nel 2014). La piu matura e ricca di funzionalita, con integrazione profonda nell'ecosistema AWS.
// AWS Lambda handler export const handler = async (event) => { const body = JSON.parse(event.body); const result = await processData(body); return { statusCode: 200, headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(result), }; };
Vercel Serverless Functions
Strettamente integrato con Next.js e il workflow di deployment frontend. Le funzioni vengono distribuite insieme al tuo frontend senza configurazione.
// app/api/hello/route.ts (Next.js App Router) import { NextResponse } from 'next/server'; export async function GET(request: Request) { const { searchParams } = new URL(request.url); const name = searchParams.get('name') || 'World'; return NextResponse.json({ message: `Hello, ${name}!` }); }
Cloudflare Workers
Eseguito sulla rete edge di Cloudflare in oltre 300 citta nel mondo. Utilizza il motore V8 (lo stesso di Chrome) invece di Node.js, il che significa cold start estremamente veloci.
// Cloudflare Worker export default { async fetch(request, env) { const url = new URL(request.url); const name = url.searchParams.get('name') || 'World'; return new Response( JSON.stringify({ message: `Hello, ${name}!` }), { headers: { 'Content-Type': 'application/json' } } ); }, };
Confronto delle Funzionalita
| Funzionalita | AWS Lambda | Vercel Functions | Cloudflare Workers |
|---|---|---|---|
| Runtime | Node.js, Python, Go, Rust, Java, .NET | Node.js, Python, Go, Ruby | V8 Isolates (JS/TS, Rust via WASM) |
| Tempo massimo di esecuzione | 15 minuti | 60s (Hobby), 300s (Pro) | 30s (gratuito), 15min (a pagamento) |
| Memoria | 128MB - 10GB | 1024MB - 3008MB | 128MB |
| Cold start | 100-500ms | 100-300ms | < 5ms |
| Posizione di deploy | Singola regione (o multi con impegno) | Regioni multiple | 300+ posizioni edge |
| Payload massimo | 6MB (sincrono), 256KB (asincrono) | 4.5MB | 100MB |
| Storage incluso | No (usa DynamoDB, S3) | No (usa DB esterno) | KV, D1 (SQLite), R2 (compatibile S3) |
| Modello di prezzo | Per richiesta + durata | Incluso nel piano | Per richiesta + durata |
| Livello gratuito | 1M richieste/mese | 100K/mese (Hobby) | 100K richieste/giorno |
Cold Start
Il cold start e il tempo necessario per inizializzare una nuova istanza della funzione. Questa e la principale preoccupazione prestazionale del serverless.
| Piattaforma | Cold Start Tipico | Perche |
|---|---|---|
| Cloudflare Workers | < 5ms | Isolate V8, nessun runtime completo necessario |
| Vercel Functions | 100-300ms | Runtime Node.js su edge o regionale |
| AWS Lambda | 100-500ms | Inizializzazione completa del container |
| AWS Lambda (Java) | 1-5 secondi | Overhead di avvio della JVM |
Cloudflare Workers vince nei cold start con un margine enorme perche utilizza isolate V8 invece di container.
Confronto Prezzi
Livello Gratuito
| Piattaforma | Richieste Gratuite | Calcolo Gratuito |
|---|---|---|
| AWS Lambda | 1M/mese | 400.000 GB-secondi |
| Vercel | 100K/mese | Incluso nel piano Hobby |
| Cloudflare Workers | 100K/giorno (~3M/mese) | 10ms CPU per invocazione |
Su Scala (10M richieste/mese, durata media 50ms)
| Piattaforma | Costo Mensile Stimato |
|---|---|
| AWS Lambda | ~$2,50 (richieste) + |
| Vercel | $20/mese (piano Pro, include le funzioni) |
| Cloudflare Workers | $5/mese (piano a pagamento, include 10M richieste) |
Per la maggior parte dei casi d'uso, Cloudflare Workers e il piu economico. Il prezzo di Vercel e semplice ma include l'intera piattaforma (hosting, CDN, analytics). AWS Lambda ha i prezzi piu granulari.
Casi d'Uso Reali
AWS Lambda: Ideale Per
- Workflow backend complessi - step functions, architetture event-driven
- Integrazione con servizi AWS - trigger S3, stream DynamoDB, code SQS
- Task a lunga durata - fino a 15 minuti di tempo di esecuzione
- Team multi-linguaggio - supporta la piu ampia gamma di runtime
Vercel Functions: Ideale Per
- Applicazioni Next.js - API routes senza configurazione
- Team orientati al frontend - distribuisci frontend e backend insieme
- Prototipazione rapida - git push per il deploy
- Architetture Jamstack - frontend statico + API serverless
// app/api/subscribe/route.ts import { NextResponse } from 'next/server'; export async function POST(request: Request) { const { email } = await request.json(); // Validate if (!email || !email.includes('@')) { return NextResponse.json( { error: 'Invalid email' }, { status: 400 } ); } // Save to database await db.subscribers.create({ email }); return NextResponse.json({ success: true }); }
Cloudflare Workers: Ideale Per
- API a bassa latenza - il codice viene eseguito in oltre 300 posizioni nel mondo
- Edge computing - trasformazione delle risposte, A/B testing, personalizzazione
- API ad alto volume - il piu economico su scala con un generoso livello gratuito
- Applicazioni globali - dati vicini agli utenti con KV e D1
// Edge-side A/B test export default { async fetch(request, env) { const url = new URL(request.url); // Assign user to variant const cookie = request.headers.get('Cookie') || ''; let variant = cookie.includes('ab=b') ? 'b' : 'a'; if (!cookie.includes('ab=')) { variant = Math.random() < 0.5 ? 'a' : 'b'; } // Fetch the appropriate version const response = await fetch(`${url.origin}/variants/${variant}`); const newResponse = new Response(response.body, response); // Set cookie for consistent experience newResponse.headers.set('Set-Cookie', `ab=${variant}; Path=/; Max-Age=86400`); return newResponse; }, };
Quando Scegliere Quale
Scegli AWS Lambda se:
- Sei gia investito nell'ecosistema AWS
- Hai bisogno di funzioni a lunga durata (fino a 15 minuti)
- Hai bisogno di architetture event-driven complesse
- Hai bisogno di runtime oltre JavaScript (Python, Go, Rust, Java)
Scegli Vercel Functions se:
- Stai sviluppando con Next.js o un framework frontend
- Vuoi l'esperienza di deploy piu semplice (git push)
- Il tuo team e focalizzato sul frontend
- Vuoi hosting + funzioni + CDN in un'unica piattaforma
Scegli Cloudflare Workers se:
- Hai bisogno della latenza piu bassa possibile a livello globale
- Vuoi l'opzione piu economica su scala
- Hai bisogno di capacita di edge computing
- Il tempo di cold start e critico per il tuo caso d'uso
Si Possono Combinare?
Assolutamente. Un'architettura comune:
- Cloudflare Workers: routing edge, caching, sicurezza
- Vercel Functions: API routes frontend, SSR
- AWS Lambda: elaborazione backend pesante, task pianificati, pipeline di eventi
Conclusione
Il serverless e maturato significativamente. Nel 2026, la scelta tra AWS Lambda, Vercel Functions e Cloudflare Workers dipende dal tuo stack e dalle tue priorita:
- Esperienza sviluppatore piu semplice: Vercel
- Piu potente e flessibile: AWS Lambda
- Migliori prestazioni e prezzi: Cloudflare Workers
Tutte e tre sono pronte per la produzione e testate sul campo. Inizia con quella che si adatta al tuo stack attuale e amplia man mano che le tue esigenze crescono.