استعدتُ ذكرياتي عندما عجزت عن فهم السرفرلس، وقررت أن أطرح كل الأسئلة التي راودتني آنذاك.

هل اختفى الخادم؟ كشف حقيقة الساحر

🧙‍♂️ (الأستاذ): «يا 🐣، اليوم سنتعلم السرفرلس. الاسم يوحي بأن «الخادم اختفى بسحر»، لكن الحقيقة أكثر تواضعًا وعمقًا.»

🐣 (الطالب): «الخادم اختفى؟ هل قلت «يا خادم، تلاشى!» مثل هاري بوتر فغاب حقًا؟»

🧙‍♂️ (الأستاذ): «هاها، هذا ما يظنه كثيرون في البداية. لكن السرفرلس لا يعني غياب الخوادم. بل يعني أن الخوادم تعمل خلف الستار في مراكز بيانات السحابة، بينما المستخدم لا يضطر لإدارتها.»

🐣 (الطالب): «إذاً خدعة؟ يشبه إعلان «خضار من دون مبيدات» بينما يرشّ المزارع الحقول ليلاً.»

🧙‍♂️ (الأستاذ): «تشبيه غريب لكنه مناسب. «ليس» في Serverless تعني «لا حاجة للإدارة». في الماضي كنّا نرعى الخادم بأنفسنا: نثبت نظام التشغيل، نراقب الأعطال، وننهض عند الثالثة صباحًا لمعالجة المشاكل. السرفرلس يعني أن مزود السحابة يتولى هذه المهمة.»

🐣 (الطالب): «الخادم إذا تعطل يغضب الزبون، أما الهامستر فيجعلك تبكي فقط. الاختيار واضح.»

🧙‍♂️ (الأستاذ): «وفوق ذلك، لن يوقظك أحد ليقول «قاعدة البيانات لا تستجيب».»


📌 ملاحظة: المفهوم الأساسي للسرفرلس

السرفرلس (Serverless) لا يعني غياب الخادم، بل أن إدارة الخادم تقع على عاتق مزود السحابة.

  • النموذج التقليدي: شراء الخوادم وتشغيلها وصيانتها ذاتيًا.
  • السرفرلس: مزود السحابة يدير البنية التحتية، والمطور يركز على الكود فقط.

كيف يعمل السرفرلس؟ نينجا يظهر عند النداء

🐣 (الطالب): «يبدو الاستخدام معقدًا. ما الفرق عن الخادم التقليدي؟»

🧙‍♂️ (الأستاذ): «التصميم مختلف. التطبيق السرفرلس يشبه عدّاء المسافات القصيرة: يظهر عندما يُستدعى «فجأة»، يؤدي المهمة بسرعة، ثم يختفي. لا مجال لعدّاء الماراثون.»

🐣 (الطالب): «يعني إذا صرخنا «احسب الآن!» يظهر، وبعد «انتهينا» يختفي؟»

🧙‍♂️ (الأستاذ): «بالضبط. كنينجا يخرج من الدخان عند استدعائه ويعود للاختباء. طالما لا يعمل، لا تدفع أجرًا.»

🐣 (الطالب): «لكن النينجا يغيّر مكان ظهوره كل مرة. ماذا عن عنوان IP؟»

🧙‍♂️ (الأستاذ): «ملاحظة ذكية! لا يملك عنوانًا ثابتًا. كل مرة تُنفّذ الدالة في خادم مختلف. لذا نضع أمامها بوابة مثل API Gateway تعمل كحارس قرية النينجا وتعيد توجيه الطلبات.»

🐣 (الطالب): «وهل يتذكر ما فعله سابقًا؟»

🧙‍♂️ (الأستاذ): «لا. كل ظهور جلسة جديدة. لذلك علينا تصميم النظام كخدمة «عديمة الحالة»؛ لا يتذكر «أهلاً، نكمل ما بدأناه أمس».»

🐣 (الطالب): «أليس ذلك مزعجًا؟ ماذا عن تسجيل الدخول والجلسات؟»

🧙‍♂️ (الأستاذ): «نحفظ الحالة في مكان خارجي مثل قاعدة بيانات أو Redis. النينجا نفسه بلا ذاكرة، لكننا نضع الوثائق المهمة في مستودع مخطوطات.»


📌 ملاحظة: أهمية التصميم عديم الحالة

