تطبيقي كان خاملاً 99% من الوقت… لكنني كنت أدفع ثمن سيرفر كامل: كيف أنقذتني الحوسبة الخادومية (Serverless) من هدر الموارد؟

يا جماعة الخير، السلام عليكم ورحمة الله.

قبل كم سنة، كنت قاعد في مكتبي الصغير، بشرب كاسة شاي بالمرمية وبقلّب في فواتير آخر الشهر. كان عندي تطبيق صغير عملته، أداة بسيطة بتساعد المصممين على تحويل صيغ معينة من ملفات التصميم. التطبيق كان فكرته حلوة، وبخدم شريحة معينة، بس استخدامه كان متقطع جداً. يعني ممكن يمر يوم كامل ما حدا يستخدمه، وفجأة في ساعة وحدة ييجيه عشرين طلب.

المشكلة ما كانت في التطبيق نفسه، المشكلة كانت في فاتورة السيرفر الشهرية اللي بتوصلني. كنت حاجز سيرفر افتراضي (VPS) متواضع، مش إشي خارق، بس كنت بدفع عليه مبلغ ثابت كل شهر، سواء حدا استخدم التطبيق أو لأ. كنت حاسس حالي زي اللي مستأجر محل كبير وفاتحه 24 ساعة عشان يبيع غرض واحد في اليوم. إحساس بالهدر مش طبيعي، مصاري بتنكب عالفاضي، وموارد أنا مش مستفيد منها.

وقتها، كنت بسمع مصطلح “Serverless” أو “الحوسبة الخادومية” من بعيد لبعيد، وكنت مفكره موضة تقنية جديدة ورح تروح لحالها. بس لما زاد وجع الفاتورة، قررت أعطي الموضوع فرصة وأقرأ عنه بجدية. وهون كانت نقطة التحول… خلوني أحكيلكم كيف هالتكنولوجيا أنقذتني من هدر الموارد وخلتني أركز على اللي بحبه: كتابة الكود.

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

قبل ما نغوص في عالم الـ Serverless، خلينا نفهم المشكلة الأساسية مع النموذج التقليدي. لما تبني تطبيق، أنت بحاجة لمكان تشغّله عليه، وهذا المكان هو “السيرفر”. في العادة، عندك خيارات مثل:

  • السيرفرات المخصصة (Dedicated Servers): جهاز كامل إلك، قوة كبيرة بس تكلفة أعلى وإدارة معقدة.
  • السيرفرات الافتراضية الخاصة (VPS): جزء من سيرفر مخصص، مرونة جيدة وتكلفة أقل. وهذا اللي كنت بستخدمه.
  • منصات الحوسبة السحابية (مثل AWS EC2, Azure VMs): بتعطيك سيرفرات افتراضية مرنة جداً، بس بتضل الفكرة نفسها: أنت بتحجز “آلة” وبتحاسب عليها بالساعة أو بالشهر.

المشكلة المشتركة في كل هدول، وخصوصاً للمشاريع الصغيرة أو اللي عليها استخدام متقلب، هي إنك تدفع مقابل الوقت، وليس مقابل الاستخدام الفعلي. السيرفر شغال 24/7، سواء كان بيستقبل ألف طلب في الدقيقة أو كان “صافن في السقف” ما بيعمل إشي. وهذا هو تعريف هدر الموارد بعينه.

الـ “Serverless”: الحل الذي لم أكن أعرف أنني أحتاجه

كلمة “Serverless” أو “بدون خوادم” هي تسمية مضللة شوي. أكيد في خوادم بالموضوع! بس الفكرة إنه أنت كمطور ما بتتعامل معها نهائياً. ما في داعي تختار نظام تشغيل، ولا تحدث برامج، ولا تقلق من الحماية، ولا تفكر في حجم الرام والمعالج.

