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
Failure test with Pumba
Search
Yoshinori SHIMADA
September 03, 2018
Technology
0
870
Failure test with Pumba
Yoshinori SHIMADA
September 03, 2018
Tweet
Share
Other Decks in Technology
See All in Technology
プロファイルとAIエージェントによる効率的なデバッグ / Effective debugging with profiler and AI assistant
ymotongpoo
1
630
AIを使ってテストを楽にする
kworkdev
PRO
0
370
Open Table Format (OTF) が必要になった背景とその機能 (2025.10.28)
simosako
3
570
datadog-incident-management-intro
tetsuya28
0
110
Observability — Extending Into Incident Response
nari_ex
1
660
re:Inventに行くまでにやっておきたいこと
nagisa53
0
860
マルチエージェントのチームビルディング_2025-10-25
shinoyamada
0
230
累計5000万DLサービスの裏側 – LINEマンガのKotlinで挑む大規模 Server-side ETLの最適化
ldf_tech
0
100
今から間に合う re:Invent 準備グッズと現地の地図、その他ラスベガスを周る際の Tips/reinvent-preparation-guide
emiki
1
190
現場の壁を乗り越えて、 「計装注入」が拓く オブザーバビリティ / Beyond the Field Barriers: Instrumentation Injection and the Future of Observability
aoto
PRO
1
750
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
7
1.6k
アノテーション作業書作成のGood Practice
cierpa0905
PRO
1
350
Featured
See All Featured
Speed Design
sergeychernyshev
32
1.2k
For a Future-Friendly Web
brad_frost
180
10k
Side Projects
sachag
455
43k
Why Our Code Smells
bkeepers
PRO
340
57k
The Invisible Side of Design
smashingmag
302
51k
Writing Fast Ruby
sferik
630
62k
Testing 201, or: Great Expectations
jmmastey
46
7.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Transcript
Pumbaを使った異常系試験 @simd_nyan
$ whoami • Yoshinori Shimada @simd_nyan • 仕事 – Software
Engineer@通信会社 – クラウドサービスの開発 • 好きなプログラミング言語 – 言語 • 好きなテストフレームワーク – Gherkin/Cucumber • Dockerの好きなところ – 「俺の環境では動いた」の殲滅 ポータビリティ – 日がな1日イメージサイズ最小を目指す愉しみ 軽量
他部署 自分たちが 作っているシステム マイクロサービスなシステムの構成 DB App 謎システム App2 App1 App3
謎システム 謎システム 謎システム 謎システム
結合テスト環境のコンテナ化 DB のコンテナ App のコンテナ テスト コード App2 のモック App1
のモック App3 のコンテナ docker-compose
docker-compose 結合テストでの異常系試験の想定 DB のコンテナ App のコンテナ テスト コード App2 のモック
App1 のモック App3 のコンテナ 遅延が… 死んでる…
Pumba • Pumba: Chaos testing tool for Docker – https://github.com/alexei-led/pumba
• できること COMMANDS: kill kill specified containers netem emulate the properties of wide area networks pause pause all processes stop stop containers rm remove containers help, h Shows a list of commands or help for one command
ネットワーク遅延を発生させる DB のコンテナ App のコンテナ テスト コード App2 のモック App1
のモック App3 のコンテナ docker-compose pumba pumba netem --duration 999m delay --time 30 app3
ネットワーク遅延を発生させる DB のコンテナ App のコンテナ テスト コード App2 のモック App1
のモック App3 のコンテナ docker-compose pumba pumba netem --duration 999m delay --time 30 app3
Appを落とす DB のコンテナ App のコンテナ テスト コード App2 のモック App1
のモック App3 のコンテナ docker-compose pumba pumba pause --duration 999m 30 app1
Appを落とす DB のコンテナ App のコンテナ テスト コード App2 のモック App1
のモック App3 のコンテナ docker-compose pumba pumba pause --duration 999m 30 app1
Network Emulation(netem)コマンドについて • delay – 遅延 • loss – パケロス
• loss-state – 4-state Markov モデルのパケロス • loss-gemodel – Gilbert-Elliot loss モデルのパケロス • rate – レートリミット • 内部的にはtcを利用 – iproute2とかを入れておく必要有