توصيات لتصميم استراتيجية اختبار الموثوقية

ينطبق على توصية قائمة التحقق من موثوقية Azure Well-Architected Framework هذه:

RE:08 اختبر سيناريوهات المرونة والتوافر من خلال تطبيق مبادئ هندسة الفوضى في بيئات الاختبار والإنتاج. استخدم الاختبار للتأكد من أن تنفيذ التدهور الآمن واستراتيجيات التحجيم فعالة من خلال إجراء عطل نشط واختبار تحميل محاكاة.

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

التعريفات

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

استراتيجيات التصميم الرئيسية

إرشادات الاختبار العامة

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

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

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

  • قم بتكييف تنسيق وثائق بسيط، لذلك من السهل على الجميع فهم العملية ونتائج كل اختبار عادي.

  • شارك النتائج الموثقة مع الفرق المناسبة، مثل الفرق التشغيلية والقيادة التكنولوجية وأصحاب المصلحة في الأعمال وأصحاب المصلحة في التعافي من الكوارث. وينبغي أن تسترشد النتائج بتحسين أهداف الموثوقية، مثل أهداف مستوى الخدمة( SLOs) واتفاقات مستوى الخدمة (SLAs) وأهداف وقت الاسترداد (RTOs) وأهداف نقطة الاسترداد (RPOs).

  • إنشاء إيقاع اختبار منتظم للنسخ الاحتياطية الخاصة بك. استعادة البيانات إلى أنظمة معزولة للمساعدة في التأكد من أن النسخ الاحتياطية صالحة وأن عمليات الاستعادة تعمل.

  • قم بتوثيق مقاييس وقت الاسترداد ومشاركتها مع المساهمين في الإصلاح بعد كارثة لضمان ملاءمة توقعات الاسترداد.

  • استخدم إجراءات اختبار التوزيع القياسية في الصناعة للمساعدة في ضمان أن لديك عملية توزيع تلقائية وقابلة للتنبؤ وفعالة.

  • اختبر قدرة حمل العمل على تحمل حالات الفشل العابرة. لمزيد من المعلومات، راجع توصيات لمعالجة الأخطاء العابرة.

  • اختبر قدرة حمل العمل على الاستجابة للتغييرات في أنماط التحميل والارتفاعات في الاستخدام. استخدم هذه المعلومات لمساعدتك في اختبار استراتيجية التحجيم الخاصة بك. للحصول على معلومات حول اختبار التحميل والإجهاد، راجع توصيات الاختبار.

  • اختبر كيفية تعامل حمل العمل مع حالات الفشل في الخدمات التابعة أو التبعيات الأخرى باستخدام إدخال الخطأ.

  • اختبر وتحقق من كيفية استجابة تصميم الشفاء الذاتي والحفاظ على الذات للخلل. اختبار عمليات الاسترداد التلقائية واليدوية.

  • اختبر خطة التعافي من الكوارث للاستجابة للفشل الكارثي والحوادث الرئيسية الأخرى.

  • اختبر قدرة حمل العمل على التدهور بأمان وتقليل نصف قطر الانفجار لخلل المكون باستخدام حقن الخطأ.

الاستفادة من الانقطاعات المخطط لها وغير المخطط لها

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

الصيانة المخططة

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

انقطاع غير مخطط له

استخدم كل حادث انقطاع كفرصة لمعرفة المزيد حول حمل العمل وتحسين مرونته باتباع هذه الخطوات، مرتبة حسب الأولوية:

  • أعد تشغيل حمل العمل عبر الإنترنت لعملائك. للقيام بذلك، قد تقوم بإجراء حل بديل للمشكلة أو حل المشكلة أو بدء عمليات الاسترداد.

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

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

  • استخدم النتائج لتحسين استراتيجية الاختبار الخاصة بك. تأكد من معالجة السبب الجذري والمشاكل المماثلة بنجاح عن طريق اختبار نفس الفشل مباشرة.

إرشادات هندسة حقن الأخطاء والفوضى

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

  • كُن مُبادرًا. لا تنتظر حتى تحدث حالات الفشل. حاول توقع حالات الفشل من خلال إجراء تجارب الفوضى لاكتشاف المشكلات وإصلاحها قبل أن تؤثر على بيئة الإنتاج الخاصة بك.

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

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

  • حديد وعالج نقاط الفشل الفردية في وقت مبكر. أثناء الاختبار، راجع تحليل وضع الفشل وتحديثه للتحقق من صحة الأخطاء في وثائقك ومعالجتها. تطبيق نهج الموثوقية، مثل التكرار والتجزئة، لزيادة توفر حمل العمل وتقليل وقت التعطل.

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

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

  • بناء المناعة. استخدم تجارب هندسة الفوضى لتحسين قدرة حمل العمل على منع حالات الفشل والتعافي منها.

