AutoChaos هي أداة قوية مصممة لإدخال الفوضى في الأنظمة المختلفة (مجموعات kubernetes في الوقت الحالي).
الغرض من AutoChaos هو تحليل ومحاكاة الفوضى في الأنظمة، مما يساعد المؤسسات على تحديد نقاط الضعف والاختناقات ونقاط الفشل المحتملة. ومن خلال إخضاع الأنظمة لسيناريوهات الفوضى الخاضعة للرقابة، يمكن للشركات الحصول على رؤى قيمة حول مرونتها واتخاذ قرارات مستنيرة للتحسين.
يستخدم AutoChaos LLM لحقن الفوضى الخاضعة للرقابة في الأنظمة. يمكنه محاكاة العديد من الأحداث الفوضوية، مثل الارتفاع المفاجئ في الاستخدام، وفشل الأجهزة، وانقطاع الشبكة، والمزيد. تقيس الأداة استجابة النظام لهذه الأحداث الفوضوية وتوفر تحليلاً مفصلاً وتصورات لسلوك النظام تحت الضغط.
sudo apt update
sudo apt install python3.xx python3.xx-dev python3.xx-venv
1 - استنساخ هذا المستودع
git clone https://github.com/nervousapps/AutoChaos.git
2 - اذهب إلى دليل الريبو
cd AutoChaos
3 - يوصى باستخدام python venv لإنشاء واحد في جهازك الطرفي:
python3.xx -m venv autochaos
وتمكينه
source ./autochaos/bin/activate
4 - تثبيت حزمة AutoChaos وتبعياتها عن طريق تنفيذ:
pip install -r ./python/requirements.txt
pip install ./python --no-deps
nano ./openai_key.txt
if local_ai_url :
# Change api url to LLM local tool one
openai . base_url = local_ai_url
openai . api_key = "sx-xxx"
else :
# Initialize openai api_key
with open ( "./openai_key.txt" , "r" ) as file :
openai . api_key = ( file . read ()). strip ()
# Systems
k8s_system = K8sSystem ( namespace )
locust_system = LocustSystem ()
# Load system description
initial_state = {
"system_resources" : k8s_system . describe (),
"api_routes" : api_routes ,
"availability_route" : availability_route ,
}
# It is time to do chaos !
chaos = Chaos ([ k8s_system , locust_system ], initial_state )
chaos . chaos ( objective = 10 )
chaos . report ()
# Write the result file
with open (
os . path . join ( f"autochaos.json" ), "w"
) as file :
file . write ( json . dumps ( chaos . messages , indent = 4 ))
اسم إنف | وصف | القيمة الافتراضية |
---|---|---|
K8S_CTX | سياق K8s | تقصير |
ملف المفتاح | المسار إلى openai keyfile.txt | ./openai_key.txt |
مساحة الاسم | مساحة الاسم التي سيتم تطبيق الفوضى عليها | الجميع |
AVAILABILITY_ROUTE | الطريق للتحقق من توفر النظام | لا أحد |
API_ROUTES | يجب أن تكون المسارات التي سيقوم نظام الجراد بإجراء اختبار التحميل عليها بالصيغة "/foo/hostname /bar/hostname" | "" |
LOCAL_AI_URL | عنوان URL لمثيل محلي لواجهة برمجة التطبيقات المتوافقة مع حزمة openAi python | "" |
MODEL_NAME | اسم الموديل المراد استخدامه | gpt-3.5-turbo-16k |
NB_ITERATION | عدد تكرار الفوضى | 5 |
في البداية يتم تعريف الإجراءات في موجه النظام (chaos_engineer.txt) مثل المثال التالي:
- DESCRIBE : this action must be used to see the system state during chaos, no arguments required, use it after chaos has begun
- KILL : this action must be used to kill a process, a task, a pod, a node of anything in the system, you have to indicate in this order: the type, the name and the namespace of resource to kill (for example KILL pod kop-123 namespace_1), no talking, no comments
سيختار LLM (الذي يعمل كمهندس فوضى) أحد الإجراءات المحددة ويطلب القيام بذلك باستخدام الوسائط المقابلة، يمكن أن يكون الرد على سبيل المثال:
KILL pod kop-123 namespace_1
يجب تنفيذ معالجات الإجراءات المحددة في فئة الأنظمة التي ترث من auto_chaos.chaos.BaseSystem. تحدد فئة BaseSytem هذه طريقة do_action التي ستحلل استجابة مهندس الفوضى وتستدعي المعالج المقابل إن وجد، وإلا فسوف تستدعي معالجًا افتراضيًا.
توفر أداة AutoChaos نتائج دقيقة ومفصلة حول سلوك النظام أثناء أحداث الفوضى. يتضمن التحليل مقاييس مثل وقت الاستجابة ومعدلات الخطأ واستخدام الموارد واستقرار النظام. يتم أيضًا إنشاء تصورات، مثل المخططات والرسوم البيانية، للمساعدة في تصور البيانات وتحديد الأنماط أو الحالات الشاذة. ومن خلال تحليل النتائج، يمكن للشركات تحديد نقاط الضعف المحتملة واتخاذ تدابير استباقية لتحسين مرونة النظام وأدائه.
تعد AutoChaos أداة قوية لتحليل الفوضى في الأنظمة، مما يوفر للشركات رؤى قيمة حول مرونتها ونقاط ضعفها. ومن خلال محاكاة أحداث الفوضى وتحليل استجابة النظام، يمكن للمؤسسات اتخاذ قرارات مستنيرة واتخاذ خطوات استباقية لتحسين قوة أنظمتها. قم بتثبيت AutoChaos اليوم واحصل على فهم أعمق لسلوك أنظمتك تحت الضغط.
هذا ليس منتجًا رسميًا لـ OpenAI. هذا مشروع شخصي ولا ينتمي إلى OpenAI بأي شكل من الأشكال.
أسود
ترخيص معهد ماساتشوستس للتكنولوجيا