دوال السرفرلس تعمل في حاويات جديدة كل مرة، فلا تحفظ الحالة محليًا.

  • إدارة الحالة: حفظها في قواعد بيانات أو مخازن خارجية.
  • الجلسات: استخدام JWT أو تخزين خارجي.
  • الملفات: أي شيء أبعد من ملفات مؤقتة يحتاج إلى تخزين خارجي مثل S3.

مقارنة بالخادم التقليدي: حيوان أليف مقابل نينجا

🐣 (الطالب): «أعطني صورة أوضح.»

🧙‍♂️ (الأستاذ): «خذ مثال إنشاء صور مصغّرة بعد رفع صورة. في النموذج التقليدي خادم يعمل 24 ساعة ينتظر «هل وصلت صورة؟». كحارس يقف أمام الباب حتى لو لم يأت أحد.»

🐣 (الطالب): «تمامًا، حارس يقتل الوقت.»

🧙‍♂️ (الأستاذ): «وقد يمرض الحارس ويقع. أما في السرفرلس، فعندما يدق جرس «تم رفع الصورة»، يظهر النينجا، ينفّذ التحويل، ثم يختفي.»

🐣 (الطالب): «أليس هناك تأخير حتى يستيقظ النينجا؟»

🧙‍♂️ (الأستاذ): «هذا ما نسميه «مشكلة الإقلاع البارد». قد يستغرق النينجا النعسان ثوانٍ ليهيئ معداته. اللغات الثقيلة مثل Java تزيد الأمر سوءًا.»

🐣 (الطالب): «هذا مزعج لو احتجنا استجابة لحظية.»

🧙‍♂️ (الأستاذ): «هناك آليات للتسخين المسبق، لكن السرفرلس يتألق في المهام الدورية أو غير المتزامنة. الطلبات الفورية ليست ملعبه المفضل.»


مثال عملي: تطبيق مشاركة الصور

🐣 (الطالب): «أعطني مثالًا واقعيًا، لنقل تطبيق مشاركة صور.»

🧙‍♂️ (الأستاذ): «حسنًا، النموذج التقليدي يبدو هكذا.»

الخادم التقليدي:

خادم ويب يعمل طوال الشهر (5000 ين شهريًا)
↓
«تم رفع صورة»
↓
الخادم نفسه يولّد الصورة المصغرة
↓
يحفظها في قاعدة البيانات

🧙‍♂️ (الأستاذ): «حتى لو لم يرفع أحد صورة، تدفع الإيجار الشهري نفسه. مثل متجر يدفع الإيجار حتى في الأيام الميتة.»

🐣 (الطالب): «إهدار واضح.»

🧙‍♂️ (الأستاذ): «والنسخة السرفرلس تبدو هكذا.»

السرفرلس:

يُرفع الملف إلى S3
↓
حدث S3 يستدعي دالة Lambda
↓
تبدأ Lambda خلال 0.1 ثانية
↓
تُنشئ الصورة المصغرة وتضعها في حاوية أخرى
↓
تنتهي Lambda وتختفي
↓
الدفع بحسب زمن التنفيذ (مثل 0.001 ين للعملية)

🐣 (الطالب): «إذا لم يستخدمها أحد لا ندفع شيئًا؟»

🧙‍♂️ (الأستاذ): «صحيح. «الدفع مقابل الاستخدام». لكن احذر: إذا انتشر التطبيق فجأة سيقفز الحساب. تصوّر فيديو يصبح فيروسيًا فتعمل الدالة مليون مرة.»

🐣 (الطالب): «فتصل الفاتورة إلى ألف ين؟»

🧙‍♂️ (الأستاذ): «الحساب صحيح، لكن أضف رسوم النقل وAPI Gateway وقاعدة البيانات. فجأة قد ترى عشرات الآلاف من الينات. قصص «اشتهرنا ثم أفلسنا» واقعية.»


📌 ملاحظة: مزايا ومخاطر الدفع بحسب الاستخدام

المزايا

  • كلفة بدء تشغيل شبه صفرية.
  • توسّع تلقائي مع الحمل.
  • لا حاجة لإدارة الخادم.

المخاطر

  • فواتير غير متوقعة خصوصًا عند الانتشار الفجائي.
  • تعقيد هيكل الرسوم.
  • صعوبة تقدير التكلفة عند دمج خدمات متعددة.

