Выпуск Toxiproxy 2.3, прокси для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ устойчивости ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ сСтСвым ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ

Компания Shopify, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π°Ρ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ элСктронной ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ†ΠΈΠΈ, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° выпуск прокси-сСрвСра Toxiproxy 2.3, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для симуляции сСтСвых ΠΈ систСмных сбоСв ΠΈ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ для тСстирования работоспособности ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… условий. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π° прСдоставлСниСм API для динамичСского измСнСния характСристик ΠΊΠ°Π½Π°Π»Π° связи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Toxiproxy с систСмами unit-тСстировния, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ окруТСниями для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Код Toxiproxy написан Π½Π° языкС Go ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

ΠŸΡ€ΠΎΠΊΡΠΈ запускаСтся ΠΌΠ΅ΠΆΠ΄Ρƒ провСряСмым ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ сСтСвым сСрвисом, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ взаимодСйствуСт Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, послС Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ сСрвСра ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ запроса, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ, ΡΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ°Π· ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ соСдинСния, Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ…ΠΎΠ΄ установки ΠΈΠ»ΠΈ закрытия соСдинСний, ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ установлСнныС соСдинСния, ΠΈΡΠΊΠ°ΠΆΠ°Ρ‚ΡŒ содСрТимоС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

Для управлСния Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ прокси-сСрвСра ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ клиСнтскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для языков Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust ΠΈ Elixir, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π° Π»Π΅Ρ‚Ρƒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ условия сСтСвого взаимодСйствия ΠΈ сразу ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Для измСнСния характСристик ΠΊΠ°Π½Π°Π»Π° связи Π±Π΅Π· внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° toxiproxy-cli (подразумСваСтся, Ρ‡Ρ‚ΠΎ API Toxiproxy ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² unit-тСстах, Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° для провСдСния ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… экспСримСнтов).

Из ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½ΠΎΠ²ΠΎΠΌ выпускС отмСчаСтся Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ клиСнтского endpoint-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° для HTTPS, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… тСстовых ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ, рСализация API client.Populate, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ armv7 ΠΈ armv6, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ измСнСния уровня вСдСния Π»ΠΎΠ³ΠΎΠ² для сСрвСра.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