Работи на мојата машина.“ Но, дали вашиот bash скрипт работи кога API-то на трета страна трае 15 секунди за да одговори? Дали вашата служба за поддршка грациозно се справува со ненадеен скок на грешките од 503 од провајдерот на плаќање? Напишувањето на комплетен сервер за измама само за да се тестира едноставна логика за повторување во сценариото е често претерано. . Chaos Engineering directly in the terminal Ќе користиме и хаос прокси базиран на облак за вбризгување на неуспеси во вистински мрежни барања без менување на еден ред на вашиот апликациски код. curl Проблемот: Localhost е премногу совршен Кога се развива на локално ниво, латенцијата на мрежата е близу нула. API-ите или работат (200 ОК) или не (Поврзување одбиено). Серверот е зафатен. 5% од барањата се намалуваат. : Сте го погодиле лимитот на стапката. High Latency Intermittent Failures Throttling Симулирање на ова во терминал обично вклучува комплекс правила или локални алатки како што се (Трафик контрола) Постои полесен начин. iptables tc Решението: Cloud Chaos Proxy Наместо да го конфигурираме вашиот оперативен систем, ние ќе ги насочиме специфичните барања преку прокси кој го "прекинува" сообраќајот според правилата што ги дефинираме. Јас ќе го користам chaos-proxy.debuggo.app за ова, но концептот се однесува на било кој програмиран прокси. Водич за видео (1:27) Еве го работниот тек од 90 секунди: https://www.youtube.com/watch?v=x_S-guPwPEk&embedable=true Step-by-Step Tutorial Дефинирање на неуспехот Прво, треба да му кажеме на прокси што да прекине. Цел: httpbin.org (или вашиот API домен). Задоцнување: 7 секунди (Simulate lag) Стапка на неуспех: 1 (100% од барањата ќе бидат неуспешни). Код на грешка: 503 Служба не е достапна. Доверба на сертификатот (Наставувањето "еднократно") Бидејќи преземаме HTTPS сообраќај, треба да му веруваме на CA сертификатот на проксито. Преземете го од таблата на таблата. mitmproxy-ca-cert.pem Додадете го во Keychain Access -> Систем и поставите "Секогаш верувајте". MacOS: Копирајте во /usr/local/share/ca-certificates/ и ажурирајте. Linux: 3 Магијата на командата Сега ние користиме Со на Прокси за знаме 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 Тестирање на CI Pipelines: Проверете дали вашите скрипти за имплементација не се урнат ако зависноста е бавна. Cron работни места: Осигурајте се дека вашите ноќни синхронизација на податоци повторно правилно во случај на неуспех. Брза контрола на здравјето: Пред да притиснете код, проверете како API клиентот се справува со грешка 503. Заклучок Не ви е потребна тешка инфраструктура за да ја тестирате отпорноста на мрежата. Едноставно поставување на прокси ви овозможува да вбризгувате хаос во кој било HTTP клиент – било да е тоа , на , или вашиот Python / Node.js скрипти. curl wget Среќен прекин!