Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
自然のごとく複雑化したウェブシステムの運用自律化に向けて / Experimentable I...
Search
Yuuki Tsubouchi (yuuk1)
November 24, 2017
Technology
13k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自然のごとく複雑化したウェブシステムの運用自律化に向けて / Experimentable Infrastructure
2017/11/24 人工知能学会 合同研究会 第3回ウェブサイエンス研究会: 自然現象としてのウェブ 招待講演
Yuuki Tsubouchi (yuuk1)
November 24, 2017
More Decks by Yuuki Tsubouchi (yuuk1)
See All by Yuuki Tsubouchi (yuuk1)
「アラーティング」の話をしよう— SREconや論文等の最先端とのギャップをみる
yuukit
7
2k
SAKURAONE:An Open Ethernet-based AI HPC System And Its Observed Workload Dynamicsin a Single-Tenant LLM Development Environment
yuukit
1
600
AIスーパーコンピュータにおけるLLM学習処理性能の計測と可観測性 / AI Supercomputer LLM Benchmarking and Observability
yuukit
1
1.1k
SREはサイバネティクスの夢をみるか? / Do SREs Dream of Cybernetics?
yuukit
3
690
SREのためのテレメトリー技術の探究 / Telemetry for SRE
yuukit
13
3.8k
AIスパコン「さくらONE」の オブザーバビリティ / Observability for AI Supercomputer SAKURAONE
yuukit
2
1.5k
AIスパコン「さくらONE」のLLM学習ベンチマークによる性能評価 / SAKURAONE LLM Training Benchmarking
yuukit
2
1.3k
とあるSREの博士「過程」 / A Certain SRE’s Ph.D. Journey
yuukit
11
7.6k
eBPFを用いたAIネットワーク監視システム論文の実装 / eBPF Japan Meetup #4
yuukit
3
1.9k
Other Decks in Technology
See All in Technology
20260912_スクラムにジェネラリストは必要か
ryugen04
0
350
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
340
Tab5をRubyで動くパソコンにする
kishima
2
340
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
220
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
160
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
310
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
330
NW運用でNWトポロジ可視化ツールに期待すること/shumoku-meetup1
corestate55
2
110
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
530
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
160
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
170
ASTを使って影響範囲を特定する
nealle
0
160
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
4.8M
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Done Done
chrislema
186
16k
Optimizing for Happiness
mojombo
378
71k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Become a Pro
speakerdeck
PRO
31
6.2k
The agentic SEO stack - context over prompts
schlessera
0
920
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
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
ٕ͔ܳΒՊֶ