Serverless computing cho phep ban chay code ma khong can quan ly server. Ban viet cac ham, trien khai chung va nen tang se xu ly viec mo rong, kha dung va ha tang. Trong nam 2026, ba nen tang thong tri boi canh serverless: AWS Lambda, Vercel Serverless Functions va Cloudflare Workers. Moi nen tang co nhung the manh va danh doi khac nhau.
Trong bai viet nay, chung toi so sanh chung voi cac vi du thuc te, cac can nhac ve hieu suat va phan tich gia.
Serverless hoat dong nhu the nao
Ban trien khai mot ham. Khi mot yeu cau den, nen tang se:
- Khoi tao moi truong thuc thi (hoac tai su dung mot moi truong da san sang)
- Chay ham cua ban
- Tra ve phan hoi
- Thu nho ve khong khi khong hoat dong (ban khong tra phi cho thoi gian nghi)
Tong quan nen tang
AWS Lambda
Nen tang serverless dau tien (ra mat nam 2014). Chin muoi nhat va giau tinh nang nhat, voi tich hop sau vao he sinh thai 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
Tich hop chat che voi Next.js va quy trinh trien khai frontend. Cac ham duoc trien khai cung voi frontend cua ban ma khong can cau hinh.
// 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
Chay tren mang edge cua Cloudflare tai hon 300 thanh pho tren toan the gioi. Su dung V8 engine (giong nhu Chrome) thay vi Node.js, co nghia la cold start cuc ky nhanh.
// 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' } } ); }, };
So sanh tinh nang
| Tinh nang | 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) |
| Thoi gian thuc thi toi da | 15 phut | 60s (Hobby), 300s (Pro) | 30s (mien phi), 15 phut (tra phi) |
| Bo nho | 128MB - 10GB | 1024MB - 3008MB | 128MB |
| Cold start | 100-500ms | 100-300ms | < 5ms |
| Vi tri trien khai | Mot vung (hoac nhieu vung voi no luc) | Nhieu vung | 300+ vi tri edge |
| Payload toi da | 6MB (dong bo), 256KB (bat dong bo) | 4.5MB | 100MB |
| Luu tru tich hop | Khong (su dung DynamoDB, S3) | Khong (su dung DB ben ngoai) | KV, D1 (SQLite), R2 (tuong thich S3) |
| Mo hinh gia | Theo yeu cau + thoi luong | Bao gom trong goi | Theo yeu cau + thoi luong |
| Goi mien phi | 1M yeu cau/thang | 100K/thang (Hobby) | 100K yeu cau/ngay |
Cold Start
Cold start la thoi gian can de khoi tao mot instance ham moi. Day la moi quan tam lon nhat ve hieu suat voi serverless.
| Nen tang | Cold Start dien hinh | Ly do |
|---|---|---|
| Cloudflare Workers | < 5ms | V8 isolate, khong can runtime day du |
| Vercel Functions | 100-300ms | Runtime Node.js tren edge hoac vung |
| AWS Lambda | 100-500ms | Khoi tao container day du |
| AWS Lambda (Java) | 1-5 giay | Chi phi khoi dong JVM |
Cloudflare Workers thang cold start voi khoang cach lon vi su dung V8 isolate thay vi container.
So sanh gia
Goi mien phi
| Nen tang | Yeu cau mien phi | Tinh toan mien phi |
|---|---|---|
| AWS Lambda | 1M/thang | 400,000 GB-giay |
| Vercel | 100K/thang | Bao gom trong goi Hobby |
| Cloudflare Workers | 100K/ngay (~3M/thang) | 10ms CPU moi lan goi |
O quy mo lon (10M yeu cau/thang, thoi luong trung binh 50ms)
| Nen tang | Chi phi hang thang uoc tinh |
|---|---|
| AWS Lambda | ~$2.50 (yeu cau) + |
| Vercel | $20/thang (goi Pro, bao gom ham) |
| Cloudflare Workers | $5/thang (goi tra phi, bao gom 10M yeu cau) |
Voi hau het cac truong hop su dung, Cloudflare Workers la re nhat. Gia cua Vercel don gian nhung bao gom toan bo nen tang (hosting, CDN, analytics). AWS Lambda co gia chi tiet nhat.
Truong hop su dung thuc te
AWS Lambda: Tot nhat cho
- Quy trinh backend phuc tap - step functions, kien truc huong su kien
- Tich hop voi dich vu AWS - S3 trigger, DynamoDB stream, SQS queue
- Tac vu chay lau - len den 15 phut thoi gian thuc thi
- Nhom da ngon ngu - ho tro pham vi runtime rong nhat
Vercel Functions: Tot nhat cho
- Ung dung Next.js - API route khong can cau hinh
- Nhom tap trung frontend - trien khai frontend va backend cung nhau
- Tao mau nhanh - git push de trien khai
- Kien truc Jamstack - frontend tinh + serverless API
// 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: Tot nhat cho
- API do tre thap - code chay tai hon 300 vi tri tren toan the gioi
- Edge computing - chuyen doi phan hoi, A/B testing, ca nhan hoa
- API luu luong cao - re nhat o quy mo lon voi goi mien phi hao phong
- Ung dung toan cau - du lieu gan nguoi dung voi KV va 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; }, };
Khi nao chon cai nao
Chon AWS Lambda neu:
- Ban da dau tu vao he sinh thai AWS
- Ban can ham chay lau (len den 15 phut)
- Ban can kien truc huong su kien phuc tap
- Ban can runtime ngoai JavaScript (Python, Go, Rust, Java)
Chon Vercel Functions neu:
- Ban dang xay dung voi Next.js hoac framework frontend
- Ban muon trai nghiem trien khai don gian nhat (git push)
- Nhom cua ban tap trung vao frontend
- Ban muon hosting + ham + CDN trong mot nen tang
Chon Cloudflare Workers neu:
- Ban can do tre thap nhat co the tren toan cau
- Ban muon lua chon re nhat o quy mo lon
- Ban can kha nang edge computing
- Thoi gian cold start rat quan trong cho truong hop su dung cua ban
Co the ket hop chung khong?
Chac chan. Mot kien truc pho bien:
- Cloudflare Workers: dinh tuyen edge, caching, bao mat
- Vercel Functions: API route frontend, SSR
- AWS Lambda: xu ly backend nang, tac vu dinh ky, pipeline su kien
Ket luan
Serverless da truong thanh dang ke. Trong nam 2026, lua chon giua AWS Lambda, Vercel Functions va Cloudflare Workers phu thuoc vao stack va uu tien cua ban:
- Trai nghiem nha phat trien don gian nhat: Vercel
- Manh me va linh hoat nhat: AWS Lambda
- Hieu suat va gia tot nhat: Cloudflare Workers
Ca ba deu san sang cho san xuat va da duoc thu nghiem thuc te. Bat dau voi cai phu hop voi stack hien tai cua ban va mo rong khi nhu cau cua ban tang len.