Veröffentlichung von Toxiproxy 2.3, einem Proxy zur Überprüfung der Robustheit von Anwendungen gegenüber Netzwerkproblemen

Das Unternehmen Shopify, das eine der größten E-Commerce-Plattformen entwickelt, hat die Veröffentlichung des Proxys Toxiproxy 2.3 bekannt gegeben, der dazu dient, Netzwerk- und Systemausfälle sowie Anomalien zu simulieren, um die Funktionsfähigkeit von Anwendungen unter solchen Bedingungen zu testen. Das Programm zeichnet sich durch die Bereitstellung einer API aus, mit der die Eigenschaften des Kommunikationskanals dynamisch geändert werden können, was eine Integration von Toxiproxy in Systeme für Unit-Tests, Continuous-Integration-Plattformen und Entwicklungsumgebungen ermöglicht. Der Code von Toxiproxy ist in der Programmiersprache Go geschrieben und wird unter der MIT-Lizenz veröffentlicht.

Der Proxy wird zwischen der zu überprüfenden Anwendung und dem Netzwerkdienst gestartet, mit dem diese Anwendung interagiert, und kann dann eine bestimmte Verzögerung bei der Antwort von Server oder der Anfrageänderung simulieren, die Bandbreite ändern, die Annahme von Verbindungen simulieren, den normalen Verlauf von Verbindungen zu stören oder abzubrechen, bestehende Verbindungen zurückzusetzen und den Inhalt von Paketen zu verzerren.

Für die Steuerung der Proxy-Server-Funktionalität aus Anwendungen stehen Client-Bibliotheken für die Programmiersprachen Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust und Elixir zur Verfügung, die es ermöglichen, die Bedingungen der Netzwerkinteraktion in Echtzeit zu ändern und sofortige Rückmeldungen zu erhalten. Zur Änderung der Eigenschaften des Kommunikationskanals, ohne den Code zu verändern, kann das spezielle Dienstprogramm toxiproxy-cli verwendet werden (es wird angenommen, dass die Toxiproxy-API in Unit-Tests verwendet wird, während das Dienstprogramm nützlich sein kann, um interaktive Experimente durchzuführen).

Zu den Änderungen in der neuen Version gehört die Einführung eines Client-Endpunktverarbeiters für HTTPS, die Trennung typischer Testverarbeiter in separate Dateien, die Implementierung der API client.Populate, die Unterstützung für die Plattformen armv7 und armv6 sowie die Möglichkeit, das Protokollierungsniveau für den Server zu ändern.

Quelle: opennet.ru

60GB SSD 8Gb DDR4