إنقاذ سوق إلكتروني SSR عالي الحركة
الصفحات كانت تفشل بشكل متقطع، والذاكرة ترتفع حتى يموت الخادم — وإعادة التشغيل أصبحت أسلوب التأقلم. هكذا أُصلح الأمر.
- مدة العمل
- نحو 10 أشهر، مستمر
- الدور
- تثبيت الإنتاج والواجهة الأمامية
- الحجم
- سوق إنتاج عالي الحركة
المشكلة
سوق إلكتروني كبير كان يفشل في الإنتاج — وفي الإنتاج فقط. الصفحات تُرجع أخطاء بشكل متقطع، والذاكرة ترتفع باطراد حتى يموت الخادم، ولم يستطع أحد تتبّع السبب. الحل المؤقت للفريق كان إعادة تشغيل الخوادم قبل انهيارها.
تسريبٌ لا يمكن إعادة إنتاجه محلياً لا يظهر في مراجعة الكود. يظهر في الثانية فجراً، تحت حركة حقيقية، على هيئة خادم ميت.
ما قمت به
أربعة أجزاء من العمل، بالترتيب الذي فرضته المخاطر:
تشخيص تسريب الذاكرة
تحليل أداء التطبيق تحت حركة تحاكي الإنتاج، ومقارنة لقطات الذاكرة عبر الزمن، وعزل مسار الكود الذي أبقى المراجع حية. ثم إزالته — لا الالتفاف حوله.
تثبيت الـSSR تحت حركة حقيقية
عزل أخطاء العرض بحيث لا تُسقط صفحة فاشلة واحدة العملية كلها، وتنظيف أنماط الفشل التي لا تظهر إلا عندما يضرب آلاف المستخدمين الخادم في آن واحد.
قيادة هجرة خادم خلفي دون توقف
بقيت الواجهة الأمامية تخدم المستخدمين بينما استُبدل الخادم الخلفي تحتها — القديم والجديد يعملان جنباً إلى جنب، مع انتقال تدريجي ومسار تراجع في كل خطوة.
البقاء مسؤولاً عن الاستقرار
لم ينتهِ العمل عند الإصلاح. أمتلك استقرار الإنتاج لهذا التطبيق باستمرار منذ ذلك الحين — ميزات جديدة تصدر دون أن يعود عدم الاستقرار القديم.
النتيجة
الأرقام المهمة هنا هي تلك التي توقفت عن الحدوث:
- استهلاك ذاكرة ثابت — توقفت عمليات إعادة التشغيل الطارئة تماماً.
- اختفت إخفاقات الصفحات المتقطعة، تحت الحركة الحقيقية نفسها التي كانت تسببها.
- اكتملت هجرة الخادم الخلفي دون أي توقف — لم يلحظ المستخدمون شيئاً. العمل ما زال مستمراً منذ نحو 10 أشهر؛ الاستمرارية هي التوصية.
التقنيات
لا إعادة كتابة لإطار العمل ولا انتقال إلى شيء أكثر بريقاً — الإصلاح كان جعل حزمة React/SSR القائمة تتصرف كما يجب تحت الحمل. هذه عادةً هي المهمة: الحزمة سليمة، وسلوك الإنتاج ليس كذلك.
هل يبدو هذا مألوفاً من تطبيقك؟
كل عمل هنا بدأ بالطريقة نفسها: تطبيق يعمل بالفعل، ومشكلة قرر أحدهم التوقف عن التعايش معها. الفحص هو الطريقة منخفضة المخاطر للبدء — وصول للقراءة فقط، تقرير مكتوب، وقائمة إصلاحات مرتبة حسب الأولوية.