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
890
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
230
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
1.3k
病院の情報フローを理解して、 予約〜会計の見え方が変わった話
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
Amazon Verified Permissions実践入門 〜Cedar活用とAppSync導入事例/Practical Introduction to Amazon Verified Permissions
fossamagna
2
100
CSC305 Lecture 12
javiergs
PRO
0
240
Temporal Knowledge Graphで作る! 時間変化するナレッジを扱うAI Agentの世界
po3rin
3
780
NIKKEI Tech Talk#38
cipepser
0
300
GC25 Recap: The Code You Reviewed is Not the Code You Built / #newt_gophercon_tour
mazrean
0
120
AI Agent 時代的開發者生存指南
eddie
4
2.2k
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
290
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
340
開発組織の戦略的な役割と 設計スキル向上の効果
masuda220
PRO
10
1.8k
CSC305 Lecture 08
javiergs
PRO
0
280
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
160
Domain-centric? Why Hexagonal, Onion, and Clean Architecture Are Answers to the Wrong Question
olivergierke
3
980
Featured
See All Featured
It's Worth the Effort
3n
187
28k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
130
The Language of Interfaces
destraynor
162
25k
Embracing the Ebb and Flow
colly
88
4.9k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
RailsConf 2023
tenderlove
30
1.3k
Being A Developer After 40
akosma
91
590k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
KATA
mclloyd
PRO
32
15k
Producing Creativity
orderedlist
PRO
348
40k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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"ڥ͚ͩͰࢼ͓ͯ͘͠ҙຯ͋Δɹ
σϝϦοτଟ͍ͷͰҰൠʹ͓͢͢ΊͰ͖Δ ํ๏Ͱͳ͍