تتيح لك الحوسبة بدون خادم (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
يعمل على شبكة Cloudflare الطرفية عبر أكثر من 300 مدينة حول العالم. يستخدم محرك V8 (نفس محرك Chrome) بدلاً من Node.js، مما يعني بدء تشغيل بارد سريع للغاية.
// 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 |
| البدء البارد | 100-500ms | 100-300ms | < 5ms |
| موقع النشر | منطقة واحدة (أو متعددة مع جهد) | مناطق متعددة | 300+ موقع طرفي |
| أقصى حمولة | 6MB (متزامن)، 256KB (غير متزامن) | 4.5MB | 100MB |
| تخزين مدمج | لا (استخدم DynamoDB، S3) | لا (استخدم قاعدة بيانات خارجية) | KV، D1 (SQLite)، R2 (متوافق مع S3) |
| نموذج التسعير | لكل طلب + مدة | مشمول في الخطة | لكل طلب + مدة |
| المستوى المجاني | 1 مليون طلب/شهر | 100 ألف/شهر (Hobby) | 100 ألف طلب/يوم |
البدء البارد
البدء البارد هو الوقت المستغرق لتهيئة نسخة دالة جديدة. هذا هو أكبر مصدر قلق للأداء مع serverless.
| المنصة | البدء البارد النموذجي | لماذا |
|---|---|---|
| Cloudflare Workers | < 5ms | عزل V8، لا حاجة لبيئة تشغيل كاملة |
| Vercel Functions | 100-300ms | بيئة تشغيل Node.js على الحافة أو إقليمية |
| AWS Lambda | 100-500ms | تهيئة حاوية كاملة |
| AWS Lambda (Java) | 1-5 ثوانٍ | حمل بدء تشغيل JVM |
يفوز Cloudflare Workers في البدء البارد بفارق كبير لأنه يستخدم عزل 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 بدون خادم
// 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 إذا:
- كنت بحاجة إلى أقل تأخير ممكن عالمياً
- كنت تريد الخيار الأرخص على نطاق واسع
- كنت بحاجة إلى إمكانيات الحوسبة الطرفية
- كان وقت البدء البارد حاسماً لحالة استخدامك
هل يمكنك الجمع بينها؟
بالتأكيد. بنية شائعة:
- Cloudflare Workers: التوجيه الطرفي، التخزين المؤقت، الأمان
- Vercel Functions: مسارات API للواجهة الأمامية، SSR
- AWS Lambda: معالجة الخلفية الثقيلة، المهام المجدولة، خطوط أنابيب الأحداث
الخلاصة
لقد نضج serverless بشكل كبير. في عام 2026، يعتمد الاختيار بين AWS Lambda و Vercel Functions و Cloudflare Workers على مجموعتك التقنية وأولوياتك:
- أبسط تجربة مطور: Vercel
- الأكثر قوة ومرونة: AWS Lambda
- أفضل أداء وأسعار: Cloudflare Workers
الثلاثة جاهزون للإنتاج ومُختبرون في المعارك. ابدأ بالذي يناسب مجموعتك التقنية الحالية، وتوسع مع نمو احتياجاتك.