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.txt | ./openai_key.txt |
ПРОСТРАНСТВО ИМЕН | Пространство имен, к которому будет применен хаос | все |
AVAILABILITY_ROUTE | Маршрут проверки доступности системы | Никто |
API_ROUTES | Маршруты, на которых система Locus будет выполнять нагрузочное тестирование, должны иметь форму «/foo/имя хоста /bar/имя хоста». | "" |
LOCAL_AI_URL | URL-адрес локального экземпляра API, совместимого с пакетом Python openAi | "" |
МОДЕЛЬ_ИМЯ | Название модели для использования | gpt-3.5-турбо-16к |
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.
ЧЕРНЫЙ
Лицензия МТИ