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
76
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
200
Big Data para Gerentes de Projetos
celsocrivelaro
0
41
FileSystems em Ruby com FUSE
celsocrivelaro
2
54
Padrões e Boas Práticas de Teste de Tela
celsocrivelaro
0
350
Projeto de APIs
celsocrivelaro
0
140
Testing Network Conditions with ToxiProxy
celsocrivelaro
1
300
Actor Model in Ruby
celsocrivelaro
0
220
Separando as regras de negócios do Rails
celsocrivelaro
0
170
InfluxDB + Grafana
celsocrivelaro
0
230
Other Decks in Technology
See All in Technology
Databricks における 『MLOps』
databricksjapan
2
120
人間の尊厳、幸福、アクセシビリティ / 第116回「WEB TOUCH MEETING」アクセシビリティSP
nulabinc
PRO
2
180
エンタープライズ環境下での Active Directory の運用 TIPS
tamaiyutaro
1
1.5k
キャラクター制御のためのプロンプト術 for LINE Bot
uezo
0
520
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
1
470
20240416_devopsdaystokyo
kzkmaeda
1
170
Four keys改善の取り組み事例紹介
sansantech
PRO
2
230
TransitGatewayの基礎
toru_kubota
0
230
株式会社EventHub・エンジニア採用資料
eventhub
0
1.9k
AWS を使う上で知っておきたいオンプレミス知識/aws-on-premise-essentials
emiki
1
4.1k
普段有償でサポート業務をしているCSAが技術知見を無料で公開する理由
07jp27
1
620
PHP"オレ"カンファレンスの告知
ysknsid25
0
310
Featured
See All Featured
Bash Introduction
62gerente
604
210k
Unsuck your backbone
ammeep
662
57k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
658
120k
VelocityConf: Rendering Performance Case Studies
addyosmani
319
23k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
243
20k
10 Git Anti Patterns You Should be Aware of
lemiorhan
645
57k
Thoughts on Productivity
jonyablonski
57
3.8k
YesSQL, Process and Tooling at Scale
rocio
162
13k
Git: the NoSQL Database
bkeepers
PRO
421
63k
Being A Developer After 40
akosma
56
580k
Faster Mobile Websites
deanohume
296
30k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
15
1.4k
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