ببساطة شديدة، الحوسبة الخادومية هي نموذج بتكتب فيه الكود تبعك على شكل “وظائف” (Functions) صغيرة ومستقلة. وبدل ما تشغّل سيرفر عشان يستنى حدا يطلب هاي الوظيفة، أنت بترفعها على منصة سحابية (مثل AWS Lambda أو Azure Functions). المنصة هاي بتتكفل بكل شيء:

  1. لما يوصل طلب (مثلاً، حدا ضغط على زر في تطبيقك)، المنصة بتصحّي الوظيفة تبعتك.
  2. بتشغّل الكود وبتعطيه الموارد اللازمة.
  3. بعد ما يخلص الكود ويرجع النتيجة، المنصة بتطفي كل إشي.

والأهم من كل هاد؟ أنت بتدفع فقط على عدد المللي ثانية (Milliseconds) اللي اشتغل فيها الكود تبعك! إذا ما حدا استخدم تطبيقك، ما بتدفع ولا قرش. بالزبط زي فاتورة الكهرباء، بتدفع على قد ما بتستهلك.

كيف حوّلت تطبيقي “الكسلان” إلى آلة فعّالة وموفرة؟

لما فهمت المبدأ، تحمست جداً. قررت أحوّل تطبيقي الصغير من سيرفر VPS إلى بنية Serverless على AWS Lambda. العملية كانت أسهل مما توقعت.

الخطوة الأولى: تفكيك التطبيق لوظائف (Functions)

تطبيقي كان بسيط، عبارة عن واجهة برمجية (API) فيها نقطة وصول (endpoint) واحدة. المستخدم بيرفع ملف، الكود بيعمل عليه شوية معالجة، وبرجعله رابط لملف جديد.

هذا معناه إني بحاجة لوظيفة (Function) واحدة بس. هاي الوظيفة بتستقبل طلب HTTP POST فيه الملف، وبتنفذ منطق المعالجة.

الخطوة الثانية: كتابة أول دالة لامدا (AWS Lambda)

أنا بشتغل كثير بلغة بايثون، فكتبت الوظيفة تبعتي ببايثون. الكود كان شبه مطابق للكود اللي كان شغال على السيرفر، مع شوية تعديلات بسيطة عشان يتناسب مع بيئة Lambda.

هاي نسخة مبسطة جداً من الكود عشان توصل الفكرة:


import json

# هاي هي الوظيفة الأساسية اللي بتستدعيها AWS Lambda
def lambda_handler(event, context):
    """
    وظيفة لامدا بسيطة بتستقبل اسم وبترجع رسالة ترحيب.
    """
    
    # الـ "event" هو قاموس (dictionary) فيه كل معلومات الطلب
    # مثلاً، لو الطلب جاي من API Gateway، بنلاقي الـ body جواته
    print("تم استدعاء الوظيفة!")
    
    try:
        # بنحاول نقرأ الجسم تبع الطلب ونحوله من نص JSON لكائن بايثون
        body = json.loads(event.get('body', '{}'))
        name = body.get('name', 'يا حبيبنا')
    except:
        name = 'يا طيب'

    message = f"أهلاً وسهلاً فيك يا {name} من عالم الـ Serverless!"
    
    # لازم نرجع استجابة بصيغة معينة عشان الـ API Gateway يفهمها
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*' # للسماح بالطلبات من أي مكان
        },
        'body': json.dumps({'message': message})
    }

لاحظوا بساطة الكود. ما في أي إشي إله علاقة بالسيرفرات أو الشبكات. مجرد وظيفة بتستقبل مدخلات (event) وبترجع مخرجات. هذا هو جوهر الـ Serverless.

الخطوة الثالثة: ربط كل شيء معاً

بعد ما كتبت الكود، رفعت وظيفة الـ Lambda على حسابي في AWS. الخطوة الأخيرة كانت إني أربطها مع خدمة اسمها Amazon API Gateway. هاي الخدمة بتعطيني رابط (URL) عام على الإنترنت. أي حدا بيبعت طلب HTTP على هذا الرابط، الـ API Gateway بشكل تلقائي بستدعي وظيفة الـ Lambda تبعتي وبمرر إلها الطلب.

وهيك، صار عندي API كامل شغال بدون سيرفر واحد أديره!

النتائج على أرض الواقع: الأرقام لا تكذب! 😮

بعد ما نقلت التطبيق، راقبت الفواتير للشهر اللي بعده. النتيجة كانت صادمة (بشكل إيجابي جداً):

  • التكلفة قبل (VPS): حوالي 20$ شهرياً، ثابتة.
  • التكلفة بعد (AWS Lambda + API Gateway): أول شهر كانت الفاتورة 0.00$!