هندسة الفوضى هي جزء لا يتجزأ من ثقافة فريق حمل العمل وممارسة مستمرة، وليس جهدا تكتيكيا قصير الأجل استجابة ل انقطاع واحد. اتبع هذه الطريقة القياسية عند تصميم تجارب الفوضى الخاصة بك:

  1. البدء بفرضية. يجب أن يكون لكل تجربة هدف واضح، مثل اختبار قدرة تدفق معين على تحمل فقدان مكون معين.
  2. قياس السلوك الأساسي. تأكد من أن لديك مقاييس موثوقية وأداء متسقة للتدفق والمكونات المتضمنة في تجربة معينة للمقارنة مع الحالة المتدهورة عند تشغيل تجربتك.
  3. إدراج خطأ أو أخطاء. يجب أن تستهدف التجربة عمدا مكونات محددة يمكن استردادها بسرعة ويجب أن يكون لديك توقع مستنير بالتأثير الذي سيسببه إدخال الخطأ للمساعدة في التحكم في نصف قطر انفجار التجربة.
  4. راقب السلوك الناتج. اجمع بيانات تتبع الاستخدام حول مكونات التدفق الفردية وسلوك التدفق الشامل الذي تستهدفه التجربة لفهم تأثيرات الخطأ بشكل صحيح. قارن المقاييس التي تجمعها مع المقاييس الأساسية للحصول على صورة كاملة لنتائج إدخال الخطأ.
  5. توثيق العملية، والملاحظات. سيؤدي الاحتفاظ بسجلات مفصلة لتجاربك إلى إبلاغ القرارات المستقبلية حول تصميم حمل العمل، ما يضمن معالجة الثغرات التي تم الكشف عنها بمرور الوقت.
  6. تحديد النتيجة والعمل على أساسها. خطط لخطوات المعالجة التي يمكن إضافتها إلى تراكم حمل العمل كتحسينات. تأكد من مراجعة خطط تحسين التصميم واختبارها في بيئات غير إنتاجية وفقا لنفس العمليات مثل عمليات التوزيع الأخرى.

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

عند إجراء تجارب حقن الأخطاء، يمكنك:

  • تأكد من وجود المراقبة وإعداد التنبيهات.
  • تحقق من صحة عملية تعيين فرد مسؤول مباشرة (DRI) للاستيلاء على ملكية حادث.
  • تأكد من أن وثائقك وعمليات التحقيق الخاصة بك محدثة.

دمج التوصيات والاعتبارات التالية لتحسين استراتيجية اختبار الفوضى الخاصة بك:

  • تحدي افتراضات النظام. مع الاختبار، تحاول تحسين مرونة حمل العمل واستراتيجيات تصميم حمل العمل. ابحث عن فرص لإدخال الأخطاء في المكونات والتدفقات التي تفترض أنها موثوقة بناء على التجارب السابقة. قد لا تكون موثوقة في حمل العمل الجديد.

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

  • استخدم المخازن المؤقتة لاتفاقية مستوى الخدمة. تقييد اختبار الفوضى للبقاء ضمن اتفاقيات مستوى الخدمة الخاصة بك وتجنب السمعة المحتملة أو التأثيرات المالية من الانقطاعات. تساعد أهداف التدفق واسترداد المكونات في تحديد نطاق الاختبار الخاص بك.

  • ضع ميزانية للخطأ كاستثمار في الفوضى وإدراج الأعطال. ميزانية الخطأ الخاصة بك هي الفرق بين تحقيق 100 في المئة من SLO وتحقيق SLO المتفق عليه.

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

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

  • تحديد وتوثيق التبعيات غير المكتشفة سابقا بين المكونات المختلفة داخل حمل العمل الخاص بك والتي يتم الكشف عنها من خلال اختبار الفوضى.

  • اضبط خطط الاسترداد حسب الضرورة لحساب التبعيات التي يتم اكتشافها أثناء اختبار الفوضى.

  • استخدم النتائج من تجاربك واختباراتك كأساس للتجارب والاختبارات الجديدة. مع ظهور سلوكيات غير متوقعة، قد تستهدف الاختبارات الجديدة هذه السلوكيات مباشرة وتمنحك الفرصة لتصميم استراتيجيات المعالجة لها.

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

تسهيل Azure

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

Azure Chaos Studio هي خدمة مدارة تستخدم هندسة الفوضى لمساعدتك في قياس تطبيق السحابة ومرونة الخدمة وفهمها وتحسينها. وصل Azure Chaos Studio إلى التوفر العام في Ignite 2023 ويحتوي على الكثير من الميزات لمساعدتك على البدء في إدخال الخطأ واختبار المرونة لتطبيقك باستخدام البنية الأساسية ل Azure.

قائمة التحقق من الموثوقية

راجع المجموعة الكاملة من التوصيات.