Ito ay gumagana sa aking machine." Sinabi namin ang lahat. Ngunit gumagana ba ang iyong bash script kapag ang third-party API ay nangangailangan ng 15 segundo upang makipag-usap? Nagtatrabaho ba ang iyong backend service sa isang pag-aayos ng mga error ng 503 mula sa isang provider ng pagbabayad? I-writing ang isang buong mock server lamang upang i-test ang isang simpleng retry logic sa isang script ay karaniwang overkill. . Chaos Engineering directly in the terminal We will use at isang cloud-based Chaos Proxy upang i-inject ang mga error sa real network requests nang walang pagbabago ng isang single line ng iyong application code. curl Ang problema: Ang Localhost ay Higit pa Perfect Sa pag-unlad sa lokal, ang network latency ay malapit sa zero. APIs either work (200 OK) or they don't (Connection Refused). Ang server ay busy. : 5% ng mga request drop. Tapos na ang rate limit. High Latency Intermittent Failures Throttling Simulating ito sa isang terminal ay karaniwang naglalaman ng complex mga regulasyon o mga lokal na mga tool tulad ng (Traffic Control) May isang mas simpleng paraan. iptables tc Ang solusyon: Cloud Chaos Proxy Sa halip ng pag-configure ng iyong OS, i-route ang anumang mga pangangailangan sa pamamagitan ng isang proxy na "bubuo" ang traffic ayon sa mga patakaran na natuklasan namin. I'll be using chaos-proxy.debuggo.app para sa ito, ngunit ang konsepto ay gumagamit para sa anumang programmable proxy. Mga pahinang tumuturo (1:27) Narito ang 90-second workflow: https://www.youtube.com/watch?v=x_S-guPwPEk&embedable=true Step-by-Step Tutorial I-defined ang failure Kailangan naming sabihin sa proxy kung ano ang dapat i-break. Target: httpbin.org (o ang iyong domain ng API). Araw ng Kalayaan: 7 segundo (Simulate lag) Ang rate ng pag-aalala: 1 (100% ng mga pag-aalala ay mag-aalala). Ang error code ay 503 Service Unavailable. Trust the Certificate (Ang "One-Time" Setup) Dahil nag-intercept ang HTTPS traffic, kailangan naming magpaliwanag ang proxy's CA certificate. Download ang mula sa dashboard. mitmproxy-ca-cert.pem Ipasok ito sa Keychain Access -> System at i-set ang "Always Trust." MacOS: I-copy sa /usr/local/share/ca-certificates/ at i-update ang mga ito. Linux: 3. ang magic command Ngayon, ginagamit natin ang sa mga Ang mga flag. curl -x curl -v -x http://user:pass@chaos-proxy.debuggo.app:13979 https://httpbin.org/get Malalaman ang output Kapag bumalik na ako sa UP, i'll start building a new me. Scenario A (The Chaos): Makikita mo ang terminal "hangs" para sa 7 segundo (ang aming pag-atake). < HTTP/1.1 500 Internal Server Error < content-length: 56 < content-type: text/plain ... Debuggo Chaos Injection: 500 Error : Ang iba pang 50% ng oras, ang request ay passed sa real server: Scenario B (Success) < HTTP/1.1 200 OK ... { "args": {}, "headers": { ... } } Real World Use Cases Testing CI Pipelines: I-verify na ang iyong deployment scripts ay hindi crashed kung ang isang dependency ay slow. Cron Jobs: I-siguraduhin na ang iyong nightly data sync retries ay korektong sa pag-usapan. Quick Sanity Checks: Para sa pag-print ng code, i-verify kung paano ang API client ay nagtatrabaho sa isang error 503. Konklusyon Hindi mo kailangan ng malaking infrastructure upang i-test ang network resilience. Ang isang simpleng proxy setup ay nagbibigay-daan sa iyo upang i-inject ang kaos sa anumang HTTP client—wala ito na ang , o ang iyong Python / Node.js scripts. curl wget Happy ang break! 🙂