«بلا خادم» وعدٌ بأنك لن تدفع إلا لما تستخدمه ولن تدير آلة. الوعد صحيح — بشروط. وحين تُخالَف الشروط، تأتي الفاتورة المفاجئة آخر الشهر أو زمن الاستجابة الذي يُغضب أول مستخدم في الصباح.
متى يكون القرار الصحيح
- حمل متقطّع: واجهة برمجية تُستدعى مئات المرات في الساعة ثم تصمت ليلاً. الدفع لكل استدعاء أرخص من خادم يعمل 24 ساعة.
- معالجة أحداث: صورة تُرفع فتُعالَج، ملف يصل فيُحلَّل. الوظيفة تعمل ثوانيَ ثم تختفي.
- فريق صغير بلا مهندس بنية: لا آلات تُرقَّع ولا نظام تشغيل يُحدَّث.
متى يكون فخّاً
ثلاث حالات رأيناها تتكرّر:
- البرود (cold start): وظيفة تُستدعى نادراً تحتاج ثانية أو أكثر لتستيقظ. لواجهة يستخدمها إنسان ينتظر، هذا غير مقبول. الحلّ إمّا تدفئة مدفوعة (provisioned concurrency) — وعندها فقدت نصف ميزة التكلفة — أو خادم صغير دائم.
- الاتصال بقاعدة البيانات: كل وظيفة تفتح اتصالاً جديداً. عند ذروة بمئات الوظائف المتزامنة تنهار قاعدة البيانات لا الوظائف. تحتاج وسيط اتصالات (RDS Proxy أو ما يماثله) منذ اليوم الأول.
- الحمل الثابت العالي: إن كانت خدمتك تعمل بحمل ثابت طوال اليوم، فالخادم المخصّص أرخص بمرّات. الحساب بسيط: عدد الاستدعاءات × المدّة × السعر، مقابل سعر خادم شهرياً.
الحساب الذي نُجريه قبل القرار
# تكلفة شهرية تقريبية لوظيفة
invocations = 3_000_000 # استدعاء/شهر
avg_ms = 250 # مدّة متوسّطة
memory_gb = 0.5
gb_seconds = invocations * (avg_ms/1000) * memory_gb
compute_cost = gb_seconds * 0.0000166667
request_cost = invocations * 0.0000002
print(round(compute_cost + request_cost, 2)) # ≈ 6.85 دولار
# مقابل خادم صغير دائم ≈ 15–30 دولار — بلا برود وبلا حدّ أقصى للتزامن
الأرقام تقريبية وتتغيّر بالمنطقة والمزوّد، لكن الفكرة ثابتة: القرار يُتّخذ بحساب لا بحماس.
ما نفعله عادةً
نمزج. الواجهة الرئيسية التي ينتظرها إنسان على خادم صغير دائم (أو حافة Edge بزمن استيقاظ شبه معدوم). المعالجات الثقيلة المتقطّعة — تحليل مستند، توليد تقرير، إرسال دفعة بريد — على وظائف بلا خادم. وقاعدة البيانات خلف وسيط اتصالات دائماً.
«بلا خادم» ليس معمارية؛ هو نموذج فوترة. اختره حيث يوفّر، وتجنّبه حيث يكلّف.
الخلاصة
التمدّد بلا حدود حقيقي — والفاتورة بلا حدود حقيقية أيضاً. الفرق بينهما حساب قبل القرار، ووسيط اتصالات قبل أول نشر، وميزانية تنبيه قبل أول شهر.


