محاسبات serverless به شما امکان میدهد بدون مدیریت سرور کد اجرا کنید. شما توابع مینویسید، آنها را دیپلوی میکنید و پلتفرم مقیاسپذیری، دسترسپذیری و زیرساخت را مدیریت میکند. در سال 2026، سه پلتفرم بر دنیای serverless تسلط دارند: AWS Lambda، Vercel Serverless Functions و Cloudflare Workers. هر کدام نقاط قوت و مصالحههای متفاوتی دارند.
در این مقاله، آنها را با مثالهای واقعی، ملاحظات عملکردی و تحلیل قیمت مقایسه میکنیم.
Serverless چگونه کار میکند
شما یک تابع را دیپلوی میکنید. وقتی درخواستی میرسد، پلتفرم:
- یک محیط اجرا راهاندازی میکند (یا از یک محیط گرم قبلی استفاده مجدد میکند)
- تابع شما را اجرا میکند
- پاسخ را برمیگرداند
- در حالت بیکاری به صفر مقیاس میشود (برای زمان بیکاری هزینهای نمیپردازید)
نمای کلی پلتفرمها
AWS Lambda
پلتفرم serverless اصلی (در سال 2014 راهاندازی شد). بالغترین و غنیترین از نظر ویژگیها، با یکپارچگی عمیق در اکوسیستم 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
به صورت تنگاتنگ با Next.js و جریان کاری دیپلوی فرانتاند یکپارچه شده است. توابع بدون هیچ پیکربندی همراه با فرانتاند شما دیپلوی میشوند.
// 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
روی شبکه edge کلودفلر در بیش از 300 شهر در سراسر جهان اجرا میشود. از موتور V8 (همان موتور Chrome) به جای Node.js استفاده میکند، که به معنای cold start بسیار سریع است.
// 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' } } ); }, };
مقایسه ویژگیها
| ویژگی | AWS Lambda | Vercel Functions | Cloudflare Workers |
|---|---|---|---|
| محیط اجرا | Node.js, Python, Go, Rust, Java, .NET | Node.js, Python, Go, Ruby | V8 Isolates (JS/TS, Rust via WASM) |
| حداکثر زمان اجرا | 15 دقیقه | 60 ثانیه (Hobby)، 300 ثانیه (Pro) | 30 ثانیه (رایگان)، 15 دقیقه (پولی) |
| حافظه | 128MB - 10GB | 1024MB - 3008MB | 128MB |
| Cold start | 100-500ms | 100-300ms | < 5ms |
| محل دیپلوی | منطقه واحد (یا چندگانه با تلاش) | مناطق متعدد | 300+ مکان edge |
| حداکثر بار | 6MB (همزمان)، 256KB (ناهمزمان) | 4.5MB | 100MB |
| ذخیرهسازی داخلی | خیر (از DynamoDB، S3 استفاده کنید) | خیر (از DB خارجی استفاده کنید) | KV، D1 (SQLite)، R2 (سازگار با S3) |
| مدل قیمتگذاری | به ازای هر درخواست + مدت | شامل در طرح | به ازای هر درخواست + مدت |
| سطح رایگان | 1 میلیون درخواست/ماه | 100 هزار/ماه (Hobby) | 100 هزار درخواست/روز |
Cold Start
Cold start زمانی است که برای مقداردهی اولیه یک نمونه تابع جدید لازم است. این بزرگترین نگرانی عملکردی در serverless است.
| پلتفرم | Cold Start معمول | چرا |
|---|---|---|
| Cloudflare Workers | < 5ms | ایزولههای V8، نیازی به محیط اجرای کامل نیست |
| Vercel Functions | 100-300ms | محیط اجرای Node.js در edge یا منطقهای |
| AWS Lambda | 100-500ms | مقداردهی اولیه کامل کانتینر |
| AWS Lambda (Java) | 1-5 ثانیه | سربار راهاندازی JVM |
Cloudflare Workers در cold start با اختلاف بسیار زیاد برنده است زیرا از ایزولههای V8 به جای کانتینرها استفاده میکند.
مقایسه قیمتها
سطح رایگان
| پلتفرم | درخواستهای رایگان | محاسبات رایگان |
|---|---|---|
| AWS Lambda | 1 میلیون/ماه | 400,000 GB-ثانیه |
| Vercel | 100 هزار/ماه | شامل در طرح Hobby |
| Cloudflare Workers | 100 هزار/روز (~3 میلیون/ماه) | 10ms CPU به ازای هر فراخوانی |
در مقیاس بزرگ (10 میلیون درخواست/ماه، میانگین مدت 50ms)
| پلتفرم | هزینه ماهانه تخمینی |
|---|---|
| AWS Lambda | ~$2.50 (درخواستها) + |
| Vercel | $20/ماه (طرح Pro، شامل توابع) |
| Cloudflare Workers | $5/ماه (طرح پولی، شامل 10 میلیون درخواست) |
برای بیشتر موارد استفاده، Cloudflare Workers ارزانترین است. قیمتگذاری Vercel ساده است اما شامل کل پلتفرم (میزبانی، CDN، تحلیل) میشود. AWS Lambda دقیقترین قیمتگذاری را دارد.
موارد استفاده واقعی
AWS Lambda: بهترین برای
- جریانهای کاری پیچیده بکاند - step functions، معماریهای مبتنی بر رویداد
- یکپارچگی با سرویسهای AWS - تریگرهای S3، استریمهای DynamoDB، صفهای SQS
- وظایف طولانی مدت - تا 15 دقیقه زمان اجرا
- تیمهای چندزبانه - گستردهترین محدوده محیطهای اجرا را پشتیبانی میکند
Vercel Functions: بهترین برای
- برنامههای Next.js - مسیرهای API بدون پیکربندی
- تیمهای متمرکز بر فرانتاند - دیپلوی فرانتاند و بکاند با هم
- نمونهسازی سریع - git push برای دیپلوی
- معماریهای Jamstack - فرانتاند استاتیک + 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: بهترین برای
- API با تاخیر کم - کد در بیش از 300 مکان در سراسر جهان اجرا میشود
- محاسبات لبهای - تبدیل پاسخها، تست A/B، شخصیسازی
- API با حجم بالا - ارزانترین در مقیاس بزرگ با سطح رایگان سخاوتمندانه
- برنامههای جهانی - دادهها نزدیک به کاربران با KV و 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; }, };
چه زمانی کدام را انتخاب کنیم
AWS Lambda را انتخاب کنید اگر:
- قبلا در اکوسیستم AWS سرمایهگذاری کردهاید
- به توابع طولانی مدت نیاز دارید (تا 15 دقیقه)
- به معماریهای پیچیده مبتنی بر رویداد نیاز دارید
- به محیطهای اجرا فراتر از JavaScript نیاز دارید (Python، Go، Rust، Java)
Vercel Functions را انتخاب کنید اگر:
- با Next.js یا فریمورک فرانتاند توسعه میدهید
- سادهترین تجربه دیپلوی را میخواهید (git push)
- تیم شما بر فرانتاند متمرکز است
- میزبانی + توابع + CDN در یک پلتفرم میخواهید
Cloudflare Workers را انتخاب کنید اگر:
- به کمترین تاخیر ممکن در سطح جهان نیاز دارید
- ارزانترین گزینه در مقیاس بزرگ را میخواهید
- به قابلیتهای محاسبات لبهای نیاز دارید
- زمان cold start برای مورد استفاده شما حیاتی است
آیا میتوان آنها را ترکیب کرد؟
قطعا. یک معماری رایج:
- Cloudflare Workers: مسیریابی edge، کش کردن، امنیت
- Vercel Functions: مسیرهای API فرانتاند، SSR
- AWS Lambda: پردازش سنگین بکاند، وظایف زمانبندی شده، خطوط لوله رویداد
نتیجهگیری
Serverless به طور قابل توجهی بالغ شده است. در سال 2026، انتخاب بین AWS Lambda، Vercel Functions و Cloudflare Workers به استک و اولویتهای شما بستگی دارد:
- سادهترین تجربه توسعهدهنده: Vercel
- قدرتمندترین و انعطافپذیرترین: AWS Lambda
- بهترین عملکرد و قیمت: Cloudflare Workers
هر سه آماده تولید و آزموده در میدان نبرد هستند. با آنچه به استک فعلی شما میخورد شروع کنید و با رشد نیازهایتان گسترش دهید.