Доступен выпуск прокси-сервера Toxiproxy 2.6, предназначенного для симуляции сбоев в работе сети и тестирования работоспособности приложений при возникновении различных аномалий. Сервер развивается компанией Shopify, разрабатывающей одну из крупнейших платформ электронной коммерции. Прокси может применяться для проведения отдельных экспериментов или интегрироваться с системами unit-тестирования, платформами непрерывной интеграции и окружениями для разработки. Код Toxiproxy написан на языке Go и распространяется под лицензией MIT.
Прокси встраивается между проверяемым приложением и сетевым сервисом, с которым взаимодействует данное приложение, после чего может симулировать возникновение определённой задержки при получении ответа от сервера или отправки запроса, изменять пропускную способность, симулировать отказ принимать соединения, нарушать нормальный ход установки или закрытия соединений, сбрасывать установленные соединения, искажать содержимое пакетов.
Для управления работой прокси-сервера из приложений предоставляются клиентские библиотеки для языков Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust и Elixir, которые позволяют на лету изменять условия сетевого взаимодействия и сразу оценивать результат. Для изменения характеристик канала связи без внесения изменений в код может применяться специальная утилита toxiproxy-cli (подразумевается, что API Toxiproxy используется в unit-тестах, а утилита может быть полезна для проведения интерактивных экспериментов).
Из изменений в новом выпуске отмечается возможность завершения работы HTTP-сервера без разрыва активных соединений (gracefull shutdown), добавление поддержи HTTP-метода PATCH для обновления прокси, возможность задания клиентом (httpClient) HTTP-заголовков, таких как User-Agent и Content-Type, замена отдельных параметров host и port на общий параметр addr.
|