الدرس 0: لماذا نحتاج أصلاً إلى فهم النظام والشبكة؟
موقعك يعمل بشكل مثالي على حاسوبك المحمول — ثم يُبلغ المستخدمون أنه غير قابل للوصول إطلاقاً. لا توجد رسالة خطأ في الشيفرة، ولا stack trace لتنظر إليه. هذه ليست علة في دالة كتبتها — إنها إخفاق في الطبقة الواقعة تحت الشيفرة: كيف يشغّل النظام خدمتك، وكيف تجد الأجهزة بعضها بعضاً وتتخاطب عبر الشبكة أصلاً.
عندما يتعطل شيء ما على الخادم، لن تخبرك الشيفرة وحدها بالسبب — عليك أن تنظر تحت الغطاء، إلى النظام والشبكة.
- حادثة في بيئة الإنتاج (Production incident)
- حدث تتوقف فيه خدمة حية عن العمل أو تتباطأ لدى مستخدمين حقيقيين — لا مجرد إخفاق في بيئة تطوير.
- السبب الجذري (Root cause)
- السبب الحقيقي الذي أدى إلى وقوع الإخفاق، بخلاف العَرَض الخارجي الذي تلاحظه أولاً.
- الأجزاء الداخلية لنظام التشغيل (OS internals)
- الطريقة التي تدير بها النواة العمليات والذاكرة والملفات تحت كل برنامج يعمل على الجهاز.
- إمكانية الوصول عبر الشبكة (Network reachability)
- مسألة ما إذا كان بإمكان جهاز الوصول إلى جهاز آخر عبر الشبكة أصلاً، حتى قبل الحديث عمّا يعمل عليه.
- التصحيح على مستوى الأنظمة (Systems-level debugging)
- تشخيص الإخفاقات باستخدام أدوات تكشف ما يحدث فعلياً في النواة والشبكة، وليس في شيفرة التطبيق فقط.