تحديد العقدة العنق قبل وصول حركة المرور
مركزية العبور
لكل زوج من العقد في الرسم البياني، يوجد مسار أقصر بينهما. مركزية العبور للعقدة N = نسبة جميع المسارات الأقصر التي تمر عبر N.
العقدة ذات المركزية العالية تقع على المسار بين العديد من الأزواج الأخرى. إذا تباطأت، تتباطأ العديد من التدفقات. إذا فشلت، تنكسر العديد من التدفقات.
القراءة المعمارية: العقد ذات المركزية العالية هي تلك التي يجب أن توليها كل مراجعة معمارية اهتمامًا خاصًا. فهي عنق زجاجة، ونقطة فشل مفردة (SPOF)، ومكونات حرجة من حيث السعة في آنٍ واحد. تميل إلى أن تكون:
- مزوّد نظام أسماء النطاقات (DNS) (بين كل عميل وكل خدمة)
- وكيل الدخول (Ingress Proxy) (بين كل عميل وكل خادم خلفي)
- قاعدة البيانات الأولية (بين كل خادم خلفي وكل عملية قراءة)
- خدمة المصادقة (بين كل مستخدم وكل إجراء مصرح به)
الكشف دون القياس: بنية الرسم البياني وحدها تحدد العقد ذات المركزية العالية. لا تحتاج إلى بيانات حركة المرور؛ بل تحتاج إلى مخطط البنية المعمارية. العقدة التي تقع بين العديد من الأزواج الأخرى هي حرجة من الناحية الهيكلية.
النتيجة التشغيلية: تستحق العقد ذات المركزية العالية استثمارًا غير متناسب في (1) سعة الاحتياط، (2) التكرارية (Redundancy)، (3) القابلية للمراقبة، و (4) أدلة الاستجابة للحوادث.
أصغر قطع يعزل أصغر شريحة
نظرية القطع الأدنى (Min-Cut) بلغة بسيطة
القطع الأدنى (min-cut) بين عقدين في رسم بياني = أصغر عدد من الحواف (أو العقد) التي يجب إزالتها لفصلهما.
القراءة التشغيلية: يحدّ القطع الأدنى من نصف قطر الانفجار (blast radius) في أسوأ الحالات. إذا كان القطع الأدنى بين 'العملاء' و'قاعدة البيانات' هو حافة واحدة (وكيل واحد)، فإن فقدان تلك الحافة يفصل جميع العملاء عن قاعدة البيانات. أما إذا كان القطع الأدنى هو 5، فستحتاج إلى فقدان 5 مكونات في آنٍ واحد لفصلها بالكامل؛ حظ سيئ، لكنه محدد الحد.
التصميم من أجل نصف قطر الانفجار: زد القطع الأدنى عند كل حدّ مهم. وكلاء متعددون؛ عقد تخزين مؤقت متعددة؛ مسارات شبكة متعددة بين مراكز البيانات. كل إضافة ترفع القطع الأدنى بمقدار 1.
نمط السدود (Bulkhead) بلغة الرسوم البيانية: قسّم الموارد إلى رسوم بيانية فرعية منفصلة لا تشترك في أي قطع أدنى مع بعضها البعض. لا يمكن لفشل داخل رسم بياني فرعي واحد أن ينتقل إلى الآخرين لأن الحواف غير موجودة.
القطر يحدد مسافة انتشار الفشل
قطر الرسم البياني = أطول مسار أقصر بين أي عقدين.
انتشار الفشل: عندما تفشل عقدة وتعود محاولات إعادة المحاولة (retries) إلى الوراء، فإنها تلامس العقد العلوية (upstream) حتى مسافة القطر. نظام بقطر 3 (عميل -> وكيل -> خادم خلفي -> قاعدة بيانات) يعني أن فشل قاعدة البيانات يؤثر على 3 طبقات علوية في عاصفة إعادة المحاولة.
التأثير: القطر الأقصر = احتواء أسرع للفشل، لكنه أيضاً يعني تركيزاً أكبر للعقد. لكل تصميم ميزاته وعيوبه.
حساب القطع الأدنى (Min-Cut) لعمارة حقيقية
عمارة: خادم DNS واحد، وشبكة توصيل محتوى (CDN) واحدة، و3 وكلاء عكسيين (Reverse Proxies)، و12 نسخة خلفية (Backend Replicas)، و1 قاعدة بيانات رئيسية.
تدقيق أوضاع الفشل عبر مقاييس الرسم البياني
التوليف
يمكنك الآن تحديد العقد ذات الوسيطية العالية، وحساب القطع الأدنى (min-cut) عند كل حدّ، وتقدير مسافة انتشار العطل عبر القطر.
طبّق جميع المقاييس الثلاثة.
نظام: 50 نقطة نهاية للعملاء -> 1 خادم DNS -> 2 نقاط وجود CDN -> 4 وكلاء عكسيين -> 16 نسخة خلفية -> { مجموعة قواعد بيانات (1 أساسي + 2 احتياطي)، مجموعة Redis (5 عقد)، 3 واجهات برمجة تطبيقات خارجية }.
ملاحظات مرافقة
ملاحظات مرافقة
يعيد درس الهندسة هذا صياغة الدرس الرئيسي أوضاع الفشل ونصف قطر الانفجار من خلال مقاييس الرسم البياني (الوسطية، القطع الأدنى، القطر).
يتعامل المرافق الأخير، geometry_of_observability_and_capacity، مع خلايا فوريونيه (Voronoi cells) لمناطق تغطية نقاط الحضور (PoP) في شبكة التوزيع (CDN)، وسقف سرعة الضوء في مثلث الكمون، ومنحنى الطابور (Queueing curve) المُعاد زيارته على مستوى الوكيل (Proxy tier).
أحسنت.