لما يكون الحل سطر كود مش سيرفرات جديدة.. قصة الـ 60% توفير 📉💰

​بتذكر مرة انطلب مني أدخل على نظام “ترافيك” عليه بالملايين، والمهمة كانت واضحة: “يا أبو عمر، بدنا نطور البنية التحتية ونعمل Horizontal Scaling محترم، عشان لما تيجي موجة الإشعارات (Push Notifications) نرفع السيرفرات، ولما تهدا الأمور ننزلها”.

​بيني وبينكم؟ قلت لحالي “يا سلام! حلوة ولعبتي”

​شمرت وبلشت.. وكأي بداية صحيحة، قبل ما أضيف سيرفر واحد، قلت خليني أحلل “الاستهلاك الحالي”. وين الرايح ووين الجاي؟

​وهين كانت الصدمة! 😲

لقيت إنه الديزاين الحالي بزيادة، والانيل من هيك إنه مش مستغل! في فائض بنسبة 80% من الموارد والسيرفرات “متكية على قولة السعوديين”، ومع ذلك النظام بوقع وقت الذروة!

​قلت يا ولد، ارجع بالزمن لورا وشوف الكود اللي شايل هالمشروع (Laravel).

نظرياً، السيناريو بسيط:

بيوصل الريكويست -> بناخد التوكن -> بنرميه في الـ Queue -> والـ Load Balancer بيوزع.

المفروض إن الريكويست ياخد “أجزاء من الثانية” لأنه بس بيسلم وظيفة ويمشي.

​بس اللي شفته كان “عنق زجاجة” غريب.


الموضوع استفزني 😡، طلبت اجتماع مع المبرمج المسؤول:

​”يا بشمهندس، ليه بيحصل Query على الداتابيز أصلاً طالما إحنا بس بدنا نمرر التوكن للكيو؟”

​المبرمج: “المفروض ما يحصلش”.

​وأنا بصراحة، كلمة “المفروض” هاي بتعملي حساسية، خصوصاً من حبايبنا جماعة الـ Frameworks.


​رحت فتحت الكود، وهون لقيت “مربط الفرس”.

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


​الخطأ القاتل:
كانوا بيجيبوا التوكن عن طريق كائن اليوزر من الريكويست. وهاد السطر عشان يشتغل، لازم لارافيل تروح تفحص الداتابيز وتتأكد إن اليوزر موجود ومسموح له!

الحل:
يا جماعة، إحنا بمرحلة الاستقبال ما بدنا نتحقق، بدنا بس “نستلم”. التحقق خليه للـ Worker بالخلفية.

الحل كان استخدام دالة بتقرأ من الـ Header مباشرة بدون ما “تزن” على الداتابيز


بعتت إيميل بالتوصية بتغيير الدالة.


لما جربوا.. انصدموا! الـ Latency نزل للأرض، والداتابيز تنفست.

مش بس هيك، وفرنا بالفاتورة الشهرية 60% لإنه اكتشفنا إن عدد الـ Instances الحالي ملوش أي داعي.


​الخلاصة يا شباب..

وخصوصاً لحبايبنا جماعة الـ Back-end وعشاق Laravel..
مش كل الطرق بتؤدي ل روما بالبرمجة. لو بتفكر تشتغل على Scale عالي، لازم زي ما بنقول بالمصري “تاخدها من تحت”.


​من 15 سنة، لما كنا نبني بـ Native PHP MVC بإيدينا، كنا نكتب كود بياخد وقت أطول، صح.. بس كنا فاهمين الـ Cycle من الألف للياء، وكنا نطلع بـ Performance ورعب في الأداء.

​أنا ما بنكر قوة الـ Frameworks، هي نعمة.. بس لما تتعلم، اتعلم صح، افهم شو بيصير جوا “الصندوق الأسود” قبل ما تعتمده.

ومع كده انا بحب الي بشتغلو لارفل 💕

أبو عمر

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

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

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

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

آخر المدونات

برمجة وقواعد بيانات

تحديثات قاعدة البيانات بدون توقف: كيف أنقذنا نمط التوسيع والتعاقد (Expand/Contract) من جحيم التوقفات المجدولة؟

هل سئمت من إيقاف الخدمة مع كل تحديث لهيكلة قاعدة البيانات؟ أشارككم قصة حقيقية وكيف أنقذنا نمط التوسيع والتعاقد (Expand/Contract) من ليالي النشر الطويلة والمُجهدة،...

4 يونيو، 2026 قراءة المزيد
الشبكات والـ APIs

كانت إعادة المحاولة كارثة: كيف أنقذتنا مفاتيح عدم تكرار العمليات (Idempotency Keys) من جحيم الفواتير المزدوجة؟

أشارككم قصة حقيقية من الخنادق البرمجية، يوم كاد خطأ بسيط في إعادة محاولة طلبات الدفع أن يكلفنا سمعتنا وأموال عملائنا. اكتشفوا معنا كيف كانت مفاتيح...

4 يونيو، 2026 قراءة المزيد
الحوسبة السحابية

من التوقف التام إلى النجاة: كيف أنقذتنا استراتيجية “الضوء المرشد” (Pilot Light) يوم انقطعت السحابة؟

أتذكر ذلك اليوم جيدًا، فنجان القهوة الصباحي، وصوت تنبيهات المراقبة يصرخ كأنه يوم القيامة. كانت منطقة سحابية كاملة قد توقفت عن العمل، لكن بفضل استراتيجية...

4 يونيو، 2026 قراءة المزيد
التوظيف وبناء الهوية التقنية

كانت مهمتي البرمجية للاختبار مجرد كود: كيف أنقذني توثيق القرارات من جحيم الصمت بعد المقابلة؟

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

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

من الانتظار لأيام إلى الدفع في ثوانٍ: كيف أنقذتنا شبكات الدفع الفوري من جحيم التحويلات البنكية؟

أسرد لكم من واقع تجربتي كـ "أبو عمر"، كيف عانينا من بطء وتكلفة التحويلات البنكية الدولية، وكيف جاءت شبكات الدفع الفوري ومعيار ISO 20022 لتكون...

4 يونيو، 2026 قراءة المزيد
البنية التحتية وإدارة السيرفرات

كان كل خادم لدينا ‘ندفة ثلج’ فريدة: كيف أنقذنا ‘الكود كبنية تحتية’ (IaC) من جحيم الانجراف اليدوي؟

في هذه المقالة، أشارككم قصة حقيقية من قلب المعركة التقنية مع "خوادم ندفات الثلج" الفوضوية. سنغوص في مفهوم "الكود كبنية تحتية" (IaC) وكيف أن أدوات...

4 يونيو، 2026 قراءة المزيد
اختبارات الاداء والجودة

كانت تغطية الاختبارات 100% لكن الأخطاء تتسرب: كيف أنقذنا “الاختبار الطفري” من جحيم الثقة الزائفة؟

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

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