AutoChaos adalah alat canggih yang dirancang untuk menimbulkan kekacauan di berbagai sistem (klaster kubernetes untuk saat ini).
Tujuan AutoChaos adalah menganalisis dan mensimulasikan kekacauan dalam sistem, membantu organisasi mengidentifikasi potensi kerentanan, kemacetan, dan titik kegagalan. Dengan menerapkan skenario kekacauan yang terkendali pada sistem, dunia usaha dapat memperoleh wawasan berharga mengenai ketahanan sistem dan mengambil keputusan yang tepat untuk melakukan perbaikan.
AutoChaos menggunakan LLM untuk memasukkan kekacauan terkendali ke dalam sistem. Ini dapat mensimulasikan berbagai peristiwa kacau, seperti lonjakan penggunaan yang tiba-tiba, kegagalan perangkat keras, gangguan jaringan, dan banyak lagi. Alat ini mengukur respons sistem terhadap peristiwa-peristiwa kacau ini dan memberikan analisis dan visualisasi terperinci tentang perilaku sistem di bawah tekanan.
sudo apt update
sudo apt install python3.xx python3.xx-dev python3.xx-venv
1 - Kloning repositori ini
git clone https://github.com/nervousapps/AutoChaos.git
2 - Masuk ke direktori repo
cd AutoChaos
3 - Python venv direkomendasikan, untuk membuatnya, di terminal Anda:
python3.xx -m venv autochaos
Dan aktifkan
source ./autochaos/bin/activate
4 - Instal paket dan dependensi AutoChaos dengan menjalankan:
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 ))
nama env | keterangan | nilai bawaan |
---|---|---|
K8S_CTX | konteks K8 | bawaan |
FILE KUNCI | Jalur ke openai keyfile.txt | ./openai_key.txt |
RUANG NAMA | Namespace tempat kekacauan akan diterapkan | semua |
KETERSEDIAAN_ROUTE | Rute untuk memeriksa ketersediaan sistem | Tidak ada |
API_ROUTES | Rute di mana sistem belalang akan melakukan uji beban, harus berbentuk "/foo/nama host /bar/nama host" | "" |
LOCAL_AI_URL | Url instance lokal dari api yang kompatibel dengan paket python openAi | "" |
MODEL_NAME | Nama model yang akan digunakan | gpt-3.5-turbo-16k |
NB_ITERASI | Jumlah iterasi kekacauan | 5 |
Pada awalnya, tindakan didefinisikan dalam prompt sistem (chaos_engineer.txt) seperti contoh berikut:
- 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 (bertindak sebagai chaos engineer) akan memilih salah satu tindakan yang ditentukan dan meminta untuk melakukannya dengan argumen yang sesuai, tanggapannya dapat berupa misalnya:
KILL pod kop-123 namespace_1
Penangan untuk tindakan yang ditentukan harus diterapkan di kelas sistem yang mewarisi dari auto_chaos.chaos.BaseSystem. Kelas BaseSytem ini mendefinisikan metode do_action yang akan menganalisis respons chaos engineer dan memanggil penangan yang sesuai jika ada, jika tidak, ia akan memanggil penangan default.
Alat AutoChaos memberikan hasil yang akurat dan terperinci mengenai perilaku sistem selama peristiwa kekacauan. Analisisnya mencakup metrik seperti waktu respons, tingkat kesalahan, pemanfaatan sumber daya, dan stabilitas sistem. Visualisasi, seperti bagan dan grafik, juga dihasilkan untuk membantu memvisualisasikan data dan mengidentifikasi pola atau anomali. Dengan menganalisis hasilnya, dunia usaha dapat mengidentifikasi potensi kelemahan dan mengambil tindakan proaktif untuk meningkatkan ketahanan dan kinerja sistem.
AutoChaos adalah alat yang ampuh untuk menganalisis kekacauan dalam sistem, memberikan wawasan berharga bagi bisnis tentang ketahanan dan kerentanannya. Dengan menyimulasikan peristiwa kekacauan dan menganalisis respons sistem, organisasi dapat membuat keputusan yang tepat dan mengambil langkah proaktif untuk meningkatkan ketahanan sistem mereka. Instal AutoChaos hari ini dan dapatkan pemahaman lebih dalam tentang perilaku sistem Anda saat berada dalam tekanan.
Ini bukan produk resmi OpenAI. Ini adalah proyek pribadi dan tidak berafiliasi dengan OpenAI dengan cara apa pun.
HITAM
Lisensi MIT