التحقق المستمر من الصحة باستخدام Azure Load Testing وAzure Chaos Studio
مع تزايد تعقيد التطبيقات والخدمات الأصلية على السحابة، قد يكون نشر التغييرات والإصدارات الجديدة لها أمرا صعبا. يحدث الانقطاع بشكل متكرر بسبب عمليات النشر أو الإصدارات الخاطئة. ولكن يمكن أن تحدث الأخطاء أيضا بعد التوزيع، عندما يبدأ التطبيق في تلقي نسبة استخدام الشبكة الحقيقية، خاصة في أحمال العمل المعقدة التي تعمل في بيئات سحابية متعددة المستأجرين موزعة بشكل كبير ويتم الاحتفاظ بها من قبل فرق تطوير متعددة. تتطلب هذه البيئات المزيد من مقاييس المرونة، مثل منطق إعادة المحاولة والتحجيم التلقائي، والتي عادة ما يصعب اختبارها أثناء عملية التطوير.
لهذا السبب يعد التحقق المستمر في بيئة مشابهة لبيئة الإنتاج أمرا مهما، بحيث يمكنك العثور على أي مشكلات أو أخطاء وإصلاحها في وقت مبكر من دورة التطوير قدر الإمكان. يجب أن تختبر فرق حمل العمل في وقت مبكر من عملية التطوير (التحول إلى اليسار) وتجعل من السهل على المطورين إجراء الاختبار في بيئة قريبة من بيئة الإنتاج.
أحمال العمل الحرجة للمهام لها متطلبات توفر عالية، مع أهداف 3 أو 4 أو 5 تسعات (99.9٪، 99.99٪، أو 99.999٪، على التوالي). من الضروري تنفيذ اختبار تلقائي صارم للوصول إلى هذه الأهداف.
يعتمد التحقق المستمر من الصحة على كل حمل عمل وعلى الخصائص المعمارية. توفر هذه المقالة دليلا لإعداد ودمج Azure Load Testing وAzure Chaos Studio في دورة تطوير منتظمة.
1 - تحديد الاختبارات استنادا إلى الحدود المتوقعة
الاختبار المستمر هو عملية معقدة تتطلب الإعداد المناسب. وما سيتم اختباره والنتائج المتوقعة يجب أن تكون واضحة.
في PE:06 - التوصيات لاختبار الأداء و RE:08 - التوصيات لتصميم استراتيجية اختبار الموثوقية، يوصي Azure Well-Architected Framework بالبدء بتحديد السيناريوهات الرئيسية والتبعيات والاستخدام المتوقع والتوافر والأداء وأهداف قابلية التوسع.
يجب عليك بعد ذلك تحديد مجموعة من قيم الحد القابلة للقياس لتحديد الأداء المتوقع للسيناريوهات الرئيسية.
تلميح
تتضمن أمثلة قيم الحد العدد المتوقع لعمليات تسجيل دخول المستخدم والطلبات في الثانية لواجهة برمجة تطبيقات معينة والعمليات في الثانية لعملية خلفية.
يجب استخدام قيم الحد لتطوير نموذج صحي للتطبيق الخاص بك، سواء للاختبار أو لتشغيل التطبيق في الإنتاج.
بعد ذلك، استخدم القيم لتحديد اختبار تحميل يولد حركة مرور واقعية لاختبار أداء أساس التطبيق، والتحقق من صحة عمليات المقياس المتوقعة، وما إلى ذلك. يلزم استمرار حركة مرور المستخدم الاصطناعي في بيئات ما قبل الإنتاج، لأنه من الصعب الكشف عن مشكلات وقت التشغيل بدون استخدام.
يضمن اختبار التحميل أن التغييرات التي تم إجراؤها على التطبيق أو البنية الأساسية لا تسبب مشكلات وأن النظام لا يزال يفي بمعايير الأداء والاختبار المتوقعة. يشير تشغيل الاختبار الفاشل الذي لا يفي بمعايير الاختبار إلى أنك بحاجة إلى ضبط الأساس، أو حدوث خطأ غير متوقع.
على الرغم من أن الاختبارات التلقائية تمثل الاستخدام اليومي، يجب عليك تشغيل اختبارات التحميل اليدوي بانتظام للتحقق من كيفية استجابة النظام لذروات الذروة غير المتوقعة.
الجزء الثاني من التحقق المستمر هو إدخال حالات الفشل (هندسة الفوضى). تتحقق هذه الخطوة من مرونة النظام عن طريق اختبار كيفية استجابته للأخطاء. أيضا، أن جميع مقاييس المرونة، مثل منطق إعادة المحاولة، والتحجيم التلقائي، وغيرها، تعمل كما هو متوقع.
2 - تنفيذ التحقق من الصحة باستخدام اختبار التحميل و Chaos Studio
يوفر Microsoft Azure هذه الخدمات المدارة لتنفيذ اختبار التحميل وهندسة الفوضى:
- ينتج عن Azure Load Testing تحميل المستخدم الاصطناعي على التطبيقات والخدمات.
- يوفر Azure Chaos Studio القدرة على إجراء تجربة الفوضى، من خلال إدخال حالات الفشل بشكل منهجي في مكونات التطبيق والبنية الأساسية.
يمكنك نشر وتكوين كل من Chaos Studio واختبار التحميل عبر مدخل Microsoft Azure، ولكن في سياق التحقق المستمر، من المهم أكثر أن يكون لديك واجهات برمجة التطبيقات لنشر الاختبارات وتكوينها وتشغيلها بطريقة برمجية وآلية. يتيح لك استخدام هاتين الأداتين معا مراقبة كيفية تفاعل النظام مع المشكلات وقدرته على المعالجة الذاتية استجابة لفشل البنية الأساسية أو التطبيق.
يظهر الفيديو التالي تنفيذا مجمعا لاختبار الفوضى والتحميل المتكامل في Azure DevOps:
إذا كنت تقوم بتطوير حمل عمل بالغ الأهمية للمهمة، فاستغل البنى المرجعية والإرشادات التفصيلية والتطبيقات النموذجية والأدوات البرمجية المقدمة كجزء من مشروع Azure Mission-Critical وإطار عمل Azure Well-Architected.
ينشر التنفيذ Mission-Critical خدمة اختبار التحميل عبر Terraform ويحتوي على مجموعة من البرامج النصية لبرنامج تضمين PowerShell Core للتفاعل مع الخدمة عبر واجهة برمجة التطبيقات الخاصة بها. يمكن تضمين هذه البرامج النصية مباشرة في البنية الأساسية لبرنامج ربط العمليات التجارية للتوزيع.
أحد الخيارات في التنفيذ المرجعي هو تنفيذ اختبار التحميل مباشرة من داخل البنية الأساسية لبرنامج ربط العمليات التجارية من طرف إلى طرف (e2e) التي تستخدم لتدوير بيئات التطوير الفردية (الخاصة بالفرع):
سيقوم المسار تلقائيا بتشغيل اختبار تحميل، مع تجارب الفوضى أو بدونها (اعتمادا على التحديد) بالتوازي:
إشعار
يمكن أن يؤدي إجراء تجارب الفوضى أثناء اختبار التحميل إلى زمن انتقال أعلى وأوقات استجابة أعلى وزيادة معدلات الخطأ مؤقتا. ستلاحظ أعدادا أعلى حتى تكتمل عملية توسيع النطاق أو اكتمال تجاوز الفشل، بالمقارنة مع التشغيل دون تجارب الفوضى.
اعتمادا على ما إذا كان يتم تمكين اختبار الفوضى واختيار التجارب، قد تختلف تعريفات الأساس، لأن التسامح مع الأخطاء يمكن أن يكون مختلفا في الحالة "العادية" وحالة "الفوضى".
3 - ضبط الحدود وإنشاء خط أساس
وأخيرا، اضبط حدود اختبار التحميل للشواط العادية للتحقق من أن التطبيق (لا يزال) يوفر الأداء المتوقع ولا ينتج عنه أي أخطاء. لديك خط أساسي منفصل لاختبار الفوضى الذي يتسامح مع الارتفاعات المتوقعة في معدلات الخطأ وانخفاض الأداء المؤقت. هذا النشاط مستمر ويجب تكراره بانتظام. على سبيل المثال، بعد تقديم ميزات جديدة، وتغيير وحدات SKU للخدمة، وغيرها.
توفر خدمة Azure Load Testing قدرة مضمنة تسمى معايير الاختبار التي تسمح بتحديد معايير معينة يحتاج الاختبار إلى اجتيازها. يمكن استخدام هذه الإمكانية لتنفيذ خطوط أساسية مختلفة.
تتوفر الإمكانية من خلال مدخل Microsoft Azure، وعبر واجهة برمجة تطبيقات اختبار التحميل، وتوفر البرامج النصية لبرنامج التضمين التي تم تطويرها كجزء من Azure Mission-critical خيارا لتسليم تعريف أساس يستند إلى JSON.
نوصي بشدة بدمج هذه الاختبارات مباشرة في مسارات CI/CD وتشغيلها أثناء المراحل المبكرة من تطوير الميزات. على سبيل المثال، راجع نموذج التنفيذ في التنفيذ المرجعي ل Azure Mission-critical.
باختصار، لا مفر من الفشل في أي نظام موزع معقد وبالتالي يجب تصميم الحل (واختباره) للتعامل مع حالات الفشل. يمكن أن تساعدك إرشادات أحمال العمل المهمة للمهام ذات التصميم الجيد والتطبيقات المرجعية لإطار العمل في تصميم تطبيقات موثوقة للغاية وتشغيلها لاشتقاق أقصى قيمة من سحابة Microsoft.
الخطوة التالية
راجع منطقة تصميم التوزيع والاختبار لأحمال العمل الحرجة للمهام.
الموارد ذات الصلة
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