محتويات الدورة

جودة DevOps / المتقدم: التحقق التشغيلي والحوكمة / الدرس 16

التحقق من الصمود بإخفاقات مضبوطة

اختبر المهلة والإعادة والتعافي بتجارب اصطناعية محدودة قبل الاعتماد على ادعاءات الصمود.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • عرّف فرضية فشل وشرط سلامة وشرط توقف.
  • تحقق من التعافي وأمان الأثر لا معالجة الخطأ فقط.

حوّل ادعاء الصمود لتجربة

يصف الادعاء السلوك تحت فشل معين كحفظ حجز مؤكد عند مهلة البريد. حدد الوضع المتوقع والشرط والحد والمدة والأثر المسموح والتعافي. ابدأ بمحاكاة خالصة وبيئات مكونات معزولة. يحتاج حقن فعلي أو تجربة إنتاج تفويضاً وضوابط منفصلة ولا ينفذ هنا. تجيب التجربة سؤالاً مهماً لا مجرد إثبات قتل عملية. احمِ سلامة البيانات ونتائج المستخدم عند غياب الاعتماد.

اختبر إعادة محدودة دون انتظار حقيقي

تحتاج السياسة حد محاولات أو وقت وتصنيفاً وتراجعاً ومنع تكرار للأثر. تضخم إعادة كل استثناء التعطل وتكرر الكتابة. احقن اعتماداً لمحاكاة حتمية وفحص الحد. لا يتصل المثال أو ينام ويعيد TransientError التعليمي فقط ويتوقف عند العدد. يعالج العميل الفعلي الإلغاء والتشويش والموعد وإرشاد الخادم بتنفيذه المدعوم.

python مساعد خالص لحد الإعادة
class TransientError(Exception):
    pass

def bounded_call(operation, attempts=3):
    if attempts < 1:
        raise ValueError("INVALID_ATTEMPT_LIMIT")
    for attempt in range(attempts):
        try:
            return operation()
        except TransientError:
            if attempt == attempts - 1:
                raise

الدالة محلية اصطناعية ويحذف المثال التوقيت كي لا ينتظر الاختبار ساعة حقيقية. لا تغلف كتابة فعلية غير مانعة للتكرار دون عقد بعيد لمنع التكرار والتعافي.

تحقق مما يبقى صحيحاً تحت الفشل

لا تكفي استجابة مهلة للصمود. افحص السجلات والطابور وتكرار الأثر والسعة وإعادة المستخدم الآمنة. لا يمحو تعطل البريد حجزاً مثبتاً ولا تعاد كتابة مبهمة بهوية جديدة. اختر شروطاً تعبر الحد. استخدم بديلاً مضبوطاً يوقف بعد التثبيت أو الإقرار وافحص التعافي من النقطة. يفيد ذلك أكثر من فشل عشوائي بلا توقيت مسجل.

تحقق من ميزانية الفشل صراحة

يثبت الاختبار استدعاء بديل يفشل مؤقتاً باستمرار ثلاث مرات قبل الرمي. هو تحقق تفاعل لأن حد الإعادة نفسه العقد. أضف النجاح المباشر وبعد فشل وخطأ دائماً لا يعاد. اجعل الحالة محلية كي لا يغير التوازي العدد. المساعد والاختبار محليان آمنان ولا يمارسان خدمة أو مشرف عملية أو حقن بنية فعلياً.

python اختبار محلي مركز لميزانية الإعادة
import unittest

class RetryBudgetTests(unittest.TestCase):
    def test_transient_failure_stops_at_budget(self):
        calls = []
        def unavailable():
            calls.append("attempt")
            raise TransientError("LAB_UNAVAILABLE")
        with self.assertRaises(TransientError):
            bounded_call(unavailable, attempts=3)
        self.assertEqual(len(calls), 3)

استورد bounded_call وTransientError من المساعد في الملف الفعلي. الرسالة اصطناعية ومتطابقة باللغتين. لا يثبت نجاح الوحدة تطبيق العميل الفعلي السياسة؛ أضف دليل مكوّن للربط.

ضمّن التعافي والرصد والحدود

قد يصمد النظام ثم يعجز عن التعافي لأن الطابور لا يفرغ أو تبقى الدائرة مفتوحة أو تتراكم الموارد. راقب زمن التعافي والعمل والسلامة والاستهلاك بعد النهاية. حدد الإيقاف والمالك قبل التجربة. حد التزامن والحمل كي لا تصبح إجهاداً غير مضبوط. سجل الفرضية والنتيجة والحدود وحول العيوب لحالات حتمية. يقوى الدليل عندما يشرح الفشل والعودة لمهمة سليمة.

الأخطاء الشائعة وإصلاحها

تضخم الإعادات تعطل الاعتماد

لماذا يحدث؟
يعاد كل فشل بلا ميزانية مشتركة.
كيف تصلحه؟
حد المحاولات والوقت وصنف القابل للإعادة.
كيف تتجنب تكراره؟
اختبر تفاعل الإرهاق والإعادة معزولاً.

تكرر المهلة حجزاً

لماذا يحدث؟
تستخدم الإعادة هوية جديدة.
كيف تصلحه؟
احفظ الهوية وتحقق من منع التكرار البعيد.
كيف تتجنب تكراره؟
اختبر الانقطاع بعد القبول وقبل الإقرار.

تعود الخدمة ولا يتعافى العمل المعلق

لماذا يحدث؟
رُصدت فترة الفشل فقط.
كيف تصلحه؟
تحقق من التفريغ واستعادة السلامة.
كيف تتجنب تكراره؟
ضمّن التعافي بكل خطة تجربة.

اختبر فهمك

1. يفشل البريد بعد تثبيت الحجز. ماذا يفحص الاختبار غير الرسالة؟

اعرض الحل المشروح

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

2. يتوقف المساعد بعد ثلاث محاولات بالوحدة. ما دليل الربط الفعلي؟

اعرض الحل المشروح

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

أهم ما تعلمته

  • تحتاج تجارب الصمود فرضيات وشروط سلامة صريحة.
  • تحتاج الإعادة حدوداً وأمان أثر.
  • التعافي جزء من الادعاء لا إضافة اختيارية.

المراجع الرسمية