“To radi na mojoj mašini.” Сви смо то рекли.Али да ли ваш басх скрипт ради када АПИ треће стране траје 15 секунди да одговори?Да ли ваша служба за бацкенд грациозно третира изненадни скок 503 грешака од провајдера плаћања? Писање комплетног мацк сервера само да бисте тестирали једноставну ретри логику у скрипту често је прекомерна. . Chaos Engineering directly in the terminal Mi ćemo koristiti и хаос прокси заснован на облаку за убризгавање неуспјеха у стварне мрежне захтјеве без промене једне линије кода апликације. curl Проблем: Лоцалхост је превише савршен Када се развија локално, мрежна латенција је близу нуле. АПИ-ји или раде (200 ОК) или не раде (Повезивање је одбијено). Server je zauzet. : 5% од захтева пада. : Ви сте погодили лимит стопе. High Latency Intermittent Failures Throttling Симулација овога у терминалу обично укључује комплекс правила или локалне алате као што су (Traffic Control) Postoji lakši način. iptables tc Rešenje: Cloud Chaos Proxy Уместо конфигурирања вашег ОС-а, ми ћемо усмеравати специфичне захтеве преко прокси-а који "разбија" саобраћај према правилима која дефинишемо. Користићу хаос-проки.дебугго.апп за ово, али концепт се односи на било који програмирајући проки. Видео водич (1:27) Ево 90-секундног тока рада: https://www.youtube.com/watch?v=x_S-guPwPEk&embedable=true Step-by-Step Tutorial 1. Definišite neuspeh Прво, морамо рећи прокију шта да прекинемо. Циљ: httpbin.org (или ваш АПИ домен). Кашњење: 7 секунди (Симулација кашњења) Стопа неуспеха: 1 (100% захтева ће бити неуспешни). Код грешке: 503 Служба није доступна. Верујте сертификату (инсталација "једног пута") Пошто прихватамо ХТТПС саобраћај, морамо да верујемо ЦА сертификату прокси-а. Преузмите The из табеле. mitmproxy-ca-cert.pem Додајте га у Кључни приступ -> Систем и поставите "Увек верујте". MacOS: Копирајте у /usr/local/share/ca-certificates/ и ажурирајте. Linux: 3. чаробна команда Sada koristimo Са оним Proxy zastava curl -x curl -v -x http://user:pass@chaos-proxy.debuggo.app:13979 https://httpbin.org/get Разумевање излаза Када извршите ову команду више пута: Сценарио А (Хаос): Приметићете терминал "висе" за 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. Закључак Не треба вам тешка инфраструктура да бисте тестирали отпорност мреже. Једноставно постављање прокси-а вам омогућава да убризгате хаос у било који ХТТП клијент - било да је то , , или ваше Питхон / Ноде.ЈС скрипте. curl wget Srećan brejk!