Az én gépemen működik.” Mindannyian azt mondtuk.De működik-e a bash script, ha a harmadik fél API 15 másodpercet vesz igénybe a válaszadáshoz? A teljes hamis szerver írásának egyszerű tesztelése egy egyszerű retry logikában egy forgatókönyvben gyakran túlzás. Ebben a bemutatóban gyorsabban megmutatom: . Chaos Engineering directly in the terminal Használni fogjuk és egy felhőalapú Chaos Proxy, amely hibákat ad be a valós hálózati kérelmekbe anélkül, hogy megváltoztatná az alkalmazás kódjának egyetlen sort. curl A probléma: a Localhost túl tökéletes A helyi fejlesztés során a hálózati késleltetés közel nulla. API-k vagy működnek (200 OK) vagy nem (kapcsolat megtagadva). A szerver nagyon elfoglalt. A kérelmek 5% -a csökken. • Megütötte a határértéket. High Latency Intermittent Failures Throttling Ezt a terminálban történő szimuláció általában komplex szabályok vagy helyi eszközök, mint például (A közlekedés szabályozása) Van egy egyszerűbb módja. iptables tc A megoldás: Cloud Chaos Proxy Ahelyett, hogy konfigurálnánk az operációs rendszert, konkrét kéréseket fogunk útmutatni egy proxy-on keresztül, amely "megszakítja" a forgalmat az általunk meghatározott szabályok szerint. Ehhez a chaos-proxy.debuggo.app-ot fogom használni, de a koncepció bármilyen programozható proxyre vonatkozik. Videó útmutató (1:27) Íme a 90 másodperces munkafolyamat: https://www.youtube.com/watch?v=x_S-guPwPEk&embedable=true Step-by-Step Tutorial 1. Határozza meg a kudarcot Először is meg kell mondanunk a proxy-nek, hogy mit kell törni. Cél: httpbin.org (vagy az Ön API tartománya) Késleltetés: 7 másodperc (szimulált késleltetés) Sikertelenség aránya: 1 (a kérések 100% -a sikertelen lesz). Hiba kód: 503 Szolgáltatás nem elérhető. 2. Bízzon a tanúsítvánnyal (Az „egyszeres” beállítás) Mivel a HTTPS-forgalmat elfogjuk, meg kell bíznunk a proxy CA tanúsítványában. Letöltés a A Dashboardról mitmproxy-ca-cert.pem Adja hozzá a Keychain Access -> Rendszer és állítsa be a „mindig bízzon”. MacOS: Másoljon a /usr/local/share/ca-certificates/ és frissítse. Linux: 3. A mágikus parancsnokság Most már használjuk Azokkal a A Proxy zászlaja. curl -x curl -v -x http://user:pass@chaos-proxy.debuggo.app:13979 https://httpbin.org/get A kimenet megértése Ha ezt a parancsot többször is futtatja: A (Káosz) forgatókönyv: 7 másodpercig észre fogod venni, hogy a terminál „felfüggeszt” (a késésünk). < HTTP/1.1 500 Internal Server Error < content-length: 56 < content-type: text/plain ... Debuggo Chaos Injection: 500 Error A másik 50% az idő, a kérés áthalad a valódi szerver: Scenario B (Success) < HTTP/1.1 200 OK ... { "args": {}, "headers": { ... } } Real World Use Cases CI csővezetékek tesztelése: Ellenőrizze, hogy a telepítési szkriptek nem összeomlanak, ha a függőség lassú. Cron Jobs: Győződjön meg róla, hogy az éjszakai adatok szinkronizálása hibák esetén helyesen történik. Gyors egészségellenőrzés: Mielőtt kódot nyomna, ellenőrizze, hogy az API-ügyfél hogyan kezeli az 503-as hibát. következtetés Nincs szükség nehéz infrastruktúrára a hálózat ellenálló képességének teszteléséhez.Egyszerű proxy-beállítás lehetővé teszi, hogy káoszt adjon be bármely HTTP kliensbe – legyen az az , , vagy a Python/Node.js szkriptjeit. curl wget Boldog szünetet!