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
880
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
RailsとRidgepoleの マイグレを120倍早くする
hazumirr
0
190
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
1.2k
病院の情報フローを理解して、 予約〜会計の見え方が変わった話
hazumirr
0
1.6k
Rubyのコード削除したい時 僕がやること
hazumirr
0
230
テーブル駆動テストと状態
hazumirr
5
2.1k
オンラインテストしようと思った その日に開始できる環境を目指して
hazumirr
0
1k
推薦によるプロダクト改善とマイクロサービスが噛み合った話
hazumirr
2
4.4k
ChatGPTで僕が知っていることまとめ
hazumirr
3
3.1k
プロダクトチームとどう 協業し分析環境を改善するか
hazumirr
2
1.6k
Other Decks in Programming
See All in Programming
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
4.6k
CSC305 Lecture 05
javiergs
PRO
0
210
Your Perfect Project Setup for Angular @BASTA! 2025 in Mainz
manfredsteyer
PRO
0
140
Cloudflare AgentsとAI SDKでAIエージェントを作ってみた
briete
0
130
実践AIチャットボットUI実装入門
syumai
7
2.5k
どの様にAIエージェントと 協業すべきだったのか?
takefumiyoshii
2
620
CI_CD「健康診断」のススメ。現場でのボトルネック特定から、健康診断を通じた組織的な改善手法
teamlab
PRO
0
190
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
160
猫と暮らすネットワークカメラ生活🐈 ~Vision frameworkでペットを愛でよう~ / iOSDC Japan 2025
yutailang0119
0
220
Local Peer-to-Peer APIはどのように使われていくのか?
hal_spidernight
2
460
CSC305 Lecture 01
javiergs
PRO
1
400
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
3
140
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Thoughts on Productivity
jonyablonski
70
4.9k
Rails Girls Zürich Keynote
gr2m
95
14k
Producing Creativity
orderedlist
PRO
347
40k
Being A Developer After 40
akosma
91
590k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
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"ڥ͚ͩͰࢼ͓ͯ͘͠ҙຯ͋Δɹ
σϝϦοτଟ͍ͷͰҰൠʹ͓͢͢ΊͰ͖Δ ํ๏Ͱͳ͍