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
自然のごとく複雑化したウェブシステムの運用自律化に向けて / Experimentable I...
Search
Yuuki Tsubouchi (yuuk1)
November 24, 2017
Technology
4
12k
自然のごとく複雑化したウェブシステムの運用自律化に向けて / Experimentable Infrastructure
2017/11/24 人工知能学会 合同研究会 第3回ウェブサイエンス研究会: 自然現象としてのウェブ 招待講演
Yuuki Tsubouchi (yuuk1)
November 24, 2017
Tweet
Share
More Decks by Yuuki Tsubouchi (yuuk1)
See All by Yuuki Tsubouchi (yuuk1)
博士論文公聴会: Scaling Telemetry Workloads in Cloud Applications: Techniques for Instrumentation, Storage, and Mining / PhD Defence
yuukit
0
19
博士学位論文予備審査 / Scaling Telemetry Workloads in Cloud Applications: Techniques for Instrumentation, Storage, and Mining
yuukit
1
1.7k
MetricSifter:クラウドアプリケーションにおける故障箇所特定の効率化のための多変量時系列データの特徴量削減 / FIT 2024
yuukit
2
190
工学としてのSRE再訪 / Revisiting SRE as Engineering
yuukit
19
13k
Cloudless Computingの論文紹介
yuukit
2
480
#SRE論文紹介 Detection is Better Than Cure: A Cloud Incidents Perspective V. Ganatra et. al., ESEC/FSE’23
yuukit
3
1.8k
エンジニアのためのSRE論文への招待 / Introduction to SRE Papers for Engineers
yuukit
2
11k
博士課程での研究まとめ 2023年1月版 / Summary of my research in the PhD course
yuukit
1
280
AI時代に向けたクラウドにおける信頼性エンジニアリングの未来構想 / DICOMO2022 6A-1
yuukit
7
3k
Other Decks in Technology
See All in Technology
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
8
2.7k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
18k
AWSではじめる Web APIテスト実践ガイド / A practical guide to testing Web APIs on AWS
yokawasa
5
350
2025-02-21 ゆるSRE勉強会 Enhancing SRE Using AI
yoshiiryo1
1
470
デスクトップだけじゃないUbuntu
mtyshibata
0
700
分解して理解する Aspire
nenonaninu
2
770
Amazon Aurora のバージョンアップ手法について
smt7174
1
130
Iceberg Meetup Japan #1 : Iceberg and Databricks
databricksjapan
0
300
Goで作って学ぶWebSocket
ryuichi1208
3
2.5k
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
1
510
AIエージェント元年
shukob
0
150
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
530
Featured
See All Featured
How to Ace a Technical Interview
jacobian
276
23k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How GitHub (no longer) Works
holman
314
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Gamification - CAS2011
davidbonilla
80
5.1k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Transcript
ࣗવͷ͝ͱ͘ෳࡶԽͨ͠ ΣϒγεςϜͷӡ༻ࣗԽ ʹ͚ͯ גࣜձࣾͯͳ ௶ ༎थ id:y_uuki / @y_uuk1 2017/11/24
ਓೳֶձ ߹ಉݚڀձ ୈ̏ճΣϒαΠΤϯεݚڀձ: ࣗવݱͱͯ͠ͷΣϒ টߨԋ
id:y_uuki / @y_uuk1 ௶ ༎थ https://yuuk.io/ 2012 େࡕେֶ جૅֶ෦ใՊֶݚڀՊ ଔۀ
2013 େࡕେֶ ใՊֶݚڀՊത࢜લظ՝ఔ ୀֶ ಉ גࣜձࣾͯͳ ৽ଔೖࣾ 2017ݱࡏ γχΞΤϯδχΞɺςοΫϦʔυ
ใॲཧֶձ Πϯλʔωοτͱӡ༻ٕज़ͷݚڀձ
None
http://blog.yuuk.io/entry/ipsjone2017
ෳࡶͳΣϒγεςϜ ͳʹ͔ҟৗ͕ى͖ͯ ࣗવͷؾ·͙ΕʹΈ͑Δ
ݱࡏͷΣϒγεςϜࣗಈԽ͞Εͭͭ͋ ΔҰํͰඇৗʹෳࡶͰ͋Δ ͦͷৼΔ͍·ΔͰࣗવݱͷΑ͏ʹ ײ͡ΒΕΔ ݱͷϝΧχζϜͷѲ͍͠
ෆ໌Ͱ͋Δ͜ͱʮා͞ʯʹͭͳ͕Δ ۙՊֶͷΞϓϩʔνͰ͋Δ ʮ؍ଌͱ࣮ݧʯΛಥ͖٧Ί ΣϒγεςϜͷӡ༻͔Β ਓؒΛղ์͍ͨ͠
ࣗવͷ͝ͱ͘ෳࡶԽͨ͠ ΣϒγεςϜͷӡ༻ࣗԽ ʹ͚ͯ
ຊߨԋͰͷʮ͍ʯ • ٕज़֊ͱͯ͠ͷΣϒγεςϜͷࣗੑͲͷΑ͏ʹ ࣮ݱ͞Ε͍ͯΔͷ͔ɺ͜Ε͔ΒԿΛࢦ͢ͷ͔ • ΣϒγεςϜ͕ɺ͍ΘΏΔෳࡶܥՊֶͷจ຺ʹ͓͚Δ ੜ໋ΧΦεͳͲͷੑ࣭Λຬͨ͢ͷ͔ • ΣϒγεςϜͷࣗԽͷઌʹͳʹ͕͋Δͷ͔
ΞδΣϯμ 1. ΣϒγεςϜͷ৴པੑΛकΔࣄ 2. ΣϒγεςϜӡ༻ͷݱঢ়ͱ՝ 3. ΣϒγεςϜͷࣗӡ༻ͷΞϓϩʔν 4. ӡ༻͔Βղ์͞Εͨͦͷઌʹ͋ΔΣϒαΠΤϯε 5.
·ͱΊ
1. ΣϒγεςϜͷ৴པੑΛ कΔࣄ
ຊߨԋͰͷʮΣϒγεςϜʯ • ΣϒαʔϏεΛߏ͢Δٕज़ཁૉͱཁૉͷͭͳ͕Γ • ٕज़ཁૉͱʮϒϥβʯʮΠϯλʔωοτόοΫϘʔϯʯ ʮΣϒαʔόʯʮσʔλϕʔεʯʮσʔληϯλʔωο τϫʔΫʯͳͲ • ಛʹσʔληϯλʔͷαʔόɾωοτϫʔΫ͓Αͼͦͷ ্Ͱಈ࡞͢ΔΣϒΞϓϦέʔγϣϯΛࢦ͢
• ૯ମͱͯ͠ͷΣϒͰͳ͘ɺ୯Ұ৫͕ఏڙ͢ΔγεςϜ
σʔληϯλʔ Πϯλʔ ωοτ 1$ ਓʑ *P5ػث εϚʔτ ϑΥϯ αʔό αʔό
αʔό σʔληϯλʔ αʔό αʔό αʔό
ΣϒγεςϜͷ։ൃͱӡ༻ • ࣄۀͷ։ൃͱӡ༻ΛʮSoftware Engineerʯ͕୲͏ • ΣϒγεςϜͷ৴པੑΛ୲อ͢ΔͨΊͷ։ൃͱӡ༻Λ ʮSite Reliability Engineer(SRE)ʯ͕୲͏ •
ҰੲલͷදݱʮΣϒΦϖϨʔγϣϯΤϯδχΞʯ • ͞ΒʹͦͷੲɺʮγεςϜཧऀʯʮαʔόཧऀʯ • ࡉ͔ͳࠩҟ͋ΕͲɺେ·͔ͳ2ߏΣϒۀքͰ ීวత
αʔϏε։ൃɾӡ༻ 4PGUXBSF &OHJOFFST γεςϜ։ൃɾӡ༻ 4JUF3FMJBCJMJUZ &OHJOFFST
Site Reliability Engineering HOW GOOGLE RUNS PRODUCTION SYSTEMS Photo by
O’reilly Media / CC by 3.0 http://shop.oreilly.com/product/0636920041528.do https://creativecommons.org/licenses/by/3.0/deed
ΣϒγεςϜͷ৴པੑͱ • γεςϜ͕ఏڙ͢Δͷͷ͏ͪɺ࠷جຊతͳػೳ • γεςϜ͕ٻΊΒΕΔػೳΛɺఆΊΒΕͨ݅ͷԼͰɺఆΊ ΒΕͨظؒʹΘͨΓɺোΛى͜͢͜ͱͳ࣮͘ߦ͢Δ֬ • ʮఆΊΒΕͨ݅ʯʹɺʮԠ͕࣌ؒ˓msҎԼʯͳͲΛؚΉ • ͨͩ͠ɺ100%ͷ৴པੑΛࢦ͍͚ͯ͠ͳ͍
• ϢʔβͷϥοϓτοϓɺࣗͷWifiɺISPͳͲཧ֎ͷγεςϜ͕͋Δ • ৴པੑࣄۀεϐʔυͱͷτϨʔυΦϑʹͳΓ͍͢ [1] [1]: P. O'Connor and A. Kleyner, Practical Reliability Engineering, 5th edition: Wiley, 2012.
৴པੑΛकΔࣄ • αʔϏεͷՄ༻ੑɺϨΠςϯγɺύϑΥʔϚϯεɺޮ ੑɺมߋཧɺϞχλϦϯάɺΩϟύγςΟϓϥϯχϯ άʹΛͭ • ඞཁͳεΩϧଟذʹΘͨΔ • ίϯϐϡʔλΞʔΩςΫνϟɺωοτϫʔΫɺOSɺࢄγες Ϝɺσʔλϕʔεٕज़ɺΣϒαʔόͷઐࣝ
• ιϑτΣΞΤϯδχΞϦϯά [1] [1]: Betsy Beyer, et al.ฤ ᖒాஉ, et al.༁ Skyגࣜձࣾ ۄཽ࢘༁,ʮSRE αΠτϦϥΠΞϏϦςΟΤϯδχΞϦϯά ――Googleͷ ৴པੑΛࢧ͑ΔΤϯδχΞϦϯάνʔϜʯ,ΦϥΠϦʔɾδϟύϯ,2017/08
৴པੑΛकΓͭͭɺඅ༻Λ࠷খʹ͢Δ • ৴པੑΛकΔ͚ͩͰͳ͘ɺਓ݅අσʔληϯλʔඅ༻Λখ ͘͢͞Δ͜ͱٻΊΒΕΔ • ਓ݅අιϑτΣΞʹΑΔӡ༻ޮԽʹΑΓݮ • σʔληϯλʔඅ༻ιϑτΣΞͷ࣮ߦޮͷ্ʹΑΓݮ • ৴པੑΛ੍݅ͱͯ͠ɺඅ༻Λ࠷খʹ͢Δ࠷దԽΛղ
͍͍ͯΔͱ͍͑Δ • ಛʹఆܕ࡞ۀ(τΠϧ)ΛࣗಈԽ͠ɺਓؒͰͳ͘ίϯϐϡʔλ Λεέʔϧͤ͞ΔΑ͏ʹ͢Δ͜ͱ͕େ͖ͳࣄ
ਓؒͱίϯϐϡʔλʹΑΔࣗγεςϜ • Ұൠͷਓʑ͔ΒΈΕɺΣϒγεςϜेʹࣗಈ ࡞͍ͯ͠Δ • ͨͩ͠ɺͦͷཪͰਓؒͷख࡞ۀஅʹΑΓ৴པੑΛ ୲อ͍ͯ͠Δ • ਓ͕ؒͳʹ͠ͳ͚Εɺ͓Αͦ1िؒఔͰ৴པੑ ଛͳΘΕΔ͜ͱ͋Δ
• िظٳՋதΦϯίʔϧ൪Λෑ͘
ΣϒγεςϜ ਓؒ 1$ ਓʑ *P5ػث εϚʔτ ϑΥϯ ίϯϐϡʔλ
ΣϒγεςϜ ਓؒ 1$ ਓʑ *P5ػث εϚʔτ ϑΥϯ ίϯϐϡʔλ
ίϯϐϡʔλͷΈͰγεςϜΛ ӡ༻Ͱ͖Δঢ়ଶʹ͢Δ͜ͱ͕ඪ
2. ΣϒγεςϜӡ༻ͷݱঢ়ͱ ՝
(ຊͷ) ΣϒγεςϜӡ༻ٕज़ ͷมભ
ࣗ࡞αʔό࣌ ~2010 • ळ༿ݪͰύʔπΛߪೖ͠ɺαʔόΛਓ͕Έཱ͍ͯͯͨ • ΈཱͯͨαʔόΛϥοΫʹख࡞ۀͰஔ͍ͯͨ͠ • ࣗ࡞ͰյΕ͍ͨ͢ΊɺԽػߏεέʔϧΞτػ ߏͳͲ৴པੑΛߴΊΔجૅػೳͷਁಁ •
ͷͪʹϕϯμʔαʔόΫϥυҠߦ͕ਐΉ • XenKVMͳͲͷαʔόԾԽٕज़ʹΑΓɺঃʑʹαʔ όΛϞϊ͔Βσʔλͱͯ͠ѻ͏ྲྀΕ͕Ͱ͖͡ΊΔ
Ϋϥυ࣌ 2011ʙ • 2011AWS౦ژϦʔδϣϯ։ઃ͠ɺ༗໊Σϒاۀ͕Ҡߦ ͠͡ΊΔ • ඞཁͳͱ͖ʹ͙͢ʹϋʔυΣΞϦιʔε͕खʹೖΔ࣌ • ैདྷ୯ҐͷϦʔυλΠϜ͕୯Ґʹ •
αʔόΛϓϩάϥϚϒϧʹ࡞͢Δ֓೦͕ొ • ෛՙʹԠͯࣗ͡ಈͰαʔόΛ૿͢ͳͲͷಈతͳΠϯϑϥ ετϥΫνϟΛߏஙͰ͖ΔΑ͏ʹͳ͖ͬͯͨ https://aws.amazon.com/jp/aws_history/details/
ίϯςφܕԾԽٕज़ͷ಄ 2013ʙ • DockerͷొʹΑΓιϑτΣΞͷಈ࡞ڥΛؙ͝ͱ ύοέʔδԽ͠ɺ͞·͟·ͳڥʹͰ͖ΔΑ͏ʹ • VMͱҟͳΓɺඵ୯ҐͰىಈ͢ΔͨΊɺΑΓಈతͳΠϯ ϑϥετϥΫνϟͷߏங͕Մೳʹͳͬͨ • Immutable
Infrastructure(͍ࣺͯαʔό)ͷ֓೦ొ
Site Reliability Engineering(SRE)ͷొ • ʮ৴པੑʯΛ୲อ͢ΔΤϯδχΞϦϯάͱ͍͏ɺԿΛ͢Δ ٕज़ΤϯδχΞͳͷ͔͕͖ͬΓఆٛ͞Εͨ • ͦΕ·ͰɺʮΠϯϑϥʯʮԼճΓʯͳͲͱ͍͏ݺΕํ • ΣϒΦϖϨʔγϣϯͱ͍͏୯ޠ͕͋ͬͨɺΦϖϨʔγϣ
ϯ=ӡ༻ͷΠϝʔδ͕ڧ͍ • SREιϑτΣΞ։ൃΛॏࢹ͍ͯ͠Δ “ΠϯϑϥνʔϜվΊ Site Reliability Engineering (SRE) νʔϜʹͳΓ·ͨ͠” http://tech.mercari.com/entry/2015/11/18/153421
มભ·ͱΊ • ੲϋʔυΣΞΛௐୡ͠ɺख࡞ۀͰϥοΩϯά͍ͯͨ͠ • αʔόͷԾԽٕज़ͷൃୡͱΞϓϦέʔγϣϯಈ࡞ڥύο έʔδϯάͷ֓೦ʹΑΓɺμΠφϛοΫͳΠϯϑϥετϥ Ϋνϟ͕ߏஙՄೳʹ • ιϑτΣΞΤϯδχΞϦϯάΛॏࢹͨ͠৫จԽͷਁಁ •
͜ͷ10ͰιϑτΣΞʹΑΔӡ༻ࣗಈԽ͕େ෯ʹਐΜ Ͱ͖ͨ
ຊා͍ ΣϒγεςϜ
ຊා͍ΣϒγεςϜ • ҟৗ͕ൃੜͯ͠ݪҼ͕Θ͔Βͳ͍͜ͱ͕͋Δ • γεςϜʹର͢Δૢ࡞͕҆શ͔Ͳ͏͔อূ͞Ε͍ͯͳ͍ • ࣗಈԽ͕ਐΜͰ͍Δ͔Βͦ͜ɺෆ໌Ͱ͋Δ͜ͱ͕ҟৗʹ ର͢ΔʮڪාʯΛ͏Ή • γεςϜͷৼΔ͍͕·ΔͰʮࣗવݱʯʹײ͡ΒΕΔ
• ৼΔ͍ͷղ໌ʹଟ͘ͷ࣌ؒΛͱΒΕͨΓɺΘ͟ͱࣗಈ ԽΛආ͚ͯɺਓؒͷஅΛ͞͏ͱ͢Δ͜ͱ͕͋Δ
ຊා͍ΣϒγεςϜӡ༻: ྫ1 • ϋʔυΣΞͷΩϟύγςΟʹ·ͩ༨༟͕͋Δʹ͔͔ΘΒͣɺ 1͋ͨΓͷॲཧೳྗ͕಄ଧͪʹͳΔέʔε • Λࣗಈ૿Ճͤ͞Δͷɺಛఆϊʔυͷଓͷڐ༰ྔΛ ͑ͯ͠·͏ • ϚϧνεϨουϞσϧͷWebαʔόͰɺڞ༗ϝϞϦ্Ͱάϩʔό
ϧϩοΫΛͱ͍ͬͯΔՕॴ͕͋Γɺಉ࣌ॲཧ͕΄΅1 • ScalaͷॲཧܥϨϕϧͷͰಛఆʹ͕͔͔࣌ؒͬͨ
Σϒ αʔό ϦΫΤετ ϩʔυ όϥϯα Ϩεϙϯε σʔλϕʔε αʔό
Σϒ αʔό ϦΫΤετ ϩʔυ όϥϯα Ϩεϙϯε σʔλϕʔε αʔό $16༨͍ͬͯΔ ͷʹੑೳ͕಄ଧͪ
Σϒ αʔό ϦΫΤετ ϩʔυ όϥϯα Ϩεϙϯε σʔλϕʔε αʔό ࣗಈεέʔϧ
Σϒ αʔό ϦΫΤετ ϩʔυ όϥϯα Ϩεϙϯε σʔλϕʔε αʔό ଓ ্ݶʹ͋ͨΔ
αʔό͋ͨΓͷ ଓΛݮΒͯ͠ௐઅ Σϒ αʔό ϦΫΤετ ϩʔυ όϥϯα Ϩεϙϯε σʔλϕʔε αʔό
ੑೳݶք͕Θ͔Βͳ͍ ܥશମͷڍಈΛΓ ੍ޚ͠ͳ͚Ε͍͚ͳ͍
• ࢄσʔλϕʔεͷωοτϫʔΫஅ • ϚελʔɾεϨʔϒͷ2ߏͷσʔλϕʔεαʔό • Ϛελʔ=>εϨʔϒϦΞϧλΠϜʹσʔλΛෳ • Ϛελʔϊʔυ͕μϯ͢ΔͱϑΥϩϫʔϊʔυ͕Ϛε λʔঢ֨ •
ωοτϫʔΫ͕அ͞ΕΔͱɺ྆ํͱϚελʔ • ͲͪΒ͔Ұํσʔλ͕ॻ͖ࠐ·ΕɺҰ؏ੑ͕ͳ͘ͳΔ ຊා͍ΣϒγεςϜӡ༻: ྫ2
Σϒαʔό ϦΫΤετ Ϩεϙϯε Ϛελʔ εϨʔϒ
Σϒαʔό ϦΫΤετ Ϩεϙϯε Ϛελʔ εϨʔϒ அ
Σϒαʔό ϦΫΤετ Ϩεϙϯε Ϛελʔ ྆ํ Ϛ ε λ ʔ Ϛελʔ
Σϒαʔό ϦΫΤετ Ϩεϙϯε Ϛελʔ ֬తʹͲͪΒ͔ ʹॻ͖ࠐΉ Ϛελʔ
ࣗಈԽʹΑΔฐ • අ༻Λগͳ͘͢Δ͜ͱͰɺࣗಈԽԽػߏΛඋ͑Δ͜ͱ Ͱ৴པੑ͕Լ͕Δ͜ͱ͕͋Δ • ࣗಈεέʔϧ͢Δͱผͷ෦͕٧·Δ • ԽػߏʹΑΓɺҰ؏ੑ͕ࣦΘΕΔ͜ͱ͕͋Δ • ܥશମͷਫ਼៛ͳཧղͱΤϥʔέʔεͷ໖ີͳચ͍ग़͕͠ඞཁ
• ࠷ۙίϯϙʔωϯτΛ૿͢ํٕज़͕ਐΜͰ͍Δͨ Ίɺύλʔϯ͕૿େ͠ਓ͕ཧղ͢Δ͜ͱ͕͘͠ͳ͍ͬͯΔ
ΣϒγεςϜͷෳࡶੑ
ෳࡶཁҼͳʹ͔ • ιϑτΣΞґଘؔͷෳࡶ͞ • ࢄγεςϜͱͯ͠ͷෳࡶ͞ • ೖྗύλʔϯͷෳࡶ͞
ιϑτΣΞґଘؔͷෳࡶ͞ • ΣϒγεςϜଟͷιϑτΣΞͷॏͶ߹ΘͤʹΑ Γߏ͞ΕΔ • ݴޠॲཧܥɺOSɺυϥΠόɺڞ༗ϥΠϒϥϦɺϛυϧΣΞɺ ΞϓϦέʔγϣϯϥΠϒϥϦɺΞϓϦέʔγϣϯ • ιϑτΣΞͷΈ߹Θͤ •
όʔδϣϯޓɺϓϩτίϧޓͳͲΛؚΉ
ࢄγεςϜͷෳࡶ͞ • ҎԼͷࢄγεςϜͷલఏ͕͋Γɺཧ๏ଇʹͤΒΕΔ • ϊʔυ(ϋʔυΣΞ)յΕ͏Δ • ωοτϫʔΫஅɾԆ͕͋ΓɺଳҬ༗ݶͰ͋Δ • ͜ΕΒͷΤϥʔ͔Βͷճ෮ػߏෳࡶʹͳΓ͕ͪ •
TCPͷϑϩʔ੍ޚ࠶ૹ੍ޚͳͲ͕Α͍ྫ • σʔλϕʔεʹ͓͍ͯɺωοτϫʔΫஅ͞ΕͯՄ༻ੑͱҰ ؏ੑΛҡ࣋͢Δ͜ͱ͍͠ (CAPఆཧ)
ೖྗύλʔϯͷෳࡶ͞ • ਓؒɺݕࡧΫϩʔϥɺεύϚʔͳͲͷ׆ಈʹԠͯ͡γεςϜͷ ೖྗύλʔϯಥൃతʹมԽ͢Δ • ੍ޚֶͰ͍͏ͱ͜Ζͷ֎ཚ • γεςϜͷڍಈΛ༧ଌ͢Δʹ࠶ݱੑ͕ඞཁ • ͔͠͠ɺΣϒγεςϜʹର͢Δ͋ΔظؒͷೖྗύλʔϯΛશ
ʹ࠶ݱ͢Δ͜ͱ͍͠ • σʔλϕʔεͳͲͷอଘঢ়ଶΛ࣌ͷظؒʹ্ͨ͠Ͱɺೖྗ ύλʔϯΛྲྀ͠ࠐΉ
γεςϜͷෳࡶੑͷ ߹͍
ୈ7ষ ෳࡶੑͷఆٛͱ ଌఆج४
ෳࡶੑͷج४ • αΠζ • Τϯτϩϐʔ • ΞϧΰϦζϜใྔ • ཧਂ •
ྗֶਂ • ܭࢉೳྗ • ౷ܭతͳෳࡶੑ • ϑϥΫλϧ࣍ݩ • ֊
ෳࡶੑͷج४: αΠζ • ͯͳͷγεςϜαΠζ த~େنఔ • αʔϏε: 100+ (෦ؚ͚Ή) •
ϩʔϧ: 1000+ • ϗετ: 1000+ • ϓϩηε/εϨου: 10000+ • SRE: 10ਓऑ • GoogleAmazonେنͰ͓ͦΒ͘100~1000ഒͷαΠζ
֊ - ϓϩάϥϜ࣮ߦ୯Ґ - 10લ • Ϩϕϧ1: ϓϩηε/εϨου • Ϩϕϧ2:
αʔό (ෳͷϓϩηεͷू߹ମ) • Ϩϕϧ3: ϩʔϧ (ΫϥελϩʔυόϥϯαԼͷαʔό܈) • Ϩϕϧ4: αʔϏε: (ϩʔϧ·ͨϚΠΫϩαʔϏεͷू߹ମ) • Ϩϕϧ5: ϓϥοτϑΥʔϜ: (ෳͷαʔϏεͷू߹ମ) • Ϩϕϧ6: Σϒ
֊ - ϓϩάϥϜ࣮ߦ୯Ґ - ࠷ۙ • Ϩϕϧ1: ϓϩηε/εϨου • Ϩϕϧ2:
ίϯςφ • Ϩϕϧ3: αʔό (ෳͷϓϩηεͷू߹ମ) • Ϩϕϧ4: ϩʔϧ (ΫϥελϩʔυόϥϯαԼͷαʔό܈) • Ϩϕϧ5: ϚΠΫϩαʔϏε • Ϩϕϧ6: αʔϏε: (ϩʔϧ·ͨϚΠΫϩαʔϏεͷू߹ମ) • Ϩϕϧ7: ϓϥοτϑΥʔϜ: (ෳͷαʔϏεͷू߹ମ) • Ϩϕϧ8: Σϒ
͋Δଆ໘Ͱ ࠷ۙͷج൫ٕज़ͷมԽʹΑΓ ෳࡶԽ͍ͯ͠Δͱ͍͑Δ
ෳࡶ͕ͨ͞Β͢ͷ • γεςϜͷঢ়ଶ༧ଌ͕ࠔʹͳΓɺͦͷ݁ՌɺਓؒʹஅΛ ʑٻΊΔΑ͏ʹͳΔ • ͜Ε͔Β࣮ࢪ͢Δมߋ͕҆શ͔Ͳ͏͔ΛอূͰ͖ͳ͍ɺ·ͨ อূ͢ΔͨΊʹखؒΛ͔͚ͳ͚Ε͍͚ͳ͍ • ֎ཚͷ࠶ݱ͕͍ͨ͠ΊɺҰख͕͔͔ؒΔ •
͍ͭεέʔϧͷݶքʹ͋ͨΔ͔Θ͔Βͳ͍ • ݶքʹ͋ͨͬͯɺͲ͕͜ϘτϧωοΫ͔Θ͔Βͳ͍ • ΤϯδχΞͷܦݧΛجʹٕͨܳ͠Ͱղܾ͍ͯ͠Δ
ෳࡶ͞ʹ Ͳ͏ର߅͍ͯ͘͠ͷ͔
3.ΣϒγεςϜͷࣗతӡ༻ Ξϓϩʔν
؍ଌ Observation
؍ଌͱ • ΣϒγεςϜͷʮաڈͱݱࡏʯͷঢ়گΛਓؒ/ίϯ ϐϡʔλ͕ѲͰ͖ΔΑ͏ʹ͢Δ • 20ۙ͘લ͔ΒʮࢹʯΛ͢ΔͨΊͷπʔϧ͋Δ • Θ͔Βͳ͍ͷΛΘ͔ΔΑ͏ʹ͢Δ͜ͱͯ͢؍ଌ • ʮࢹ(ping)ɺ࣌ܥྻσʔλͷऩूɺϩάσʔλͷऩ
ूɺߏཁૉͱཁૉͷͭͳ͕ΓɺೖྗͷʯͳͲ
ΣϒγεςϜͷ͞·͟·ͳࢦඪ • ݸʑͷϋʔυΣΞϦιʔεࢦඪ • CPUར༻ɺϝϞϦ༻ྔɺωοτϫʔΫଳҬͳͲ • ݸʑͷϛυϧΣΞ/ΞϓϦέʔγϣϯϦιʔεࢦඪ • εϨουɺΫΤϦɺͪߦྻͷ͞ͳͲ •
ܥશମΛදݱ͢Δࢦඪ • αʔϏεશମͷԠ࣌ؒɺΤϥʔϨʔτͳͲ
Mackerel https://mackerel.io/
αʔόͷϝτϦοΫՄ ࢹԽ
؍ଌ݁ՌΛͱʹͨ͠φΠʔϒͳ੍ࣗޚ • Ϋϥυͷ಄ʹΑΓαʔόͷੜͱഇغΛϓϩάϥϜԽ • ࢦඪͷมಈʹԠͯ͡αʔόͷݸੑೳΛࣗಈௐ • ෆௐϓϩηε/αʔόͷ৽ँ • ύϥϝʔλΤϯδχΞͷܦݧΛݩʹΛઃఆ •
ݱࡏͰɺ͜ͷ͋ͨΓ͕ΣϒγεςϜͷݱͰਁಁதͷٕ ज़Ϩϕϧ • ͨͩ͜͠ͷΑ͏ͳφΠʔϒͳ੍ࣗޚʹ͕ى͖͍͢
ͪߦྻཧΛར༻੍ͨࣗ͠ޚ • ฏۉԠ࣌ؒͱฏۉϦΫΤετΛ؍ଌ͠ɺͦΕΒΛॲ ཧ͢ΔͨΊͷ߹ܭϓϩηε/αʔόΛׂΓग़ࣗ͠ಈௐ Ͱ͖Δ • ࢦඪΛ؍ଌ͚ͭͮ͠ɺ౸ணͱॲཧ͔ΒඞཁͳϦ ιʔεΛܧଓతʹܭࢉ͠ɺௐ͠ଓ͚Δ #SFOEBO(SFHH l4ZTUFNT1FSGPSNBODF&OUFSQSJTFBOEUIF$MPVEz
1SFOUJDF)BMM Ϧτϧͷ๏ଇ: ҆ఆঢ়ଶʹ͋Δܥʹ͓͍ͯɺγεςϜͷฏۉϦΫΤε τLɺฏۉ౸ணλͱฏۉͪ࣌ؒͷੵʹ͍͠ (L=λW)
ͪߦྻཧͷ • ͦͦରΣϒγεςϜͷ౸ண͕Θ͔Βͳ͍ • Ծఆ͢Δͷൣғ֎ͷɺ༧ଌͷͰ͖ͳ͍ಥൃతͳ֎ཚʹରԠ͠ ͮΒ͍ • Θ͔Γ͍͢֎ཚɺྫ͑Yahoo!๒ͳͲ • ֎ཚࣄۀػձͱͳΔ͜ͱ͕͋ΔͨΊɺ͔Β֎ΕͨҟৗͰ
ແࢹͰ͖ͳ͍ • ͨͩ͠ɺఆৗঢ়ଶͰͷΛ༻͍ͯɺΩϟύγςΟϓϥϯχϯά ʹར༻͢Δ͜ͱͰ͖Δ
ϑΟʔυόοΫ੍ޚ ཧ
ϑΟʔυόοΫ੍ޚɺେنͰෳࡶ ͳγεςϜΛɺͨͱ͑γεςϜ͕֎ཚ ʹӨڹΛड͚Α͏ͱɺ͋Δ͍ɺݶ ΒΕͨࢿݯΛ༗ޮར༻ͭͭ͠ɺͦͷੑ ೳΛอͬͯಈ࡞ͤ͞ΔͨΊͷख๏Ͱ͢ɻ Philipp K. Janert ஶ, ʮΤϯδχΞͷͨΊͷϑΟʔυόοΫ੍ޚೖʯ,ΦϥΠϦʔɾδϟύϯ,
2014/07
ϑΟʔυόοΫ੍ޚͷ • ੍ޚରϒϥοΫϘοΫεͰ͋Γɺதෆ໌ͰΑ͍ • SRE͕ΞϓϦέʔγϣϯͷதΛΒͣʹϞχλϦϯά݁ Ռ͚ͩΛΈͯোରԠ͢Δ༷ࢠʹࣅ͍ͯΔ • ͪߦྻཧͰͰ͖ͳ͍μΠφϛΫεΛѻ͑Δ • ݱ࣮ͷΣϒγεςϜͰɺղੳతʹϞσϧΛಋग़͢Δͷ
͍ͨ͠Ίɺύϥϝʔλͷܾఆʹʮ࣮ݧʯʹΑΔܭଌ ͕ඞཁ [1]: େ࡚ ത೭, େنωοτϫʔΫͷ ઃܭɾϞσϧԽɾ੍ޚ, http://www.ieice.org/~netsci/wp-content/uploads/2013/08/NetSci201308_Ohsaki.pdf [1]
ϑΟʔυόοΫ੍ޚͷಋೖΠϝʔδ • ੍ޚೖྗ: αʔόͷɺαʔόͷϝϞϦྔͳͲ • ੍ޚग़ྗ: ϨεϙϯελΠϜɺΤϥʔͳͲ • ੍ޚग़ྗΛࢹ͠ଓ͚ɺඪ͔Β֎ΕͨΒ੍ޚೖྗΛม ߋ͠ɺݩʹ͢Α͏ͳૢ࡞Λ͢Δ
• ੍ޚೖྗʹରͯ͠ୡؔΛద༻͠ɺ੍ޚग़ྗΛಘΔ • ୡؔͷಉఆνϡʔχϯάɺ࣮γεςϜͰԠΛΈΔ ඞཁ͕͋Δ
None
Real Worldͷ ੍ޚཧͷಋೖʹ ࣮Ԡͷσʔλ͕ඞཁ
࣮ݧ Experiment
੍ޚϞσϧͷύϥϝʔλਪఆ • ࣮γεςϜͷ؍ଌ݁ՌʹΑΓɺ੍ޚثͷؔͱύϥϝʔλ Λਪఆ͢Δ • ҟৗݕͷͨΊͷ֬ͷύϥϝʔλΛਪఆ͢ΔͨΊͷ ֶशͳͲ࣮ݧʹؚΉ • ͨͩ͠ɺྫ͑1͋ͨΓͷαʔόͷݶքੑೳͱ͍͏ͷ ࣮ࡍʹݶք·ͰෛՙΛ͔͚ͳ͍ͱΘ͔Βͳ͍͜ͱ͕ଟ͍
• ૉͳൃͩͱɺखಈͰ࣮ݧ͢Δ͜ͱʹͳΔ
࣮ݧΛࣗಈԽ͍ͨ͠
࣮ݧͷࣗಈԽ • ख࡞ۀʹΑΔ࣮ݧਓख͕ඞཁͰ݁ہଓ͖͠ͳ͍ • γεςϜʹʑมߋ͕Ճ͑ΒΕΔͨΊɺ࣮ݧͷܧଓԽ ͕ඞཁ • ࣮ݧΛࣗಈԽ͍ͨ͠ • ࢄγεςϜͷࣗಈ࣮ݧͷ֓೦ͱͯ͠Netflix͕ఏএ͢Δ
Chaos Engineering͕͋Δ
“PRINCIPLES OF CHAOS ENGINEERING”, http://principlesofchaos.org/ Chaos Engineering is the discipline
of experimenting on a distributed system in order to build confidence in the system’s capability to withstand turbulent conditions in production.
Θ͟ͱҟৗΛى͜͢ൃ • αʔόμϯͳͲΘ͟ͱҟৗΛى͜͢͜ͱͰ࣮ݧ͢Δ • ͔͠͠ɺຊ൪ڥͰҟৗΛىͨ͜͠Γɺݶք·ͰෛՙΛ͔͚Δ ͷෆ҆ • ΫϥυίϯςφͳͲݶΓͳ͘ຊ൪ʹ͍ۙڥΛΦϯσϚϯ υʹߏங͢Δٕज़͕ൃୡ͖͍ͯͯ͠Δ •
ຊ൪ڥͷෛՙΛ࠶ݱ͢Δͷ·͍͕ͩ͠… • ࣮ݧڥΛߴʹ࡞͠ഇغ͢Δ͜ͱͰ҆શʹ࣮ݧΛࣗಈԽ͢Δ
੍ޚҎ֎ͷखಈ࣮ݧ
੍ޚҎ֎ͷ࣮ݧ • ಈ࡞ςετ • ෛՙςετ • Τϥʔςετ • ϋʔυΣΞނোωοτϫʔΫԆͷ૿େͳͲ •
ύϥϝʔλνϡʔχϯά • OSͳͲͷύϥϝʔλ(όοϑΝαΠζͳͲ)νϡʔχϯά • ͜ΕΒʹ͍ͭͯࣗಈԽ͢Δ
؍ଌͱ࣮ݧ
؍ͱ࣮ݧͷࣗಈԽ ۙՊֶͷख๏ͷࣗಈԽ
Ծઆԋ៷๏ • (1) ؍ʹج͍ͮͨͷൃݟ (؍ଌ) • (2) Λղܾ͢ΔԾઆͷఏى • (3)
Ծઆ͔Βͷςετ໋ͷԋ៷ • (4) ςετ໋ͷ࣮ݧతݕূ·ͨূ (࣮ݧ) • (5) ςετͷ݁Ռʹجͮ͘Ծઆͷड༰ɺमਖ਼·ͨ์غ ՈܒҰஶʮՊֶֶͷটʯͪ͘·ֶܳจݿ 2015
Ծઆԋ៷๏ͷϧʔϓΛߴʹճ͠ มԽʹదԠ͠ଓ͚ΔγεςϜ
Experimentable Infrastructure
4. ࣗӡ༻ͷนͱΣϒαΠΤ ϯε
ࣗӡ༻ͷͨΊͷେ͖ͳน • ϋʔυΣΞϦιʔε੍ • ༧Ί༻ҙͨ͠ϦιʔεϓʔϧͰ͚͞ΔҎ্ͷෛՙʹ͑ΒΕ ͳ͍ • Ϋϥυʹ্ݶଘࡏ͢Δ • ֎ཚͷେ͖ͳมԽΛ༧Ͱ͖ͳ͍
• αʔόͷ૿ՃͳͲʹσΟϨΠ͕ଘࡏ͢ΔͨΊɺϑΟʔυόοΫ ͕ؒʹ߹Θͳ͍έʔε͋Γ͑Δ • ΣϒαΠΤϯεͷݚڀΛϑΟʔυϑΥϫʔυ੍ޚʹ͑Δ͔
ࣗൃతʹൃల͢ΔαʔϏεͷಛΛଊ͑ɺྫ͑ɺ Web αʔϏε͕ࠓޙൃల͍ͯ͘͠ͷ͔ɺݩؾΛ ͳ͍ͯ͘͘͠ͷ͔ɺͦ͏ͨ͠ঢ়ଶ༧ଌΛࢦ͠ɺ ࣗతͳਓγεςϜͷμΠφϛΫεΛଊ͑Δී วతͳํ๏Λͭ͘ΓɺࣗવՊֶͱͯ͠ͷਓγ εςϜݱͱ͍͏ͷཱ֬Λࢦ͍ͯ͠Δɻ 106 ਓ
ೳɹ31 ר 1 ߸ʢ2016 1 ݄ʣʮΣϒαΠΤϯεݚڀձʢSIG-WebSciʣʯ ൃ
৴པੑΛ੍݅ͱͯ͠ අ༻Λ࠷খʹ͢Δ࠷దԽ ※අ༻ = ਓ݅අ + αʔόɾωοτϫʔΫඅ༻
ࣗӡ༻ • ͜͜·Ͱͷʮࣗʯͷఆٛʮࣗಈम෮ʯʮࣗӡ༻ʯ • ༩͑ΒΕ੍ͨ݅=৴པੑ Λຬͨ͢Α͏ʹࣗಈ࡞͢Δ ͜ͱΛࢦ͍ͯ͠Δ • ৴པੑΛࣗతʹຬͨͤΕɺඅ༻ͷ͏ͪਓ݅අ͋Δఔ ݮͰ͖Δ
• ৴པੑͷ݅ઃఆɺΞʔΩςΫνϟͷܾఆɺιϑτΣΞ ͷޮԽͳͲҎલͱͯ͠ਓͷࣄ
ࣗ։ൃ
ࣗ։ൃ • ࣗతʹඅ༻Λ࠷খԽ͢ΔγεςϜ • ਐԽɾదԠͷ֓೦͕ඞཁ • ࢄγεςϜΞʔΩςΫνϟͷઃܭɾվળ • ιϑτΣΞޮվળͷࣗԽ •
ref. ιϑτΣΞਐԽͷݚڀͳͲ
ΣϒγεςϜෳࡶͰ͋Δ͕ ίϯϐϡʔλ͚ͩͰࣗͨ͠ܥͰͳ͍ ΣϒγεςϜͱ͍͏ਓΛ ࣗવͷΑ͏ʹৼΔΘͤ ਓؒΛӡ༻͔Βղ์͍ͨ͠
͜͜·Ͱ ֶతϞνϕʔγϣϯ
͍͔ͭԕ͍ະདྷͰ ӡ༻͔Βղ์͞ΕͨΒ ԿΛΔͷ͔
༡ΜͰΒ͢
༡ΜͰΒ͢͜ͱʹ ͦΜͳʹڵຯ͕ͳ͍
ʮγεςϜʯ͕͖
ਓͷखΛհͣ͞ʹಈ͖ଓ͚Δ ΣϒγεςϜΛ୳ڀ͢Δ͜ͱͰ ෳࡶͳܥʹର͢Δ౷Ұతͳ๏ଇΛൃݟ͠ ࣗવՊֶߩݙͰ͖Δ͜ͱͳ͍͔
ωοτϫʔΫͷٕज़֊ΛؚΉ Webͷଘࡏͦͷͷ Λ৽͍͠ʮࣗવݱʯͱͯ͠ଊ͑ɺྫ͑ɺͦͷʮੜ ଶܥʯͱͯ͠ͷߏΛ໌Β͔ʹ͢Δ͜ͱͰɺීวతͳ μΠφϛΫεύλʔϯΛ໌Β͔ʹ͠ɺैདྷͷࣗવՊ ֶɾਓจՊֶͷߟ͑Λൃలͤ͞Δ͜ͱΛࢦ͍ͯ͠ Δɻ 106 ਓ
ೳɹ31 ר 1 ߸ʢ2016 1 ݄ʣʮΣϒαΠΤϯεݚڀձʢSIG-WebSciʣʯ ൃ
5. ·ͱΊ
·ͱΊ • ඪγεςϜͷӡ༻͔Βਓ͕ؒղ์͞ΕΔ͜ͱ • ΫϥυͷొͳͲͰӡ༻ʮࣗಈԽʯ͕ਐΜͰ͖͕ͨɺ ʮࣗԽʯʹ͍ͭͯ·ͩ·ͩ͜Ε͔Β • ࣗӡ༻ʹ͚ͯɺۙࣗવՊֶͷํ๏Λώϯτʹ͠ ͨExperimentable InfrastructureߏΛհ
• ࣗӡ༻ͷେ͖ͳนͱΣϒαΠΤϯεͷՄೳੑ
͓·͚
ΣϒγεςϜΞʔΩςΫνϟݚڀձ • ຊʹίϯϐϡʔλωοτϫʔΫͷݚڀձͨ͘͞Μ͋Δ • ΣϒγεςϜͷΞʔΩςΫνϟϦΞϧϫʔϧυͷӡ༻·Ͱؚ Ίͨݚڀձ͕͋·Γͳ͍ • ࠷͍ۙͷใॲཧֶձIOTݚڀձ • ւ֎ͩͱUSENIXͷLISASREconͳͲ
• ͦ͜ͰݚڀձΛ্ཱͪ͛Α͏ͱ͍ͯ͠Δ => 12/23@ژ • ϋογϡλά #wsaݚ
ΣϒΦϖϨʔγϣϯٕܳ Ͱ͋ΓՊֶͰͳ͍ John Allspaw,Jesse Robbinsฤ, ֯ య༁ ΣϒΦϖϨʔγϣϯʔʔαΠτӡ༻ཧͷ࣮ફςΫχοΫ, ΦϥΠϦʔɾδϟύϯ, 2011/05
ٕ͔ܳΒՊֶ