عوالِم قروبAwalim Group

بنية سحابيةقراءة دقيقتين

بنية Serverless على AWS: هندسة تتمدّد بلا حدود

متى يكون بلا خادم القرار الصحيح ومتى يكون فخّاً — بحساب التكلفة والبرود والحدّ الأقصى، لا بالحماس.

بقلم فريق البنية — عوالِم

«بلا خادم» وعدٌ بأنك لن تدفع إلا لما تستخدمه ولن تدير آلة. الوعد صحيح — بشروط. وحين تُخالَف الشروط، تأتي الفاتورة المفاجئة آخر الشهر أو زمن الاستجابة الذي يُغضب أول مستخدم في الصباح.

متى يكون القرار الصحيح

  • حمل متقطّع: واجهة برمجية تُستدعى مئات المرات في الساعة ثم تصمت ليلاً. الدفع لكل استدعاء أرخص من خادم يعمل 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 بزمن استيقاظ شبه معدوم). المعالجات الثقيلة المتقطّعة — تحليل مستند، توليد تقرير، إرسال دفعة بريد — على وظائف بلا خادم. وقاعدة البيانات خلف وسيط اتصالات دائماً.

«بلا خادم» ليس معمارية؛ هو نموذج فوترة. اختره حيث يوفّر، وتجنّبه حيث يكلّف.

الخلاصة

التمدّد بلا حدود حقيقي — والفاتورة بلا حدود حقيقية أيضاً. الفرق بينهما حساب قبل القرار، ووسيط اتصالات قبل أول نشر، وميزانية تنبيه قبل أول شهر.

الخطوة التالية

عندك سؤال هندسي محدّد؟

أحياناً تكفي مكالمة قصيرة لتوفير أسابيع من المسار الخطأ.

  • نعود إليك خلال يومَي عمل
  • الكود ملك لك بالكامل
  • أرقام منشورة موقّعة وقابلة للتحقّق