Veröffentlichung von Toxiproxy 2.3, einem Proxy zum Testen der Anwendungsresilienz gegenüber Netzwerkproblemen

Shopify, eine der größten E-Commerce-Plattformen, hat Toxiproxy 2.3 veröffentlicht, einen Proxyserver, der Netzwerk- und Systemausfälle und Anomalien simuliert, um die Anwendungsleistung zu testen, wenn solche Bedingungen auftreten. Das Programm zeichnet sich durch die Bereitstellung einer API zur dynamischen Änderung der Kommunikationskanaleigenschaften aus, mit der sich Toxiproxy in Unit-Testing-Systeme, Continuous-Integration-Plattformen und Entwicklungsumgebungen integrieren lässt. Der Toxiproxy-Code ist in Go geschrieben und wird unter der MIT-Lizenz vertrieben.

Zwischen der zu testenden Anwendung und dem Netzwerkdienst, mit dem diese Anwendung interagiert, läuft ein Proxy. Anschließend kann er das Auftreten einer bestimmten Verzögerung beim Empfang einer Antwort vom Server oder beim Senden einer Anfrage simulieren, die Bandbreite ändern und eine Verweigerung der Annahme von Verbindungen simulieren , den normalen Fortschritt beim Herstellen oder Schließen von Verbindungen stören, bestehende Verbindungen zurücksetzen, den Inhalt von Paketen verzerren.

Um den Betrieb des Proxyservers von Anwendungen aus zu steuern, werden Clientbibliotheken für Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust und Elixir bereitgestellt, mit denen Sie die Netzwerkinteraktion ändern können Erfassen Sie die Bedingungen im Handumdrehen und werten Sie das Ergebnis sofort aus. Um die Eigenschaften eines Kommunikationskanals zu ändern, ohne Änderungen am Code vorzunehmen, kann ein spezielles Dienstprogramm toxiproxy-cli verwendet werden (es wird davon ausgegangen, dass die Toxiproxy-API in Komponententests verwendet wird und das Dienstprogramm für die Durchführung interaktiver Experimente nützlich sein kann).

Zu den Änderungen in der neuen Version gehören die Aufnahme eines Client-Endpunkt-Handlers für HTTPS, die Aufteilung typischer Test-Handler in separate Dateien, die Implementierung der client.Populate-API, Unterstützung für die Plattformen armv7 und armv6 sowie die Möglichkeit zur Änderung die Protokollierungsstufe für den Server.

Source: opennet.ru

Kommentar hinzufügen