“Ajo punon në makinën time.” Por a funksionon skripti juaj bash kur API-ja e palës së tretë merr 15 sekonda për t'iu përgjigjur? A e menaxhon shërbimi juaj backend një rritje të papritur të gabimeve 503 nga një ofrues i pagesave? Shkrimi i një serveri të plotë mock vetëm për të testuar një logjikë të thjeshtë retry në një skenar është shpesh overkill. . Chaos Engineering directly in the terminal Ne do të përdorim dhe një cloud-based Chaos Proxy për të injektuar dështimet në kërkesa reale të rrjetit pa ndryshuar një rresht të vetëm të kodit të aplikacionit tuaj. curl Problemi: Localhost është shumë i përsosur Kur zhvillohen në vend, vonesa e rrjetit është pothuajse zero. API-t ose punojnë (200 OK) ose nuk punojnë (Lidhja refuzohet). Serveri është i zënë. : 5% e kërkesave të ulëta. Ju keni goditur limitin e normës. High Latency Intermittent Failures Throttling Simulimi i kësaj në një terminal zakonisht përfshin komplekse rregullat ose mjetet lokale si (Kontrolli i trafikut) Ka një mënyrë më të lehtë. iptables tc Zgjidhja: Cloud Chaos Proxy Në vend të konfigurimit të OS-it tuaj, ne do të drejtojmë kërkesa specifike përmes një proxy që "shkatërron" trafikun sipas rregullave që ne përcaktojmë. Unë do të përdor chaos-proxy.debuggo.app për këtë, por koncepti zbatohet për çdo proxy të programueshme. Udhëzues për video (1:27) Këtu është rrjedha e punës 90 sekonda: https://www.youtube.com/watch?v=x_S-guPwPEk&embedable=true Step-by-Step Tutorial 1) Përcaktimi i dështimit Së pari, ne duhet të tregojmë proxy se çfarë të thyejë. Qëllimi: httpbin.org (ose domeni juaj i API) Kohëzgjatja e vonesës: 7 sekonda (simulimi i vonesës). Shkalla e dështimit: 1 (100% e kërkesave do të dështojnë). Kodi i gabimit: 503 Shërbimi nuk është i disponueshëm. Besoni në certifikatën (Setup "një herë") Meqenëse ne jemi duke kapur trafikun HTTPS, ne duhet të besojmë në certifikatën CA të proxy. Shkarko The Në dashboard. mitmproxy-ca-cert.pem Shtoni atë në Keychain Access -> System dhe vendosni "Gjithmonë Besoni". MacOS: Kopjoni në /usr/local/share/ca-certificates/ dhe përditësoni. Linux: 3 – Komanda Magjike Tani ne përdorim Me të Flamuri i Proxhit. curl -x curl -v -x http://user:pass@chaos-proxy.debuggo.app:13979 https://httpbin.org/get Të kuptojmë prodhimin Nëse e përsërisni këtë urdhër disa herë: Skenari A (Kaosi): Do të vini re se terminali "varet" për 7 sekonda (ngadalësimi ynë). < HTTP/1.1 500 Internal Server Error < content-length: 56 < content-type: text/plain ... Debuggo Chaos Injection: 500 Error : Pjesa tjetër e 50% e kohës, kërkesa kalon nëpër serverin e vërtetë: Scenario B (Success) < HTTP/1.1 200 OK ... { "args": {}, "headers": { ... } } Real World Use Cases Testimi i tubacioneve CI: Sigurohuni që skripti juaj i vendosjes të mos bjerë nëse një varësi është e ngadaltë. Cron Jobs: Sigurohuni që sinkronizimi i të dhënave të natës të rikthehet saktë në dështim. Kontrollet e shpejta të shëndetit: Para se të shtypni kodin, kontrolloni se si klienti i API-së trajton një gabim 503. Konkludimi Ju nuk keni nevojë për infrastrukturë të rëndë për të testuar qëndrueshmërinë e rrjetit. Një konfigurim i thjeshtë proxy ju lejon të futni kaos në çdo klient HTTP – qoftë ajo të , ose skripte tuaja Python / Node.js. curl wget Shpërthim i lumtur!