هندسة الفوضى مع Litmus: مشروع قيد التكوير في CNCF

بيان المشكلة: ضمان صمود منصة التجارة الإلكترونية المعتمدة على الخدمات الصغيرة.

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

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

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

إعداد بيئة تجربة الفوضى

قم بتثبيت LitmusChaos في عقد Kubernetes الخاص بك:

Shell

 

تحقق من التثبيت:

Shell

 

ملاحظة: تأكد من أن الكلاستر جاهز لتجارب الفوضى.

حدد تجربة الفوضى

أنشئ ملف ChaosExperiment YAML لمحاكاة سيناريو حذف Pod.

مثال (pod-delete.yaml):

YAML

 

قم بتثبيت ChaosOperator وتكوين حساب الخدمة

نشر ChaosOperator لإدارة التجارب:

Shell

 

ملاحظة: أنشئ ServiceAccount لمنح الأذونات اللازمة.

حقن الفوضى في التطبيق المستهدف

وسم مساحة أسماء التطبيق للفوضى:

Shell

 

نشر ChaosEngine لتحفيز التجربة:

مثال (chaosengine.yaml):

YAML

 

تطبيق ChaosEngine:

Shell

 

مراقبة التجربة

عرض التقدم:

Shell

 

تحقق من حالة حاويات الفوضى:

Shell

 

تحليل النتائج

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

إليك بعض القياسات للمراقبة:

  • وقت استجابة التطبيق
  • معدلات الأخطاء أثناء وبعد التجربة
  • الوقت المستغرق لاستعادة الحاويات

الحل

تم تحديد السبب الجذري: خلال حركة المرور العالية، فشلت الحاويات بسبب عدد غير كافٍ من النسخ في النشر وحدود الموارد غير المناسبة.

الإصلاحات المطبقة:

  • زيادة عدد النسخ في النشر للتعامل مع حركة مرور أعلى
  • قم بتكوين طلبات وحدود موارد مناسبة لوحدة الـ pod للوحدة المحددة
  • نفذ Horizontal Pod Autoscaler (HPA) للتعامل مع تقلبات حركة المرور بشكل ديناميكي

الاستنتاج

من خلال استخدام LitmusChaos لمحاكاة فشل وحدة الـ pod، تم تحديد نقاط الضعف الرئيسية في نشر Kubernetes الخاص بمنصة التجارة الإلكترونية. أظهرت تجربة الفوضى أنه يمكن تحسين المتانة بشكل كبير من خلال التكييف مع التوسيع وتعديل توزيع الموارد. سمحت هندسة الفوضى بتعزيز النظام بشكل استباقي، مما أدى إلى زيادة الوقت الفعال للنظام ورضا العملاء.

Source:
https://dzone.com/articles/chaos-engineering-litmus-cncf-incubating-project