ليش صفر؟ لأنه AWS بتعطي طبقة مجانية (Free Tier) سخية جداً لخدمة Lambda و API Gateway. بتعطيك مليون طلب ومليون استدعاء مجاني كل شهر. تطبيقي الصغير ما كان يوصل حتى لـ 1% من هاي الحصة المجانية. حتى لو تجاوزت الحصة المجانية، التكلفة كانت رح تكون سنتات قليلة جداً.

مش بس التكلفة، أنا ارتحت من هم كبير:

  • لا مزيد من التحديثات الأمنية: ما عدت أقلق من تحديث نظام التشغيل أو المكتبات. AWS بتتولى كل هاد.
  • توسع تلقائي (Auto-scaling): لو فجأة صار على تطبيقي ضغط كبير وأجاني 1000 طلب في نفس الثانية، Lambda بتشغل 1000 نسخة من الكود تبعي بشكل متوازي بدون أي تدخل مني.
  • التركيز على المهم: صرت أقضي كل وقتي في تحسين الكود وإضافة ميزات جديدة، بدل ما أضيعه في إدارة البنية التحتية.

هل الـ Serverless هو الحل السحري لكل شيء؟ (Spoiler: لا)

رغم كل هالحماس، مهم نكون واقعيين. الـ Serverless مش حل مناسب لكل أنواع التطبيقات. من خبرتي، هاي أفضل حالات الاستخدام:

حالات استخدام مثالية للـ Serverless

  • الواجهات البرمجية (APIs): خصوصاً اللي عليها استخدام متقلب أو غير متوقع.
  • مهام الخلفية (Background Jobs): مثل معالجة الصور بعد رفعها، إرسال إيميلات، تحليل بيانات.
  • تطبيقات الـ “胶水” (Glue Code): كود بسيط بيربط بين خدمات سحابية مختلفة. مثلاً، وظيفة Lambda بتشتغل لما ينضاف ملف جديد على S3 وبتحفظ معلومات عنه في قاعدة بيانات DynamoDB.
  • روبوتات الدردشة (Chatbots) والمساعدات الصوتية.

متى يجب أن تفكر مرتين؟

  • التطبيقات ذات الحمل الثابت والعالي: لو عندك تطبيق بيستقبل عدد ضخم وثابت من الطلبات 24/7، ممكن حجز سيرفر مخصص يكون أرخص على المدى الطويل.
  • المهام طويلة الأمد: وظائف Lambda الها حد أقصى للتشغيل (حالياً 15 دقيقة). لو عندك مهمة بتحتاج ساعات، الـ Serverless مش الخيار المناسب.
  • مشكلة “البداية الباردة” (Cold Start): أول طلب لوظيفة كانت “نائمة” لفترة طويلة ممكن ياخد وقت أطول بشوي (أجزاء من الثانية أو ثانية) لأنه المنصة بتحتاج تجهز البيئة لتشغيل الكود. هاي المشكلة بتقل مع الاستخدام المستمر وصار في حلول كثيرة الها، بس لازم تكون على علم فيها.

نصائح عملية من دفتر أبو عمر

“فكّر بالوظائف، مش بالسيرفرات.” هذا هو التحول الذهني الأهم اللي لازم تعمله لما تنتقل لعالم الـ Serverless.

  • ابدأ صغيراً: لا تحاول تحويل تطبيقك الضخم كله مرة واحدة. اختار جزء صغير وغير حرج من النظام، مثل وظيفة إرسال إشعارات، وحوّلها لـ Serverless. شوف النتائج وتعلم من التجربة.
  • استخدم أطر العمل (Frameworks): أدوات مثل Serverless Framework أو AWS SAM بتسهل عليك عملية بناء ونشر وإدارة تطبيقات الـ Serverless بشكل كبير جداً. بتخليك تكتب كل إعدادات البنية التحتية في ملف واحد.
  • راقب وظائفك: استخدم أدوات مثل Amazon CloudWatch لمراقبة أداء وظائفك، كم مرة تم استدعاؤها، كم استهلكت وقت، وهل في أخطاء أو لأ. المراقبة هي عينك اللي بتشوف فيها صحة تطبيقك.
  • افهم التسعير جيداً: رغم إنه رخيص جداً، لازم تفهم كيف بتنحسب التكلفة (عدد الاستدعاءات + مدة التشغيل بالمللي ثانية + حجم الذاكرة المحجوزة) عشان ما تتفاجأ.

