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
0
79
Testing Network Conditions with ToxiProxy
Talk in Agile Testers Conference - São Paulo, Brazil
Celso Crivelaro
March 18, 2017
Tweet
Share
More Decks by Celso Crivelaro
See All by Celso Crivelaro
Sistemas de Recomendação
celsocrivelaro
2
210
Big Data para Gerentes de Projetos
celsocrivelaro
0
49
FileSystems em Ruby com FUSE
celsocrivelaro
2
63
Padrões e Boas Práticas de Teste de Tela
celsocrivelaro
0
400
Projeto de APIs
celsocrivelaro
0
150
Testing Network Conditions with ToxiProxy
celsocrivelaro
1
370
Actor Model in Ruby
celsocrivelaro
0
240
Separando as regras de negócios do Rails
celsocrivelaro
0
180
InfluxDB + Grafana
celsocrivelaro
0
250
Other Decks in Technology
See All in Technology
地に足の付いた現実的な技術選定から魔力のある体験を得る『AIレシート読み取り機能』のケーススタディ / From Grounded Tech Choices to Magical UX: A Case Study of AI Receipt Scanning
moznion
5
1.8k
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2025年版)
infiniteloop_inc
13
43k
事業と組織から目を逸らずに技術でリードする
ogugu9
18
4.4k
自動化の第一歩 -インフラ環境構築の自動化について-
smt7174
1
140
Part2 GitHub Copilotってなんだろう
tomokusaba
2
840
Google Cloud Next 2025 Recap アプリケーション開発を加速する機能アップデート / Application development-related features of Google Cloud
ryokotmng
0
280
250510 StepFunctionのテスト自動化始めました vol.1
east_takumi
1
250
Part1 GitHubってなんだろう?その1
tomokusaba
3
830
newmo の創業を支える Software Architecture と Platform Engineering
110y
5
550
Docker Compose で手軽に手元環境を実現する / Simplifying Local Environments with Docker Compose #CinemaDeLT
nabeo
0
220
VitePress & MCPでアプリ仕様のオープン化に挑戦する
hal_spidernight
0
120
木を見て森も見る-モジュールが織りなすプロダクトの森
kworkdev
PRO
0
240
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
Designing Experiences People Love
moore
142
24k
Being A Developer After 40
akosma
91
590k
Raft: Consensus for Rubyists
vanstee
137
6.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
Building Applications with DynamoDB
mza
94
6.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Code Reviewing Like a Champion
maltzj
523
40k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
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