
Простой в использовании и мощный набор инструментов для экспериментов по хаос-инжинирингу.(Инструмент для инъекций хаос-экспериментов с открытым исходным кодом от Alibaba — простой, удобный и мощный)

Китайская версия README
Вики: DeepWiki
Blade AI выступает в качестве интеллектуального агентского слоя в экосистеме ChaosBlade: на базовом уровне он вызывает ChaosBlade для выполнения инъекции сбоев; на верхнем уровне он включает возможности оркестрации, такие как понимание намерений, аудит безопасности, проверка эффекта, безопасное восстановление и структурированная отчётность, — тем самым превращая учения по сбоям из процесса «ручного написания команд» в процесс, выполняемый через «диалоговое взаимодействие».
Подробную информацию см. в: Blade AI README
ChaosBlade — это инструмент с открытым исходным кодом от Alibaba для проведения экспериментальных инъекций, который следует принципам хаос-инжиниринга и моделям хаотических экспериментов, чтобы помогать предприятиям повышать отказоустойчивость распределённых систем и обеспечивать непрерывность бизнеса в процессе перехода компаний в облако или миграции на облачные нативные системы.
Chaosblade — это внутренний проект с открытым исходным кодом компании MonkeyKing. Он основан на почти десятилетней практике тестирования отказов и проведения учений Alibaba и сочетает в себе лучшие идеи и практики бизнес-подразделений Группы.
ChaosBlade не только прост в использовании, но и поддерживает множество экспериментальных сценариев. Сценарии включают:
Инкапсуляция сценариев по доменам в отдельные проекты позволяет не только стандартизировать сценарии в рамках домена, но и облегчает горизонтальное и вертикальное расширение сценариев. Следуя модели хаотических экспериментов, можно единообразно вызывать CLI chaosblade. В настоящее время включены следующие проекты:
Это руководство поможет вам выполнить первую инъекцию сбоя в Kubernetes менее чем за 5 минут с помощью ChaosBlade. В качестве минимального примера мы внесём сбой перегрузки CPU в Pod.
Перед началом убедитесь, что у вас есть:
kubectl cluster-info выполняется успешно)default)blade находится в вашем PATH)Установите оператор с помощью Helm:
helm install chaosblade-operator chaosblade-operator-<version>.tgz --namespace chaosblade --create-namespace
Проверьте, что оператор запущен:
kubectl get pods -n chaosblade
Выполните сбой полной загрузки CPU для Pod в пространстве имён default:
blade create k8s pod-cpu fullload --cpu-percent 80 --kubeconfig ~/.kube/config --names <pod-name> --namespace default
Если инъекция прошла успешно, ChaosBlade возвращает JSON-результат, содержащий uid эксперимента. Сохраните этот uid, чтобы позже проверить статус или уничтожить эксперимент:
{"code":200,"success":true,"result":"<experiment-uid>"}
blade status <experiment-uid>
Всегда выполняйте восстановление после учений, чтобы вернуть объект в нормальное состояние:
blade destroy <experiment-uid>
Вот и всё! Вы прошли полный цикл «инъекция — проверка — восстановление». Чтобы изучить другие сценарии, выполните blade create k8s -h или обратитесь к документу Практика хаос-инжиниринга в облачных нативных средах.
Вы можете загрузить последнюю версию набора инструментов chaosblade со страницы Releases, распаковать её и использовать. Если вы хотите выполнять инъекцию сбоев в сценариях, связанных с Kubernetes, необходимо установить chaosblade-operator. Подробные документы по использованию на китайском языке см. в chaosblade-help-zh-cn .
chaosblade поддерживает вызовы через CLI и HTTP. Поддерживаются следующие команды:
blade p jvm --process business на целевом хосте. Если подключение прошло успешно, возвращается uid для запроса статуса или отзыва агента.blade revoke UIDblade create [TARGET] [ACTION] [FLAGS]. Например, чтобы вызвать задержку 3 с при обращении потребителя Dubbo к интерфейсу xxx.xxx.Service, выполняется команда blade create dubbo delay --consumer --time 3000 --Service xxx.xxx.Service; если инъекция прошла успешно, возвращается uid эксперимента для запроса статуса и уничтожения эксперимента.blade destroy UIDblade status UID или blade status --type createИспользуйте команду blade help [COMMAND] или blade [COMMAND] -h для просмотра справки
Загрузите демонстрационный образ chaosblade и попробуйте использовать набор инструментов blade

Команда загрузки образа:
docker pull chaosbladeio/chaosblade-demo
Запуск демонстрационного контейнера:
docker run -it --privileged chaosbladeio/chaosblade-demo
После входа в контейнер вы можете прочитать файл README.txt, чтобы выполнить хаотический эксперимент. Приятного использования!
chaosblade-operator — это инструмент инъекции хаотических экспериментов для облачных нативных платформ. Он следует модели хаотических экспериментов для стандартизации экспериментальных сценариев и определяет эксперимент как ресурсы CRD Kubernetes, сопоставляя экспериментальные модели с атрибутами ресурсов Kubernetes, что обеспечивает очень удобное сочетание моделей хаотических экспериментов с декларативным дизайном Kubernetes. Опираясь на модели хаотических экспериментов для удобной разработки сценариев, он также хорошо интегрирует концепции проектирования Kubernetes: через kubectl или написание кода можно напрямую вызывать API Kubernetes для создания, обновления и удаления хаотических экспериментов, а статус ресурсов наглядно показывает статус выполнения эксперимента, что стандартизирует инъекцию сбоев в Kubernetes. Помимо выполнения экспериментов описанными выше способами, можно также использовать метод CLI chaosblade для очень удобного выполнения экспериментальных сценариев Kubernetes и запроса статуса эксперимента. Подробности см. в китайском документе: Практика хаос-инжиниринга в облачных нативных средах
Подробности см. в BUILD.md.
Сообщения об ошибках, вопросы и обсуждения, пожалуйста, отправляйте через GitHub Issues.
Вы также можете связаться с нами:
Мы приветствуем любой вклад, даже если это просто пунктуация. Подробности см. в CONTRIBUTING. О лестнице продвижения участников сообщества см.: (Contributor Ladder)
Изначальная цель нашего проекта с открытым исходным кодом — снизить порог внедрения хаос-инжиниринга на предприятиях, поэтому мы высоко ценим использование проекта в компаниях. Приглашаем всех сюда: ISSUE. После регистрации вы будете приглашены в корпоративную группу рассылки, чтобы обсуждать проблемы, с которыми сталкивается хаос-инжиниринг при внедрении в компании, и делиться опытом внедрения.
Этот проект существует благодаря всем, кто вносит вклад. [Внести вклад].
Chaosblade распространяется под лицензией Apache License, Version 2.0. Полный текст лицензии см. в LICENSE.
blade server start -p 9526curl "http://xxxx:9526/chaosblade?cmd=create%20cpu%20fullload"