Bean Network Tester

Хаос-тестування мережі у Windows

Хаос-тестування означає навмисно щось зламати, поки ви спостерігаєте, щоб дізнатися, що ваше програмне забезпечення з цим робить. На рівні мережі саме цим і є цей інструмент: способом внести збій в один застосунок і побачити, чи той вистоїть.

Збої, які можна внести

ЗбійЩо він моделює
Втрата, пошкодження, дублюванняПогіршений шлях. Пакети зникають, приходять пошкодженими або приходять двічі.
Затримка, джитер, стрибкиПовільний чи нестабільний шлях, зокрема багатосекундне зависання, що ламає тайм-аути.
Скидання з’єднаньБрандмауер або балансувальник навантаження, що вбиває з’єднання посеред передавання.
Обриви каналуШлях, що зникає й повертається циклами.
Заблокована адреса чи портОдна залежність недоступна, а все інше працює.
Інтернету немає, LAN живийФорма captive portal: локальне працює, світ ні.

Що відрізняє хаос від шуму: повторюваність

Випадковий збій, який не можна відтворити, дає історію, а не звіт про помилку. Кожне випадкове рішення тут походить із seed, тож та сама команда відтворює той самий запуск: ті самі втрачені пакети, той самий джитер, у тому самому порядку:

BeanNetworkTester.exe --loss 15 --rst-prob 5 --seed 42 --target myapp.exe --duration 120

Це різниця між «минулого вівторка воно один раз упало» і тестом, що падає і який може запустити хтось інший.

У pipeline

Командний рядок повідомляє результат кодами завершення, тож збірка може відрізнити «застосунок зазнав збою» від «інструмент не зміг запуститися», а сеанс закінчується сам, тому немає кроку очищення, про який можна забути:

BeanNetworkTester.exe --loss 10 --rst-prob 5 --target myapp.exe --duration 90 --format json > chaos.ndjson

Послідовність збоїв замість одного є файлом сценарію, і такі файли теж повторювані. Дивіться сценарії в часі і тести мережі в CI, щоб дізнатися про коди завершення та потрібний раннер.

Де закінчується радіус дії

Є два обмеження, і обидва навмисні. Погіршення досягає одного процесу, PID, адреси чи порту, коли ви цілитеся, тож комп’ютер, на якому ви працюєте, продовжує працювати. І це одна машина: це внесення збоїв для клієнта та його з’єднання, а не для кластера. Якщо ви шукаєте хаос між службами й вузлами, це інший вид інструмента, а цей є тією ланкою, що ламає мережу під одним застосунком Windows.

Усе оборотне на місці. STOP відновлює мережу, обмеження за часом робить те саме, а watchdog усередині інструмента вимикає перехоплення, якщо сам інструмент помирає: збій, який ви внесли, ніколи не має пережити запуск, що його вніс.

Далі

Готові навмисно зламати власну мережу?

Завантажити для Windows