أساسيات التوسّع: Latency وThroughput وSLOs
في هذا الدرس نتعلّم كيف نقدّر بالأرقام مدى "ضخامة" النظام المطلوب. سنتمرّن على تقدير السعة (capacity — مقدار الحِمل الذي يجب أن يتحمّله النظام)، وQPS (queries per second — كم طلبًا يصل في كل ثانية). سنحسب حجم التخزين المطلوب ومقدار الـ bandwidth (عرض النطاق — كمية البيانات المتدفّقة في كل لحظة، مثل
System Design (تصميم الأنظمة) أشبه بتخطيط مدينة كاملة: طرق تنقل حركة المرور، ومخازن تحفظ الأشياء، وإشارات مرور تنظّم التدفّق، وفرق صيانة تصلح الأعطال — كل ذلك كي تستمر المدينة في العمل بسلاسة حتى في ساعة الذروة، حين يخرج الجميع دفعة واحدة.
- السعة وSLOs
- المهارة الأساسية في هذا الدرس: تقدير حجم النظام بالأرقام — السعة (capacity — مقدار الحِمل الذي يتحمّله)، وQPS (طلبات في الثانية)، وحجم التخزين المطلوب، ومقدار الـ bandwidth (كمية البيانات المتدفّقة)، وSLOs (service level objectives، وعدنا بشأن التوافر أو السرعة). حساب تقريبي مسبق يساعدك على التخطيط الصحيح.
- Trade-off
- اختيار واعٍ بين خيارين، لكل منهما ميزة لكن أيضًا ثمن. لا يوجد حل مثالي — تختار ما يناسب، وتشرح للمُحاوِر ما تكسبه وما تتنازل عنه. مثل الاختيار بين مسار سريع ومكلف ومسار رخيص وبطيء.
- مقياس تشغيلي
- رقم يمكنك قياسه لتعرف إن كان القرار يعمل فعلًا بعدما يصبح النظام حيًّا ويخدم مستخدمين حقيقيين (production). مثلًا: latency (كم يستغرق رجوع الرد)، وerror rate (نسبة الطلبات التي تفشل)، وqueue lag (كم مهمة تنتظر في الطابور)، وcache hit ratio (كم مرة وجدنا الإجابة جاهزة في مخزن مؤقت سريع)، وغير ذلك.