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
Before Chaos Engineering
Search
Hazumi Ichijo
May 20, 2019
Programming
1
830
Before Chaos Engineering
golang.tokyo#24
https://golangtokyo.connpass.com/event/129067/
Hazumi Ichijo
May 20, 2019
Tweet
Share
More Decks by Hazumi Ichijo
See All by Hazumi Ichijo
Rubyのコード削除したい時 僕がやること
hazumirr
0
200
テーブル駆動テストと状態
hazumirr
4
2k
オンラインテストしようと思った その日に開始できる環境を目指して
hazumirr
0
960
推薦によるプロダクト改善とマイクロサービスが噛み合った話
hazumirr
2
4.1k
ChatGPTで僕が知っていることまとめ
hazumirr
3
3k
プロダクトチームとどう 協業し分析環境を改善するか
hazumirr
2
1.5k
bqv速習会
hazumirr
6
6.9k
Protobuf on Rails Tips
hazumirr
1
960
推薦のためのdata pipelineのモニタリングとロギング
hazumirr
3
5.4k
Other Decks in Programming
See All in Programming
API for docs
soutaro
3
1.5k
「”誤った使い方をすることが困難”な設計」で良いコードの基礎を固めよう / phpcon-odawara-2025
taniguhey
0
180
Cursor/Devin全社導入の理想と現実
saitoryc
27
20k
Glue Studio Visual ETL実装時にハマったこと
kokitamura
0
100
Road to RubyKaigi: Making Tinny Chiptunes with Ruby
makicamel
4
510
実践Webフロントパフォーマンスチューニング
cp20
42
9.5k
PHP で学ぶ OAuth 入門
azuki
1
220
タイムゾーンの奥地は思ったよりも闇深いかもしれない
suguruooki
1
790
RubyKaigi Dev Meeting 2025
tenderlove
1
850
Instrumentsを使用した アプリのパフォーマンス向上方法
hinakko
0
200
Being an ethical software engineer
xgouchet
PRO
0
230
複雑なフォームの jotai 設計 / Designing jotai(state) for Complex Forms #layerx_frontend
izumin5210
6
1.4k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.5k
Optimizing for Happiness
mojombo
378
70k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Designing for Performance
lara
608
69k
Practical Orchestrator
shlominoach
187
11k
We Have a Design System, Now What?
morganepeng
52
7.5k
Navigating Team Friction
lara
185
15k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
What's in a price? How to price your products and services
michaelherold
245
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Building Applications with DynamoDB
mza
94
6.3k
Designing Experiences People Love
moore
142
24k
Transcript
©2019 Wantedly, Inc. Chaos Engineeringͷ खલͷ golang.tokyo #24 May 20,
2019 - Hazumi Ichijo (rerost/hazumirr) ΞϓϦέʔγϣϯΤϯδχΞ͚ͩͰͰ͖Δ͜ͱ
©2018 Wantedly, Inc. ࣗݾհ Ұᑍ!IB[VNJSS!SFSPTU 4FSWFS4JEF&OHJOFFSJO8BOUFEMZ (P 3BJMT 3FBDUʜ ग़ւಓ
©2019 Wantedly, Inc. 1. αʔϏε͕ෆ҆ఆͳ࣌ɺͲΜͳӨڹ͕ͰΔ͔ 2. ґଘ͢ΔαʔϏε͕ෆ҆ఆͳ࣌ɺͲΜͳӨڹ͕ͰΔ͔
©2019 Wantedly, Inc. 1. αʔϏε͕ෆ҆ఆͳ࣌ɺͲΜͳӨڹ͕ͰΔ͔ 2. ґଘ͢ΔαʔϏε͕ෆ҆ఆͳ࣌ɺͲΜͳӨڹ͕ͰΔ͔ => Ѳ͍ͯ͠ΔͭΓ͕ͩͦΕຊ͔ʁ
©2019 Wantedly, Inc.
©2019 Wantedly, Inc. ͦ͏ͩChaos Engineeringͩ
©2019 Wantedly, Inc. ͦͦChaos Engineeringͱʁ
©2019 Wantedly, Inc. > ΧΦεΤϯδχΞϦϯάɺࢄγεςϜʹ͓͍ͯγεςϜ͕ෆ҆ ఆͳঢ়ଶʹ͑Δ͜ͱͷग़དྷΔڥΛߏங͢ΔͨΊͷݕূͷن https://principlesofchaos.org/?lang=JAcontent#
©2019 Wantedly, Inc. 1. Πϯελϯε͕μϯ͢Δ 2. DB͕٧·ΔɾΞΫηεͰ͖ͳ͘ͳΔɹ 3. ґଘ͢ΔଞͷαʔϏε͕ෆ҆ఆʹͳΔ etc…
ෆ҆ఆͳঢ়ଶͱ
©2019 Wantedly, Inc. 1. αʔϏε͕ෆ҆ఆͳ࣌ɺͲ͏͍ͬͨӨڹ͕ͰΔ͔ 2. ґଘ͢ΔαʔϏε͕ෆ҆ఆͳ࣌ɺͲΜͳӨڹ͕ͰΔ͔ Γ͍ͨ͜ͱ
©2019 Wantedly, Inc. αʔϏε͕ෆ҆ఆͳ࣌ ࣗͷαʔϏε 4FSWJDF" 4FSWJDF# 4FSWJDF$
©2019 Wantedly, Inc. ࣗͷαʔϏε 4FSWJDF" 4FSWJDF# 4FSWJDF$ αʔϏε͕ෆ҆ఆͳ࣌
©2019 Wantedly, Inc. ࣗͷαʔϏε 4FSWJDF" 4FSWJDF# 4FSWJDF$ αʔϏε͕ෆ҆ఆͳ࣌
©2019 Wantedly, Inc. ࣗͷαʔϏε 4FSWJDF" 4FSWJDF# 4FSWJDF$ αʔϏε͕ෆ҆ఆͳ࣌
©2019 Wantedly, Inc. ґଘ͢ΔαʔϏε͕ෆ҆ఆͳ࣌ ࣗͷαʔϏε ଞͷαʔϏε
©2019 Wantedly, Inc. ґଘ͢ΔαʔϏε͕ෆ҆ఆͳ࣌ ࣗͷαʔϏε ଞͷαʔϏε
©2019 Wantedly, Inc. ґଘ͢ΔαʔϏε͕ෆ҆ఆͳ࣌ ࣗͷαʔϏε ଞͷαʔϏε
©2019 Wantedly, Inc. ґଘ͢ΔαʔϏε͕ෆ҆ఆͳ࣌ ࣗͷαʔϏε ଞͷαʔϏε
©2019 Wantedly, Inc. Ͳ͏͍ͬͨ͜ͱΛ͢Δ͖͔ʁ
©2019 Wantedly, Inc. 1. ఆৗঢ়ଶʹ͓͚ΔৼΔ͍ͷԾઆΛཱͯΔ 2. ࣮ੈքͷࣄଟ༷Ͱ͋Δ 3. ຊ൪ڥͰݕূΛ࣮ߦ͢Δ 4.
ܧଓతʹ࣮ߦ͢ΔݕূͷࣗಈԽ 5. ӨڹൣғΛہॴԽ͢Δ https://principlesofchaos.org/?lang=JAcontent# Ͳ͏͍ͬͨ͜ͱΛߦ͏͔
©2019 Wantedly, Inc. 1. ఆৗঢ়ଶʹ͓͚ΔৼΔ͍ͷԾઆΛཱͯΔ 2. ࣮ੈքͷࣄଟ༷Ͱ͋Δ 3. ຊ൪ڥͰݕূΛ࣮ߦ͢Δ 4.
ܧଓతʹ࣮ߦ͢ΔݕূͷࣗಈԽ 5. ӨڹൣғΛہॴԽ͢Δ https://principlesofchaos.org/?lang=JAcontent# 43&ͱͷڠྗ৫త ͳରԠ͕ඞཁ Ͳ͏͍ͬͨ͜ͱΛߦ͏͔
©2019 Wantedly, Inc. 1. 1ඵؒͷಈը࠶ੜͳͲ 2. APIͷϨεϙϯεͳͲ 1. ఆৗঢ়ଶʹ͓͚ΔৼΔ͍ͷԾઆΛཱͯΔ =>
ͦΕΛकΔͨΊͷͷ͕ॏཁɻͦͷ֬ೝ͕Ͱ͖Ε͋Δఔ҆৺ ྫ: AWS͕region͝ͱμϯͨ͠ࡍɺଞͷregionʹfail over͢ΔͳͲ ྫ
©2019 Wantedly, Inc. 1. Πϯελϯε͕μϯ͢Δ 2. DB͕٧·ΔɾΞΫηεͰ͖ͳ͘ͳΔɹ 3. ґଘ͢ΔଞͷαʔϏε͕ෆ҆ఆʹͳΔ etc…
2. ࣮ੈքͷࣄଟ༷Ͱ͋Δ => ͜͏͍ͬͨཁૉΛೖΕΒΕΔΑ͏ʹ͢Δ = Fault Injection
©2019 Wantedly, Inc. ͜ͷ2͚ͭͩͳΒQAڥͰ ΞϓϦέʔγϣϯΤϯδχΞ͚ͩͰՄೳ
©2019 Wantedly, Inc. ࣗͷαʔϏε 4FSWJDF" 4FSWJDF# Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. ࣗͷαʔϏε 4FSWJDF" 4FSWJDF# Fault Injectionͱͦͷ֬ೝ ֬ೝ༻ͷίʔυΛೖΕΔͷ͕໘
©2019 Wantedly, Inc. ࣗͷαʔϏε JOUFSDFQUPS 4FSWJDF" 4FSWJDF# Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. ࣗͷαʔϏε ൪Λฦ͢ ͘ͳΔ ઃఆ͍ͯ͠ΔλΠϜΞ
τΑΓϨεϙϯε͕͍ JOUFSDFQUPS 4FSWJDF" 4FSWJDF# Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. ࣗͷαʔϏε ൪Λฦ͢ ͘ͳΔ ઃఆ͍ͯ͠ΔλΠϜΞ
τΑΓϨεϙϯε͕͍ JOUFSDFQUPS 4FSWJDF" 4FSWJDF# { "interval": 1, "slow_response_option": { "enable": true, "time": 5 }, "server_error_option": { "enable": true } } Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. ࣗͷαʔϏε ൪Λฦ͢ ͘ͳΔ ઃఆ͍ͯ͠ΔλΠϜΞ
τΑΓϨεϙϯε͕͍ JOUFSDFQUPS 4FSWJDF" 4FSWJDF# Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. ࣗͷαʔϏε JOUFSDFQUPS 4FSWJDF" 4FSWJDF# Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. 4FSWJDF" 4FSWJDF# $MPVE1VC4VC 1VCMJTI 4VCTDSJCF Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. 4FSWJDF" 4FSWJDF# $MPVE1VC4VC 1VCMJTI 4VCTDSJCF Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. 4FSWJDF" 4FSWJDF# $MPVE1VC4VC ॏෳ৴Λ͢Δ 1VCMJTIͨ͠ॱ൪Ͱ৴͠ͳ͍
1VCMJTI 4VCTDSJCF Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. 4FSWJDF" 4FSWJDF# $MPVE1VC4VC ॏෳ৴Λ͢Δ 1VCMJTIͨ͠ॱ൪Ͱ৴͠ͳ͍
1VCMJTI 4VCTDSJCF ϥΠϒϥϦ͕ߦ͏ͷͰ JOUFSDFQUPSΛڬΊͳ͍ Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. 4FSWJDF" 4FSWJDF# $MPVE1VC4VC 1VCMJTI 4VCTDSJCF 1SPYZ 1SPYZ
Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. 4FSWJDF" 4FSWJDF# $MPVE1VC4VC 1VCMJTI 4VCTDSJCF 1SPYZ 1SPYZ
ॏෳ৴Λ͢Δ 1VCMJTIͨ͠ॱ൪Ͱ৴͠ͳ͍ Fault Injectionͱͦͷ֬ೝ
©2019 Wantedly, Inc. https://github.com/rerost/unstable https://github.com/rerost/chaos-pubsub
©2019 Wantedly, Inc.
©2019 Wantedly, Inc. σϝϦοτ ݱঢ়ͷ֬ೝͰ͖Δ͕͍ͭյΕΔ͔Θ͔Βͳ͍ɹ ςετ͢Δͷ͕ਓखͳͷͰ֬ೝ͕໘ ςετ͕ཏͰ͖͍ͯͳ͍Մೳੑ͕͋Δ
©2019 Wantedly, Inc. ·ͱΊ खಈͰ͋ΔఔͷݕূͰ͖Δ ςετ༻ͷίʔυൈ͖͍͢ܗʹ͓ͯ͘͠ɹ 2"ڥ͚ͩͰࢼ͓ͯ͘͠ҙຯ͋Δɹ
σϝϦοτଟ͍ͷͰҰൠʹ͓͢͢ΊͰ͖Δ ํ๏Ͱͳ͍