Хаос лучшая инженерная практика - PullRequest
1 голос
/ 04 марта 2020

Я изучил принципы хаоса и ищу какой-то проект с открытым исходным кодом, такой как Chaosblade , который открыт с открытым исходным кодом Alibaba, и mangle , с помощью vmware. .

Оба эти инструмента являются инструментами для обнаружения неисправностей и ничего не делают для анализа в тестируемой системе.

В соответствии с принципами хаоса, мы должны

1. Начать с определения «устойчивого состояния» как некоторого измеримого выхода системы, который указывает на нормальное поведение.

2.Введите гипотезу о том, что это устойчивое состояние будет сохраняться как в контрольной группе, так и в экспериментальной группе.

3.Введите переменные, которые отражают события реального мира, такие как серверы, которые обрабатывают sh, неисправные жесткие диски, сетевые подключения. и т.д. c.

4. Попытайтесь опровергнуть гипотезу, ища разницу в установившемся состоянии между контрольной группой и экспериментальной группой.

, так как мы делаем шаг 4? Должны ли мы использовать систему мониторинга для мониторинга некоторых основных метрик, чтобы проверить состояние системы после ввода неисправности.

Есть ли какие-либо хорошие предложения или рекомендации?

1 Ответ

0 голосов
/ 19 марта 2020

так, как мы делаем шаг 4? Должны ли мы использовать систему мониторинга для мониторинга некоторых основных показателей, чтобы проверить состояние системы после ввода неисправности.

Как всегда, ответом является it depends.... Это зависит от того, как вы хотите измерить свою гипотезу, зависит от самой гипотезы и от системы. Но обычно имеет смысл ввести метрики для улучшения / увеличения наблюдаемости.

Если ваша гипотеза похожа на Our service can process 120 requests in a second, even if one node fails. Тогда вы можете сделать это с помощью метрик, чтобы измерить это да, но вы также можете измерить это с помощью запросы вы отправляете и получаете ответы обратно. Это зависит от вас.

Но если ваша гипотеза I get a response for an request which was send before a node goes down., тогда имеет смысл проверить это непосредственно с помощью запросов и ответов.

В нашем проекте мы используем, например, chaostoolkit , который позволяет вам указать гипотезу в json или yaml и соответствующее действие, чтобы доказать это.

Таким образом, вы можете сказать, что у меня устойчивое состояние X, и если я сделаю Y, то устойчивое состояние X должно оставаться в силе. Инструментарий также может проверять метрики, если вы хотите.

...