Vrystelling van Toxiproxy 2.3, 'n instaanbediener om toepassingsveerkragtigheid teen netwerkprobleme te toets

Shopify, een van die grootste e-handelsplatforms, het Toxiproxy 2.3 vrygestel, 'n instaanbediener wat ontwerp is om netwerk- en stelselfoute en anomalieë te simuleer om die werkverrigting van toepassings te toets wanneer sulke toestande voorkom. Die program is opvallend vir die verskaffing van 'n API vir dinamies veranderende kommunikasiekanaal eienskappe, wat gebruik kan word om Toxiproxy te integreer met eenheidstoetsstelsels, deurlopende integrasieplatforms en ontwikkelingsomgewings. Die Toxiproxy-kode is in Go geskryf en onder die MIT-lisensie versprei.

'n Instaanbediener loop tussen die toepassing wat getoets word en die netwerkdiens waarmee hierdie toepassing interaksie het, waarna dit die voorkoms van 'n sekere vertraging kan simuleer wanneer 'n antwoord vanaf die bediener ontvang word of 'n versoek gestuur word, bandwydte kan verander, 'n weiering om verbindings te aanvaar , ontwrig die normale vordering van die vestiging of sluiting van verbindings, herstel gevestigde verbindings, verdraai die inhoud van pakkies.

Om die werking van die instaanbediener vanaf toepassings te beheer, word kliëntbiblioteke voorsien vir die tale Ruby, Go, Python, C#/.NET, PHP, JavaScript/Node.js, Java, Haskell, Rust en Elixir, wat jou toelaat om netwerkinteraksie-toestande dadelik te verander en die resultaat onmiddellik te evalueer. Om die kenmerke van 'n kommunikasiekanaal te verander sonder om veranderinge aan die kode aan te bring, kan 'n spesiale nutsprogram toxiproxy-cli gebruik word (daar word aanvaar dat die Toxiproxy API in eenheidstoetse gebruik word, en die nut kan nuttig wees vir die uitvoer van interaktiewe eksperimente).

Onder die veranderinge in die nuwe vrystelling is die insluiting van 'n kliënt eindpunt hanteerder vir HTTPS, die skeiding van tipiese toets hanteerders in aparte lêers, die implementering van die kliënt. Bevolk API, ondersteuning vir die armv7 en armv6 platforms, en die vermoë om te verander die aantekenvlak vir die bediener.

Bron: opennet.ru

Voeg 'n opmerking