الإجراءات الوقائية

  • إعداد تنبيهات الفوترة.
  • وضع حدود للسرعة والتنفيذ المتزامن.
  • إجراء اختبارات تحميل وتقديرات مسبقة.

مدارس السرفرلس: اختصاصات النينجا

🐣 (الطالب): «سمعت أن للسرفرلس أنواعًا مختلفة.»

🧙‍♂️ (الأستاذ): «ثلاث مدارس رئيسية: FaaS (الوظائف كخدمة)، BaaS (البنية الخلفية كخدمة)، والحاويات السرفرلس.»

🐣 (الطالب): «ما FaaS؟»

🧙‍♂️ (الأستاذ): «خدمة تقول «أعطني وظيفة وسأتولى تشغيلها كلما استُدعيت وأحاسبك بالثواني». أمثلة: AWS Lambda، Google Cloud Functions، Azure Functions.»

🐣 (الطالب): «وBaaS؟»

🧙‍♂️ (الأستاذ): «منزل العائلة: «سأتكفّل لك بقاعدة البيانات، والمصادقة، والإشعارات». أمثلة: Firebase، Supabase، AWS Amplify. مريح لكنه يزيد التعلّق بالمزوّد.»

🐣 (الطالب): «مثل العيش مع الأهل: راحة مقابل الالتزام بقواعدهم.»

🧙‍♂️ (الأستاذ): «بالضبط. تلك هي مشكلة «الإقفال على مزوّد واحد». تستيقظ لتجد نفسك لا تستطيع العيش من دون خدمته.»


نقاط قوة السرفرلس وضعفه

🐣 (الطالب): «لماذا لا نكتفي بالأساليب القديمة ونوفّر وجع الرأس؟»

🧙‍♂️ (الأستاذ): «لأن السرعة مهمة. يمكنك إطلاق فكرة خلال ليلة، وتبقى التكلفة منخفضة طالما الاستخدام محدود. «فكرة منتصف الليل تُنشر صباحًا» هو شعار السرفرلس.»

🐣 (الطالب): «لكن ليس كل شيء مناسبًا له.»

🧙‍♂️ (الأستاذ): «صحيح، تتضح نقاط القوة والضعف بسهولة.»

مناسب لـ:

  • معالجة الصور (رفع → تصغير).
  • تحويل البيانات (CSV إلى JSON).
  • إرسال الإشعارات (بريد أو Push).
  • المهام المجدولة (تقارير يومية).
  • واجهات API خفيفة (استعلامات سريعة).

غير مناسب لـ:

  • الاتصالات اللحظية (دردشة، ألعاب).
  • المهام الطويلة (تحويل فيديو، تدريب نماذج).
  • الأنظمة ذات الحالة المعقدة.
  • التكاملات العميقة مع الأنظمة القديمة.

🐣 (الطالب): «أي أنه «انطلاقة قوية لكن نفس قصير».»

🧙‍♂️ (الأستاذ): «تشخيص ممتاز: عدّاء 100 متر وليس بطل ماراثون.»


فخ الفوترة: نينجا بأجرٍ بالساعة

🐣 (الطالب): «إذًا نربح إن كنّا أذكياء ونخسر إن تهاونا؟»

🧙‍♂️ (الأستاذ): «السرفرلس يكافئ التخطيط ويعاقب الإهمال. إذا لم تفهم آليات الفوترة، ستذوق الجحيم.»

🐣 (الطالب): «أي جحيم؟»

🧙‍♂️ (الأستاذ): «تخيّل أن تكتب شفرة ذات حلقة لا نهائية. في الخادم التقليدي يبطؤ الخادم. في السرفرلس تُستدعى دوال جديدة بلا نهاية — جيش نينجا يعمل ويطالبك بالأجر.»

🐣 (الطالب): «كابوس! وتكتشفه عند وصول الفاتورة؟»

🧙‍♂️ (الأستاذ): «بالضبط. تلقي نظرة فتجد 1,000,000 ين. قصص AWS بمئات الآلاف حقيقية.»

🐣 (الطالب): «ألا توجد وقاية؟»

🧙‍♂️ (الأستاذ): «طبعًا. حدّد إنذارات للفوترة، وضع حدًا للمدة، وحدًا للتشغيل المتوازي. أي اكتب عقدًا واضحًا مع النينجا.»


