"यह मेरे मशीन पर काम करता है। हम सभी ने यह कहा है. लेकिन क्या आपके bash स्क्रिप्ट काम करते हैं जब तीसरे पक्ष के एपीआई को जवाब देने में 15 सेकंड लगते हैं? क्या आपके बैकेंड सेवा ने एक भुगतान प्रदाता से 503 त्रुटियों की अचानक वृद्धि को दयालुता से संभाल लिया है? एक स्क्रिप्ट में एक सरल रिट्री तर्क का परीक्षण करने के लिए एक पूर्ण मकसद सर्वर लिखना अक्सर ओवरकोल होता है. इस ट्यूटोरियल में, मैं आपको एक तेज तरीका दिखाऊंगा: . Chaos Engineering directly in the terminal हम उपयोग करेंगे और एक क्लाउड-आधारित Chaos प्रॉक्सी वास्तविक नेटवर्क अनुरोधों में विफलताओं को इंजेक्शन करने के लिए अपने आवेदन कोड के एक भी पंक्ति को बदलने के बिना। curl समस्या: Localhost बहुत सही है जब स्थानीय रूप से विकसित किया जाता है, तो नेटवर्क लाटेनेशन लगभग शून्य है. एपीआई या तो काम करते हैं (200 ओके) या नहीं करते हैं (कनेक्शन अस्वीकृत)। सर्वर व्यस्त है। : 5% अनुरोधों में कमी। आप दर सीमा को हिट कर चुके हैं। High Latency Intermittent Failures Throttling एक टर्मिनल में यह सिमुलेशन आमतौर पर जटिल शामिल है नियम या स्थानीय उपकरण जैसे ट्रैफिक नियंत्रण: एक आसान तरीका है। iptables tc समाधान: Cloud Chaos Proxy आपके ओएस को कॉन्फ़िगर करने के बजाय, हम विशिष्ट अनुरोधों को एक प्रॉक्सी के माध्यम से मार्गदर्शन करेंगे जो हमारे परिभाषित नियमों के अनुसार ट्रैफ़िक को "बूट" करता है। मैं इसके लिए chaos-proxy.debuggo.app का उपयोग करूंगा, लेकिन अवधारणा किसी भी प्रोग्रामिंग योग्य प्रॉक्सी पर लागू होती है। वीडियो गाइड (1:27) 90 सेकंड के कार्य प्रवाह को देखना पसंद करता है: https://www.youtube.com/watch?v=x_S-guPwPEk&embedable=true Step-by-Step Tutorial 1. असफलता की परिभाषा सबसे पहले, हमें प्रॉक्सी को बताना होगा कि क्या तोड़ना है। लक्ष्य: httpbin.org (या आपका एपीआई डोमेन) देरी: 7 सेकंड (Simulate lag) असफलता दर: 1 (100% अनुरोध असफल होंगे)। त्रुटि कोड: 503 सेवा उपलब्ध नहीं है। 2. प्रमाणपत्र पर भरोसा करें (The "One-Time" Setup) चूंकि हम HTTPS ट्रैफ़िक को अवरुद्ध कर रहे हैं, इसलिए हमें प्रॉक्सी के सीए प्रमाणपत्र पर भरोसा करने की आवश्यकता है। डाउनलोड करें डैशबोर्ड से mitmproxy-ca-cert.pem इसे Keychain Access -> System में जोड़ें और "Always Trust" सेट करें। MacOS: कॉपी करें /usr/local/share/ca-certificates/ और अपडेट करें। Linux: 3. जादू कमांड अब हम उपयोग के साथ फ्लैग (Flag) के लिए curl -x curl -v -x http://user:pass@chaos-proxy.debuggo.app:13979 https://httpbin.org/get उत्पादन को समझें जब आप इस आदेश को कई बार चलाते हैं: परिदृश्य A (जाओस): आप 7 सेकंड के लिए टर्मिनल "हमारी देरी" को नोटिस करेंगे। < HTTP/1.1 500 Internal Server Error < content-length: 56 < content-type: text/plain ... Debuggo Chaos Injection: 500 Error अन्य 50% समय, अनुरोध वास्तविक सर्वर के माध्यम से गुजरता है: Scenario B (Success) < HTTP/1.1 200 OK ... { "args": {}, "headers": { ... } } Real World Use Cases सीआई पाइपलाइनों का परीक्षण करें: सुनिश्चित करें कि आपकी तैनाती स्क्रिप्ट दुर्घटना नहीं होती है यदि एक निर्भरता धीमी है। क्रोन नौकरियां: असफलता पर अपने रात के डेटा सिंक्रनाइज़ रिट्री को सही ढंग से सुनिश्चित करें। त्वरित स्वस्थता जांच: कोड दबाने से पहले, जांचें कि एपीआई क्लाइंट एक 503 त्रुटि को कैसे संभालता है। निष्कर्ष आपको नेटवर्क प्रतिरोधीता का परीक्षण करने के लिए भारी बुनियादी ढांचे की आवश्यकता नहीं है. एक सरल प्रॉक्सी सेटिंग आपको किसी भी एचटीटीटीपी क्लाइंट में अराजकता इंजेक्शन देने की अनुमति देता है – चाहे वह हो। , , या आपके Python / Node.js स्क्रिप्ट। curl wget Happy Breaking !