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
400
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Testing Network Conditions with ToxiProxy
Talk in Agile Testers Conference 2017 - SP
Celso Crivelaro
March 18, 2017
More Decks by Celso Crivelaro
See All by Celso Crivelaro
Sistemas de Recomendação
celsocrivelaro
2
240
Big Data para Gerentes de Projetos
celsocrivelaro
0
72
FileSystems em Ruby com FUSE
celsocrivelaro
2
75
Padrões e Boas Práticas de Teste de Tela
celsocrivelaro
0
450
Projeto de APIs
celsocrivelaro
0
180
Testing Network Conditions with ToxiProxy
celsocrivelaro
0
92
Actor Model in Ruby
celsocrivelaro
0
270
Separando as regras de negócios do Rails
celsocrivelaro
0
190
InfluxDB + Grafana
celsocrivelaro
0
270
Other Decks in Technology
See All in Technology
Go 1.27 の標準パッケージに uuid が入った!のでいろいろ喋る / go_127_std_go_uuid
convto
3
650
AIのためのEthernet技術動向 (SerDes)
markunet
1
300
LLM Internals: 언어 모델의 계보와 알고리즘 진화 (2023~2026)
inureyes
PRO
1
890
地震情報アプリを作ってみた
yama3133
1
110
What's new in Go 1.27?
ciarana
0
370
RapidCopy2 Matrix I/Oエンジンによるファイルコピーソフトウェアの設計と実装
kengosawa2
1
350
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
270
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
85k
三人寄ればチューリング完全
puhitaku
6
3k
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.6k
[potatotips #96] Give Your AI Agent the Flutter Playbook
korodroid
0
150
AI時代に、人は何を、どう学ぶのか #pbl_pub / What and How Do We Learn in the AI Era?
takaking22
1
240
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
260
HDC tutorial
michielstock
2
810
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Believing is Seeing
oripsolob
1
200
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
480
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
250
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The Cult of Friendly URLs
andyhume
79
7k
Technical Leadership for Architectural Decision Making
baasie
3
520
Amusing Abliteration
ianozsvald
1
260
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