الخلاصة: ركز على الكود، ودع الباقي للسحابة

تجربتي مع الحوسبة الخادومية كانت أكثر من مجرد توفير للمال. كانت تحول في طريقة تفكيري كمهندس برمجيات. بدل ما أكون “مدير سيرفرات” نص الوقت، صرت أركز 100% من وقتي على بناء قيمة حقيقية للمستخدم من خلال الكود.

إذا كان عندك مشروع جانبي، أو تطبيق صغير، أو حتى جزء من نظام كبير استخدامه متقطع، أنا بنصحك بشدة تلقي نظرة على عالم الـ Serverless. رح تتفاجأ من كمية الوقت والمال والجهد اللي رح توفره.

جربوها، ومش رح تندموا. ويلا، شدوا حيلكم يا شباب! 💪

أبو عمر

سجل دخولك لعمل نقاش تفاعلي

كافة المحادثات خاصة ولا يتم عرضها على الموقع نهائياً

آراء من النقاشات

لا توجد آراء منشورة بعد. كن أول من يشارك رأيه!

آخر المدونات

التوسع والأداء العالي والأحمال

طلبات المستخدمين كانت تضيع أثناء الذروة: كيف أنقذتني طوابير الرسائل (Message Queues) من فقدان البيانات؟

أشارككم قصة حقيقية من أرض المعركة، يوم كاد نظامنا أن ينهار تحت ضغط المستخدمين، وكيف كانت طوابير الرسائل (Message Queues) هي طوق النجاة الذي أنقذنا...

21 مارس، 2026 قراءة المزيد
صورة المقال
التكنلوجيا المالية Fintech

نظام مكافحة غسيل الأموال كان يطلق إنذارات على كل فنجان قهوة: كيف استخدمتُ نماذج الكشف عن الشذوذ (Anomaly Detection) للتركيز على المخاطر الحقيقية؟

أشارككم قصة حقيقية من مسيرتي كمطور ذكاء اصطناعي، حين كان نظام مكافحة غسيل أموال يغرق فريق الامتثال بإنذارات كاذبة على كل معاملة بسيطة. سأشرح لكم...

20 مارس، 2026 قراءة المزيد
أتمتة العمليات

وظائف Cron كانت شبكة عنكبوت صامتة: كيف أنقذتني محركات تنسيق سير العمل من فوضى المهام المجدولة؟

أشارككم قصتي مع الفوضى التي سببتها مهام Cron المجدولة وكيف كانت بمثابة شبكة عنكبوت صامتة كادت أن تدمر أحد المشاريع. نستكشف معًا كيف أنقذتني أدوات...

19 مارس، 2026 قراءة المزيد
​معمارية البرمجيات

تغيير قاعدة البيانات كان يتطلب إعادة كتابة نصف التطبيق: كيف أنقذتني ‘المعمارية النظيفة’ (Clean Architecture) من هذا الكابوس؟

أشارككم قصة حقيقية من مسيرتي كمبرمج، حيث كاد قرار تغيير قاعدة البيانات أن يدمر مشروعًا بالكامل. سأشرح لكم كيف أنقذتني مبادئ "المعمارية النظيفة" (Clean Architecture)...

19 مارس، 2026 قراءة المزيد
تجربة المستخدم والابداع البصري

كل زر بلون مختلف وكل أيقونة بقصة: كيف أنقذني ‘نظام التصميم’ (Design System) من فوضى الواجهات؟

أشارككم قصة من قلب المعركة، كيف انتقلنا من فوضى الألوان والأزرار المتضاربة في مشاريعنا إلى التناغم والكفاءة. هذه المقالة هي دليلك العملي لفهم وبناء "نظام...

18 مارس، 2026 قراءة المزيد
البودكاست