Windows पर नेटवर्क कैओस टेस्टिंग
कैओस टेस्टिंग का मतलब है किसी चीज़ को जानबूझकर तोड़ना, जब आप देख रहे हों, ताकि पता चले कि आपका सॉफ़्टवेयर उसका क्या करता है। नेटवर्क की परत पर यह टूल ठीक यही है: किसी एक ऐप में खराबी डालने और देखने का तरीका कि वह टिकता है या नहीं।
आप कौन-सी खराबियाँ डाल सकते हैं
| खराबी | यह क्या दर्शाती है |
|---|---|
| पैकेट का खोना, बिगड़ना, दोहराना | बिगड़ा हुआ रास्ता। पैकेट गायब हो जाते हैं, खराब होकर पहुँचते हैं, या दो बार पहुँचते हैं। |
| लेटेंसी, जिटर, झटके | धीमा या अस्थिर रास्ता, जिसमें कई सेकंड का वह ठहराव भी शामिल है जो टाइमआउट तोड़ देता है। |
| कनेक्शन रीसेट | फ़ायरवॉल या लोड बैलेंसर जो ट्रांसफ़र के बीच कनेक्शन मार देता है। |
| लिंक आउटेज | रास्ते का एक चक्र में गायब होना और लौट आना। |
| ब्लॉक किया गया पता या पोर्ट | एक निर्भरता पहुँच से बाहर, जबकि बाकी सब कुछ चलता है। |
| इंटरनेट गायब, LAN जीवित | कैप्टिव पोर्टल जैसा रूप: लोकल चलता है, दुनिया नहीं। |
कैओस को शोर से क्या अलग करता है: दोहराए जा सकने की क्षमता
जो यादृच्छिक विफलता दोबारा चलाई न जा सके, वह एक कहानी बनाती है, बग रिपोर्ट नहीं। यहाँ हर यादृच्छिक फ़ैसला एक seed से आता है, इसलिए वही कमांड वही रन दोहराता है: वही पैकेट खोते हैं, वही जिटर, उसी क्रम में:
BeanNetworkTester.exe --loss 15 --rst-prob 5 --seed 42 --target myapp.exe --duration 120
यही फ़र्क है “पिछले मंगलवार को यह एक बार गिर गया” और ऐसे फ़ेल होते टेस्ट के बीच जिसे कोई और भी चला सकता है।
पाइपलाइन में
कमांड लाइन एग्ज़िट कोड से नतीजा बताती है, इसलिए बिल्ड “ऐप विफल हुआ” को “टूल शुरू नहीं हो सका” से अलग पहचान सकता है, और सत्र खुद खत्म हो जाता है, यानी सफ़ाई का कोई चरण नहीं जिसे भूला जा सके:
BeanNetworkTester.exe --loss 10 --rst-prob 5 --target myapp.exe --duration 90 --format json > chaos.ndjson
एक खराबी की जगह खराबियों का क्रम एक सिनेरियो फ़ाइल है, और वे भी दोहराए जा सकते हैं। एग्ज़िट कोड और उसके लिए ज़रूरी रनर के लिए समय आधारित सिनेरियो और CI में नेटवर्क टेस्ट देखें।
असर कहाँ रुकता है
दो सीमाएँ हैं और दोनों जानबूझकर हैं। जब आप निशाना साधते हैं, तब बिगाड़ एक प्रोसेस, PID, पते या पोर्ट तक पहुँचता है, इसलिए जिस मशीन पर आप काम कर रहे हैं वह चलती रहती है। और यह एक ही मशीन है: यह एक क्लाइंट और उसके कनेक्शन के लिए फ़ॉल्ट इंजेक्शन है, किसी क्लस्टर के लिए नहीं। अगर आप सेवाओं और नोड्स में कैओस ढूँढ रहे हैं, तो वह दूसरी तरह का टूल है, और यह उस टुकड़े का काम करता है जो किसी एक Windows ऐप के नीचे का नेटवर्क तोड़ता है।
सब कुछ मौके पर ही पलटा जा सकता है। STOP नेटवर्क बहाल करता है, समय सीमा भी यही करती है, और अगर टूल खुद मर जाए तो उसके भीतर का वॉचडॉग कैप्चर बंद कर देता है: आपकी डाली हुई खराबी उस रन से ज़्यादा देर नहीं टिकनी चाहिए जिसने उसे डाला।