Das Unternehmen Shopify, das eine der größten E-Commerce-Plattformen entwickelt, hat die Version 2.3 des Toxiproxy-Proxys veröffentlicht, die zur Simulation von Netzwerk- und Systemausfällen sowie Anomalien dient, um die Funktionsfähigkeit von Anwendungen unter diesen Bedingungen zu testen. Das Programm hebt sich durch die Bereitstellung einer API hervor, die dynamische Änderungen der Übertragungseigenschaften ermöglicht und damit die Integration von Toxiproxy in Unit-Testsysteme, kontinuierliche Integrationsplattformen und Entwicklungsumgebungen erleichtert. Der Code von Toxiproxy ist in der Programmiersprache Go geschrieben und steht unter der MIT-Lizenz.
Der Proxy wird zwischen der zu testenden Anwendung und dem Netzwerkdienst, mit dem diese Anwendung interagiert, gestartet und kann danach eine bestimmte Verzögerung beim Empfang von Antworten simulieren Server oder beim Senden von Anfragen, die Durchsatzrate ändern, simulieren, dass keine Verbindungen angenommen werden, den normalen Verlauf von Verbindungsaufbau oder -abbau stören, bestehende Verbindungen zurücksetzen und den Inhalt von Paketen verfälschen.
Für die Verwaltung des Proxy-Servers aus Anwendungen stehen Client-Bibliotheken für die Sprachen Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust und Elixir zur Verfügung. Diese ermöglichen es, die Bedingungen der Netzwerkinteraktion on-the-fly zu ändern und die Ergebnisse sofort zu evaluieren. Um die Eigenschaften des Kommunikationskanals ohne Codeänderungen anzupassen, kann das spezielle Tool toxiproxy-cli verwendet werden (es wird angenommen, dass die Toxiproxy-API in Unit-Tests verwendet wird, während das Tool für interaktive Experimente nützlich sein kann).
Die Änderungen in der neuen Version umfassen die Einführung eines Client-Endpunkt-Handlers für HTTPS, das Trennen der typischen Test-Handler in separate Dateien, die Implementierung des API client.Populate, die Unterstützung der Plattformen armv7 und armv6 sowie die Möglichkeit, das Logging-Niveau für den Server anzupassen.
Quelle: opennet.ru
