Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Failure test with Pumba
Yoshinori SHIMADA
September 03, 2018
Technology
0
610
Failure test with Pumba
Yoshinori SHIMADA
September 03, 2018
Tweet
Share
Other Decks in Technology
See All in Technology
MRTK3 - DataBinding and Theming 入門
futo23
0
200
Implementing Kubernetes operators in Java with Micronaut - TechWeek Java Summit 2022
alvarosanchez
0
120
紙にまつわる苦しみを機能化してきた カミナシの歴史
kaminashi
0
1.3k
データ分析で切り拓け! エンジニアとしてのデータ分析職キャリア戦略
ksnt
0
170
データエンジニアと作るデータ文化
yuki_saito
4
1.7k
Azure Arc Virtual MachineとAzure Arc Resource Bridge / VM provisioning through Azure portal on Azure Stack HCI (preview)
sashizaki
0
160
Camp Digital 2022: tailored advice
kyliehavelock
0
150
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
10
18k
OPENLOGI Company Profile
hr01
0
570
2024卒_freee_エンジニア職(ポテンシャル採用)_説明資料
freee
0
280
約6年間運用したシステムをKubernetesに完全移行するまで/Kubernetes Novice Tokyo
isaoshimizu
5
910
What's new in Vision
satotakeshi
0
220
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
86
12k
It's Worth the Effort
3n
172
25k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
212
20k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
172
8.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
19
1.4k
Testing 201, or: Great Expectations
jmmastey
21
5.4k
The Power of CSS Pseudo Elements
geoffreycrofte
47
3.9k
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
119
28k
Building a Scalable Design System with Sketch
lauravandoore
448
30k
The MySQL Ecosystem @ GitHub 2015
samlambert
238
11k
Git: the NoSQL Database
bkeepers
PRO
415
59k
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とかを入れておく必要有