Bean Network Tester

Chaos testing sieci na Windows

Chaos testing to psucie czegoś celowo, gdy patrzysz, żeby dowiedzieć się, co Twoje oprogramowanie z tym zrobi. Na warstwie sieci to dokładnie to, czym jest ten program: sposób na wstrzyknięcie awarii jednej aplikacji i sprawdzenie, czy przeżyje.

Awarie, które można wstrzyknąć

AwariaCo odwzorowuje
Strata, uszkodzenie, duplikacjaZdegradowaną ścieżkę. Pakiety znikają, docierają popsute albo docierają dwa razy.
Opóźnienie, jitter, skokiWolną albo niestabilną ścieżkę, razem z wielosekundowym zacięciem, które psuje timeouty.
Zrywanie połączeńFirewall albo load balancer zabijający połączenia w środku transferu.
Przerwy w łączuŚcieżkę, która znika i wraca, cyklicznie.
Zablokowany adres albo portJedną zależność nieosiągalną, gdy wszystko inne działa.
Brak internetu przy żywym LAN-ieKształt portalu logowania: lokalnie działa, świat nie.

Co odróżnia chaos od szumu: powtarzalność

Losowa awaria, której nie da się odtworzyć, produkuje opowieść, nie zgłoszenie błędu. Każda losowa decyzja pochodzi tu z ziarna, więc ta sama komenda odtwarza ten sam przebieg - te same zgubione pakiety, ten sam jitter, w tej samej kolejności:

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

To jest różnica między "wywaliło się raz w zeszły wtorek" a czerwonym testem, który ktoś inny potrafi uruchomić.

W pipeline

Linia komend raportuje kodami wyjścia, więc build rozróżni "aplikacja padła" od "narzędzie nie mogło wystartować", a sesja kończy się sama - nie ma kroku sprzątającego, o którym można zapomnieć:

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

Ciąg awarii zamiast jednej to plik scenariusza, i on też jest powtarzalny. Zobacz scenariusze w czasie oraz testy sieciowe w CI po kody wyjścia i po to, jakiego runnera to wymaga.

Gdzie kończy się promień rażenia

Dwa ograniczenia i oba są zamierzone. Zaburzenie sięga jednego procesu, PID-u, adresu albo portu, gdy je wycelujesz, więc maszyna, na której pracujesz, dalej działa. I jest to jedna maszyna: to jest wstrzykiwanie awarii klientowi i jego łączu, nie klastrowi. Jeśli szukasz chaosu w wielu usługach i węzłach, to inny rodzaj narzędzia, a to tutaj jest elementem, który psuje sieć pod jedną aplikacją na Windows.

Wszystko jest odwracalne na miejscu. STOP przywraca sieć, limit czasu robi to samo, a wewnętrzny nadzorca zamyka przechwyt, jeśli samo narzędzie padnie - awaria, którą wstrzyknąłeś, nie może przeżyć przebiegu, który ją wstrzyknął.

Dalej

Chcesz zepsuć sobie sieć specjalnie?

Pobierz na Windows