“Ini bekerja pada mesin saya.” Apakah script bash Anda bekerja ketika API pihak ketiga membutuhkan waktu 15 detik untuk menanggapi?Apakah layanan backend Anda dengan sopan menangani peningkatan mendadak dari kesalahan 503 dari penyedia pembayaran? Menulis server mock penuh hanya untuk menguji logika retry sederhana dalam script seringkali overkill. . Chaos Engineering directly in the terminal Kami akan menggunakan dan Proxy Chaos berbasis awan untuk menyuntikkan kegagalan ke permintaan jaringan nyata tanpa mengubah satu baris kode aplikasi Anda. curl Masalah: Localhost terlalu sempurna Ketika dikembangkan secara lokal, latensi jaringan hampir nol. API baik bekerja (200 OK) atau tidak (Connection Refused). Server sudah sibuk. 5% dari permintaan turun. Anda telah mencapai batas tarif. High Latency Intermittent Failures Throttling Simulasi ini dalam terminal biasanya melibatkan kompleks peraturan atau alat lokal seperti (Pengendalian lalu lintas) Ada cara yang lebih mudah. iptables tc Solusi: Cloud Chaos Proxy Alih-alih mengkonfigurasi OS Anda, kami akan mengarahkan permintaan spesifik melalui proxy yang "menghancurkan" lalu lintas sesuai dengan aturan yang kami definisikan. Saya akan menggunakan chaos-proxy.debuggo.app untuk ini, tetapi konsepnya berlaku untuk proxy yang dapat diprogram. Panduan Video (1:27) Berikut ini adalah langkah-langkah kerja 90 detik: https://www.youtube.com/watch?v=x_S-guPwPEk&embedable=true Step-by-Step Tutorial 1) Menentukan kegagalan Pertama, kita perlu memberi tahu proxy apa yang harus dipecahkan. Target: httpbin.org (atau domain API Anda) Delay: 7 detik (Lag simulasi) Tingkat kegagalan: 1 (100% dari permintaan akan gagal). Kode Kesalahan: 503 Layanan Tidak Tersedia. Percaya Sertifikat (The "One-Time" Setup) Karena kami menangkap lalu lintas HTTPS, kami perlu mempercayai sertifikat CA proxy. Download dari dari dashboard tersebut. mitmproxy-ca-cert.pem Tambahkan ke Keychain Access -> Sistem dan set "Selalu Percaya." MacOS: Salin ke /usr/local/share/ca-certificates/ dan update. Linux: 3. komando sihir Sekarang, kita menggunakan Dengan yang Proxy adalah bendera. curl -x curl -v -x http://user:pass@chaos-proxy.debuggo.app:13979 https://httpbin.org/get Memahami hasil Jika Anda menjalankan perintah ini berkali-kali: Skenario A (The Chaos): Anda akan melihat terminal "hangs" selama 7 detik (ketidakhadiran kami). < HTTP/1.1 500 Internal Server Error < content-length: 56 < content-type: text/plain ... Debuggo Chaos Injection: 500 Error : 50% lainnya dari waktu, permintaan melewati ke server nyata: Scenario B (Success) < HTTP/1.1 200 OK ... { "args": {}, "headers": { ... } } Real World Use Cases Pengujian Pipelines CI: Pastikan bahwa skrip implementasi Anda tidak crash jika ketergantungan lambat. Cron Jobs: Pastikan ulang sinkronisasi data malam Anda dengan benar pada kegagalan. Quick Sanity Checks: Sebelum menekan kode, periksa bagaimana klien API menangani kesalahan 503. Kesimpulan Anda tidak memerlukan infrastruktur yang berat untuk menguji ketahanan jaringan. pengaturan proxy sederhana memungkinkan Anda untuk menyuntikkan kekacauan ke dalam klien HTTP apa pun—baik itu , yang , atau skrip Python / Node.js Anda. curl wget Happy Break!