دروس من الواقع: عندما يضرب الانتشار فجأة

🐣 (الطالب): «هل سمعت قصة حقيقية عن فاتورة مروّعة؟»

🧙‍♂️ (الأستاذ): «كثيرة. أشهرها شركة ناشئة طوّرت تطبيق تجميل صور بالذكاء الاصطناعي.»

🐣 (الطالب): «ثم؟»

🧙‍♂️ (الأستاذ): «حُسبت التكلفة على أنها 0.1 ين للصورة. لكن التطبيق انتشر على مواقع التواصل، فوُجد مليون تحميل يوميًا. والعملية احتاجت زمنًا أطول من المتوقع، فصارت الكلفة 3 ين للصورة.»

🐣 (الطالب): «3 ين × مليون = 3 ملايين ين…؟»

🧙‍♂️ (الأستاذ): «صحيح، لكنه استمر 30 يومًا متتالية. الشركة كادت تنهار بسبب عدم وضع حدود للنجاح.»

🐣 (الطالب): «لم يضعوا سقفًا؟»

🧙‍♂️ (الأستاذ): «لم يصدقوا أنهم سينتشرون. اليوم نسمّي هذا «سقف النجاح» — حدًّا يحميك من نجاح يتجاوز قدرتك على الدفع.»

🐣 (الطالب): «مفارقة مضحكة ومؤلمة.»

🧙‍♂️ (الأستاذ): ««الصرخة السعيدة» تتحول بسهولة إلى صرخة حقيقية.»


تجربة التطوير: بين نشوة السحر ومرارة القيود

🐣 (الطالب): «كيف هي التجربة أثناء التطوير؟ تشبه البرمجة العادية؟»

🧙‍♂️ (الأستاذ): «البدايات ساحرة: تكتب دالة، تضغط Deploy، فتصل للعالم في دقائق. تشعر أنك ساحر.»

🐣 (الطالب): «رائع.»

🧙‍♂️ (الأستاذ): «لكن مع الوقت تظهر القيود. الاختبار المحلي معقّد، وتتبع الأخطاء صعب لأن النينجا يختفي بعد التنفيذ. تبقى لك السجلات المتناثرة في CloudWatch وX-Ray وCloudTrail وغيرها، وتبدأ لعبة المحقق.»

🐣 (الطالب): «إذن عليك جمع الأدلة بعد أن يغادر الجاني.»

🧙‍♂️ (الأستاذ): «تشبيه ممتاز. بالإضافة إلى ذلك، تفقد السيطرة الكاملة التي تمنحها الخوادم التقليدية. البعض يفضّل العودة للأساليب القديمة لهذا السبب.»

🐣 (الطالب): «لكن كثيرين لا يستطيعون التخلي عن راحة «عدم إدارة الخادم»، أليس كذلك؟»

🧙‍♂️ (الأستاذ): «صحيح؛ السرفرلس قد يكون إدمانًا. تتحرّر من همّ الصيانة لكنك تتحمل توتر القيود والفوترة.»


مقارنة التكلفة: من يفوز؟

🐣 (الطالب): «من جهة المال، أيهما أفضل؟»

🧙‍♂️ (الأستاذ): «الإجابة تعتمد على الاستخدام والتوقعات. فكّر في مقارنة بين مطعم تقليدي ومطعم سوشي دوّار.»

الخادم التقليدي

  • تكلفة ثابتة: 50,000 ين شهريًا.
  • تكلفة متغيّرة: شبه معدومة.
  • نموذج «وجبة ثابتة».

السرفرلس

  • تكلفة ثابتة: شبه صفرية.
  • تكلفة متغيّرة: حسب الاستخدام.
  • نموذج «سوشي دوّار» تدفع فيه لكل طبق.

🐣 (الطالب): «إذن يعتمد على الشهية.»

🧙‍♂️ (الأستاذ): «بالضبط. إذا كان لدينا أقل من مليون طلب شهريًا فالسرفرلس أرخص. فوق عشرة ملايين قد يصبح الخادم التقليدي أفضل. وفي المنطقة الرمادية نأخذ في الحسبان تكلفة التشغيل.»

🐣 (الطالب): «وماذا لو أخطأنا في التوقع؟»

🧙‍♂️ (الأستاذ): «هنا يدخل عنصر القمار. قد تتهيأ لوجبة خفيفة في السوشي فتجد نفسك في مسابقة أكل. أو تحجز مطعمًا تقليديًا ثم لا يأتي الزبائن.»


