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 Infrastructure
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)
エンジニアのためのSRE論文への招待 / Introduction to SRE Papers for Engineers
yuukit
1
5.4k
博士課程での研究まとめ 2023年1月版 / Summary of my research in the PhD course
yuukit
1
150
AI時代に向けたクラウドにおける信頼性エンジニアリングの未来構想 / DICOMO2022 6A-1
yuukit
7
2.5k
AIOps研究録―SREのための システム障害の自動原因診断 / SRE NEXT 2022
yuukit
9
11k
Interactive AIOps
yuukit
0
1.8k
Meltria: マイクロサービスにおける 異常検知・原因分析のための データセットの動的生成システム / Meltria in IOTS2021
yuukit
1
1.4k
AIOpsの研究動向と AIOps向けデータセットの動的生成の研究 / Introducing AIOps and A Dynamic Datasets Generating System
yuukit
1
640
分散アプリケーションの高信頼化のための 運用技術に関する研究 / A Study on Operation Technology for High Reliability of Distributed Applications
yuukit
1
700
ネットワークサービスの依存発見に向いた TCP/UDP通信の低負荷なトレース手法 / Low Overhead TCP-UDP Tracing in Kernel
yuukit
5
3.9k
Other Decks in Technology
See All in Technology
プロダクト開発ゼロイチの分類とロジックス事業がイチに至るまで
niwatakeru
0
100
The Twelve-Factor App とクラウドアプリケーションのコスト
ny7760
3
260
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
1.8k
We Fear Change, for DevOpsDays LA 2024
cote
PRO
0
130
出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 「【速報】AWSの生成AIサービスであるAmazon Bedrock がリリースされたので朝イチで触ってみた」について語る
oshanqq
0
290
10年モノのレガシーPHPアプリケーションを移植しきるまでの泥臭くも長い軌跡 / legacy-php-app-migration
toshimaru
0
710
ISUCON入門以前_ISUNARABE_LT#1
sadnessojisan
13
2.5k
事業部を超えた 開発生産性向上に挑戦する
kentakozuka
2
210
Simplifying Data Analysis & Visualization with Developer Tools & AI
nitya
1
220
二刀流でWinActorを活用してみた話
tamai_63
0
120
Webエンジニアのためのデータエンジニアリング概説
mtoriyama000
5
400
君はApplication Composerというサービスを知っているか
tsukuboshi
1
520
Featured
See All Featured
Debugging Ruby Performance
tmm1
68
11k
Embracing the Ebb and Flow
colly
78
4.1k
How to train your dragon (web standard)
notwaldorf
71
5k
How STYLIGHT went responsive
nonsquared
92
4.7k
No one is an island. Learnings from fostering a developers community.
thoeni
14
2k
A Philosophy of Restraint
colly
195
15k
Visualization
eitanlees
135
14k
The Language of Interfaces
destraynor
150
22k
Become a Pro
speakerdeck
PRO
8
4.2k
Principles of Awesome APIs and How to Build Them.
keavy
119
16k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
Raft: Consensus for Rubyists
vanstee
130
6.2k
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
ٕ͔ܳΒՊֶ