Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Testing Network Conditions with ToxiProxy
Search
Celso Crivelaro
March 18, 2017
Technology
1
300
Testing Network Conditions with ToxiProxy
Talk in Agile Testers Conference 2017 - SP
Celso Crivelaro
March 18, 2017
Tweet
Share
More Decks by Celso Crivelaro
See All by Celso Crivelaro
Sistemas de Recomendação
celsocrivelaro
2
200
Big Data para Gerentes de Projetos
celsocrivelaro
0
42
FileSystems em Ruby com FUSE
celsocrivelaro
2
54
Padrões e Boas Práticas de Teste de Tela
celsocrivelaro
0
360
Projeto de APIs
celsocrivelaro
0
140
Testing Network Conditions with ToxiProxy
celsocrivelaro
0
76
Actor Model in Ruby
celsocrivelaro
0
230
Separando as regras de negócios do Rails
celsocrivelaro
0
170
InfluxDB + Grafana
celsocrivelaro
0
240
Other Decks in Technology
See All in Technology
uvを使ってストレスフリーな Python開発をしよう!
r74tech
0
260
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
7
4.9k
リテール金融(キャッシュレス・ネット銀行・ネット証券)の競争環境と経済圏
8maki
0
1.8k
競技としてのKaggle、役に立つKaggle
yu4u
7
2.5k
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
470
Cypress or Playwright?
rainerhahnekamp
0
180
Cloud Service Mesh に触れ合う
phaya72
1
310
Building Dashboards as a Hobby
egmc
0
430
How to Lead? Testimonial of a Lead Android Engineer
oleur
1
120
本当のガバクラ基礎
toru_kubota
0
240
NewSQL Landscape
oracle4engineer
PRO
2
2.7k
Documentação de Produtos: Artefatos essenciais na prática
rigolon
1
230
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
238
11k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
Atom: Resistance is Futile
akmur
260
25k
What the flash - Photography Introduction
edds
64
11k
The Cult of Friendly URLs
andyhume
74
5.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
It's Worth the Effort
3n
180
27k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Producing Creativity
orderedlist
PRO
338
39k
Automating Front-end Workflow
addyosmani
1357
200k
How STYLIGHT went responsive
nonsquared
92
4.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
Transcript
Testing network conditions with ToxiProxy Celso Crivelaro @celsocrivelaro
Tech Lead @
Professor @
Past: Monolithic Applications
Today: Distributed Systems
External API Service Server App DB API Mobile Mobile App
Web App
Share Resources Communication over TCP/IP
Network- dependent Apps
None
https://engineering.riotgames.com/news/fixing-internet-real-time-applications-part-i
None
None
None
None
Network fails
“A Distributed System is one in which the failure of
a computer you didn’t even know existed can render your own computer unusable” Leslie Lamport
None
Network Model
"Ozzy" Model?
None
200.124.124.1 200.0.124.5 200.5.34.12 200.3.5.51 200.3.5.52
200.124.124.1 200.0.124.5 200.5.34.12 200.3.5.51 200.3.5.52 200.124.124.1:80 -> 200.3.5.52:80
Networking Problems
No connection No connection between parts Latency Timeout Bandwidth Slow
Close Time to packages go and return Stop responding Bandwidth size in Mb/s Slow close connection
What are we testing?
How your app responds to network errors
User perception to network problem Business rule to the problem
Technical action to the problem
Resiliency
How to simulate?
Hard modify a staging env Hard to automate Low level
tools -> For sysadmins No APIs for Devs or QA
http://toxiproxy.io
TCP TCP APP SERVICE
TCP TCP APP SERVICE Toxies Latency Bandwidth ...
TCP TCP TCP TCP APP SERVICE 2 SERVICE 1 HTTP
API
None
How to automate
Some Solutions
Low timeout Retries Patterns - Circuit Break Fallbacks Caching strategies
Resiliency Matrix
App 1 Database API App 2 ZIP Checker External API
App 3 Unavailable Unavailable Unavailable Unavailable Degraded Available Available Not Aplic. Not Aplic. Unavailable Degraded Degraded If integration fails...
References
None
http://toxiproxy.io
https://engineering.shopify.com/17489072-building-and-testing-resilient-ruby-on-rails-applications
Thank you! @celsocrivelaro Slides in: http://crivelaro.me