هل سينتصر السرفرلس؟

🐣 (الطالب): «في النهاية، هل سيفوز السرفرلس أم يفشل؟»

🧙‍♂️ (الأستاذ): «لا يوجد انتصار كامل ولا هزيمة مطلقة. الخوادم التقليدية والحاويات والسرفرلس سيتعايشون، لكلٍ مجاله. العالم يحتاج إلى الفرسان والنينجا والسحرة جميعًا.»

🐣 (الطالب): «إذن لا حل واحد سحري.»

🧙‍♂️ (الأستاذ): «بالضبط. لا توجد «رصاصة فضية». لكن السرفرلس أداة قوية إذا فهمناها.»

🐣 (الطالب): «من تناسب هذه الأداة؟»

🧙‍♂️ (الأستاذ): «لنرَ.»

من يناسبه السرفرلس

  • من يريد إصدار نموذج أولي بسرعة.
  • من يفهم حسابات التكلفة.
  • من يفضّل الراحة على السيطرة التامة.
  • من يتحمس للتقنيات الجديدة.

من لا يناسبه السرفرلس

  • من يريد إدارة كل شيء بنفسه.
  • من يواجه صعوبة في إدارة الميزانية.
  • من يقدّس الاستقرار فوق كل شيء.
  • من يرتبط بالأنظمة القديمة ولا يستطيع فك الارتباط.

🐣 (الطالب): «أشبه بشخص مبتكر ومقتصد في الوقت نفسه.»

🧙‍♂️ (الأستاذ): «وصف بليغ. تجمع بين الشغف بالابتكار وروح الترشيد.»


خاتمة: السرفرلس أسلوب حياة

🐣 (الطالب): «هل تنصحني بالسرفرلس إذًا؟»

🧙‍♂️ (الأستاذ): «لن أقول «اعتمدْه بلا تفكير»، بل «افهمه قبل تبنيه». السرفرلس تعويذة معاصرة فيها إغراء الراحة وواقع المخاطر.»

🐣 (الطالب): «والتعويذة إن أسيء استخدامها ترتد على الساحر.»

🧙‍♂️ (الأستاذ): «بالضبط. السرفرلس يفيد العقول المخططة ويعاقب الإهمال. هو طريق لمن يفضّل شحذ الذكاء على استعراض القوة العضلية.»

🐣 (الطالب): «إذن لدينا خياران:»

  • «إدارة الخادم: تدريب قاسٍ يعتمد على القوة.»
  • «السرفرلس: صراع يعتمد على الحكمة وإدارة الفواتير.»

🧙‍♂️ (الأستاذ): «أحسنت. الاختيار يتوقف على حالتك. لكن لا يمكنك تجاهل القرار؛ على مهندس اليوم أن يختار دوره: فارسًا أم نينجا أم ساحرًا.»

🐣 (الطالب): «سأبدأ بالأساسيات، ثم أستدعي النينجا عندما أكون جاهزًا.»

🧙‍♂️ (الأستاذ): «مع هذا النهج ستصبح «مروّض نينجا» بارعًا. فقط لا تنسَ إعداد تنبيه الفوترة.»

🐣 (الطالب): «أجل! أول ما سأفعله هو ضبط التنبيهات.»


📌 ملاحظة ختامية: إطار اتخاذ قرار اعتماد السرفرلس

لتقرير ما إذا كان السرفرلس مناسبًا، قيّم العناصر التالية:

عوامل تقنية

  • طبيعة المعالجة (دُفعات أم وقت حقيقي).
  • تواتر التنفيذ (قليل أم كثير).
  • مدى الحاجة إلى إدارة الحالة.
  • درجة التكامل مع الأنظمة القديمة.

عوامل تجارية

  • الميزانية المبدئية المتاحة.
  • مهارات فريق التشغيل.
  • يقين توقعات النمو.
  • درجة تقبّل الإقفال على مزوّد واحد.

الخلاصة: السرفرلس ليس حلًا شاملًا، بل تقنية متخصصة تتطلب فهمًا عميقًا واستعدادًا. إذا استُخدم بوعي صار سلاحًا قويًا، وإذا اعتمدناه بلا ضوابط تحوّل إلى فاتورة موجعة.