自然のごとく複雑化したウェブシステムの運用自律化に向けて / Experimentable Infrastructure

自然のごとく複雑化したウェブシステムの運用自律化に向けて / Experimentable Infrastructure

2017/11/24 人工知能学会 合同研究会 第3回ウェブサイエンス研究会: 自然現象としてのウェブ 招待講演

A658ec7f1badf73819dfa501165016c1?s=128

Yuuki Tsubouchi (yuuk1)

November 24, 2017
Tweet

Transcript

  1. ࣗવͷ͝ͱ͘ෳࡶԽͨ͠ ΢ΣϒγεςϜͷӡ༻ࣗ཯Խ ʹ޲͚ͯ גࣜձࣾ͸ͯͳ ௶಺ ༎थ id:y_uuki / @y_uuk1 2017/11/24

    ਓ޻஌ೳֶձ ߹ಉݚڀձ ୈ̏ճ΢ΣϒαΠΤϯεݚڀձ: ࣗવݱ৅ͱͯ͠ͷ΢Σϒ ট଴ߨԋ
  2. id:y_uuki / @y_uuk1 ௶಺ ༎थ https://yuuk.io/ 2012೥ େࡕେֶ جૅ޻ֶ෦৘ใՊֶݚڀՊ ଔۀ

    2013೥ େࡕେֶ ৘ใՊֶݚڀՊത࢜લظ՝ఔ ୀֶ ಉ೥ גࣜձࣾ͸ͯͳ ৽ଔೖࣾ 2017೥ݱࡏ γχΞΤϯδχΞɺςοΫϦʔυ
  3. ৘ใॲཧֶձ Πϯλʔωοτͱӡ༻ٕज़ͷݚڀձ

  4. None
  5. http://blog.yuuk.io/entry/ipsjone2017

  6. ෳࡶͳ΢ΣϒγεςϜ͸ ͳʹ͔ҟৗ͕ى͖ͯ΋ ࣗવͷؾ·͙ΕʹΈ͑Δ

  7. ݱࡏͷ΢ΣϒγεςϜ͸ࣗಈԽ͞Εͭͭ͋ ΔҰํͰඇৗʹෳࡶͰ͋Δ ͦͷৼΔ෣͍͸·ΔͰࣗવݱ৅ͷΑ͏ʹ ײ͡ΒΕΔ ݱ৅ͷϝΧχζϜͷ೺Ѳ͸೉͍͠

  8. ෆ໌Ͱ͋Δ͜ͱ͸ʮා͞ʯʹͭͳ͕Δ ۙ୅ՊֶͷΞϓϩʔνͰ͋Δ ʮ؍ଌͱ࣮ݧʯΛಥ͖٧Ί ΢ΣϒγεςϜͷӡ༻͔Β ਓؒΛղ์͍ͨ͠

  9. ࣗવͷ͝ͱ͘ෳࡶԽͨ͠ ΢ΣϒγεςϜͷӡ༻ࣗ཯Խ ʹ޲͚ͯ

  10. ຊߨԋͰͷʮ໰͍ʯ • ٕज़֊૚ͱͯ͠ͷ΢ΣϒγεςϜͷࣗ཯ੑ͸ͲͷΑ͏ʹ ࣮ݱ͞Ε͍ͯΔͷ͔ɺ͜Ε͔ΒԿΛ໨ࢦ͢ͷ͔ • ΢ΣϒγεςϜ͕ɺ͍ΘΏΔෳࡶܥՊֶͷจ຺ʹ͓͚Δ ੜ໋΍ΧΦεͳͲͷੑ࣭Λຬͨ͢ͷ͔ • ΢ΣϒγεςϜͷࣗ཯Խͷઌʹͳʹ͕͋Δͷ͔

  11. ΞδΣϯμ 1. ΢ΣϒγεςϜͷ৴པੑΛकΔ࢓ࣄ 2. ΢ΣϒγεςϜӡ༻ͷݱঢ়ͱ՝୊ 3. ΢ΣϒγεςϜͷࣗ཯ӡ༻΁ͷΞϓϩʔν 4. ӡ༻͔Βղ์͞Εͨͦͷઌʹ͋Δ΢ΣϒαΠΤϯε 5.

    ·ͱΊ
  12. 1. ΢ΣϒγεςϜͷ৴པੑΛ कΔ࢓ࣄ

  13. ຊߨԋͰͷʮ΢ΣϒγεςϜʯ • ΢ΣϒαʔϏεΛߏ੒͢Δٕज़ཁૉͱཁૉͷͭͳ͕Γ • ٕज़ཁૉͱ͸ʮϒϥ΢βʯʮΠϯλʔωοτόοΫϘʔϯʯ ʮ΢Σϒαʔόʯʮσʔλϕʔεʯʮσʔληϯλʔ಺ωο τϫʔΫʯͳͲ • ಛʹσʔληϯλʔ಺ͷαʔόɾωοτϫʔΫ͓Αͼͦͷ ্Ͱಈ࡞͢Δ΢ΣϒΞϓϦέʔγϣϯΛࢦ͢

    • ૯ମͱͯ͠ͷ΢ΣϒͰ͸ͳ͘ɺ୯Ұ૊৫͕ఏڙ͢ΔγεςϜ
  14. σʔληϯλʔ Πϯλʔ ωοτ 1$ ਓʑ *P5ػث εϚʔτ ϑΥϯ αʔό αʔό

    αʔό σʔληϯλʔ αʔό αʔό αʔό
  15. ΢ΣϒγεςϜͷ։ൃͱӡ༻ • ࣄۀͷ։ൃͱӡ༻ΛʮSoftware Engineerʯ͕୲͏ • ΢ΣϒγεςϜͷ৴པੑΛ୲อ͢ΔͨΊͷ։ൃͱӡ༻Λ ʮSite Reliability Engineer(SRE)ʯ͕୲͏ •

    Ұੲલͷදݱ͸ʮ΢ΣϒΦϖϨʔγϣϯΤϯδχΞʯ • ͞Βʹͦͷੲ͸ɺʮγεςϜ؅ཧऀʯʮαʔό؅ཧऀʯ • ࡉ͔ͳࠩҟ͸͋ΕͲɺେ·͔ͳ2෼ߏ଄͸΢ΣϒۀքͰ͸ ීวత
  16. αʔϏε։ൃɾӡ༻ 4PGUXBSF &OHJOFFST γεςϜ։ൃɾӡ༻ 4JUF3FMJBCJMJUZ &OHJOFFST

  17. 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
  18. ΢ΣϒγεςϜͷ৴པੑͱ͸ • γεςϜ͕ఏڙ͢Δ΋ͷͷ͏ͪɺ࠷΋جຊతͳػೳ • γεςϜ͕ٻΊΒΕΔػೳΛɺఆΊΒΕͨ৚݅ͷԼͰɺఆΊ ΒΕͨظؒʹΘͨΓɺো֐Λى͜͢͜ͱͳ࣮͘ߦ͢Δ֬཰ • ʮఆΊΒΕͨ৚݅ʯʹ͸ɺʮԠ౴͕࣌ؒ˓msҎԼʯͳͲΛؚΉ • ͨͩ͠ɺ100%ͷ৴པੑΛ໨ࢦͯ͠͸͍͚ͳ͍

    • Ϣʔβͷϥοϓτοϓɺࣗ୐ͷWifiɺISPͳͲ؅ཧ֎ͷγεςϜ͕͋Δ • ৴པੑ͸ࣄۀεϐʔυͱͷτϨʔυΦϑʹͳΓ΍͍͢ [1] [1]: P. O'Connor and A. Kleyner, Practical Reliability Engineering, 5th edition: Wiley, 2012.
  19. ৴པੑΛकΔ࢓ࣄ • αʔϏεͷՄ༻ੑɺϨΠςϯγɺύϑΥʔϚϯεɺޮ཰ ੑɺมߋ؅ཧɺϞχλϦϯάɺΩϟύγςΟϓϥϯχϯ άʹ੹೚Λ΋ͭ • ඞཁͳεΩϧ͸ଟذʹΘͨΔ • ίϯϐϡʔλΞʔΩςΫνϟɺωοτϫʔΫɺOSɺ෼ࢄγες Ϝɺσʔλϕʔεٕज़ɺ΢Σϒαʔόͷઐ໳஌ࣝ

    • ιϑτ΢ΣΞΤϯδχΞϦϯά [1] [1]: Betsy Beyer, et al.ฤ ᖒా෢உ, et al.؂༁ Skyגࣜձࣾ ۄ઒ཽ࢘༁,ʮSRE αΠτϦϥΠΞϏϦςΟΤϯδχΞϦϯά ――Googleͷ ৴པੑΛࢧ͑ΔΤϯδχΞϦϯάνʔϜʯ,ΦϥΠϦʔɾδϟύϯ,2017/08
  20. ৴པੑΛकΓͭͭɺඅ༻Λ࠷খʹ͢Δ • ৴པੑΛकΔ͚ͩͰͳ͘ɺਓ݅අ΍σʔληϯλʔඅ༻Λখ ͘͢͞Δ͜ͱ΋ٻΊΒΕΔ • ਓ݅අ͸ιϑτ΢ΣΞʹΑΔӡ༻ޮ཰ԽʹΑΓ࡟ݮ • σʔληϯλʔඅ༻͸ιϑτ΢ΣΞͷ࣮ߦޮ཰ͷ޲্ʹΑΓ࡟ݮ • ৴པੑΛ੍໿৚݅ͱͯ͠ɺඅ༻Λ࠷খʹ͢Δ࠷దԽ໰୊Λղ

    ͍͍ͯΔͱ͍͑Δ • ಛʹఆܕ࡞ۀ(τΠϧ)ΛࣗಈԽ͠ɺਓؒͰ͸ͳ͘ίϯϐϡʔλ Λεέʔϧͤ͞ΔΑ͏ʹ͢Δ͜ͱ͕େ͖ͳ࢓ࣄ
  21. ਓؒͱίϯϐϡʔλʹΑΔࣗ཯γεςϜ • Ұൠͷਓʑ͔ΒΈΕ͹ɺ΢ΣϒγεςϜ͸े෼ʹࣗ཯ಈ ࡞͍ͯ͠Δ • ͨͩ͠ɺͦͷཪͰ͸ਓؒͷख࡞ۀ΍൑அʹΑΓ৴པੑΛ ୲อ͍ͯ͠Δ • ਓ͕ؒͳʹ΋͠ͳ͚Ε͹ɺ͓Αͦ1िؒఔ౓Ͱ৴པੑ͸ ଛͳΘΕΔ͜ͱ΋͋Δ

    • ि຤΍௕ظٳՋத͸Φϯίʔϧ౰൪Λෑ͘
  22. ΢ΣϒγεςϜ ਓؒ 1$ ਓʑ *P5ػث εϚʔτ ϑΥϯ ίϯϐϡʔλ

  23. ΢ΣϒγεςϜ ਓؒ 1$ ਓʑ *P5ػث εϚʔτ ϑΥϯ ίϯϐϡʔλ

  24. ίϯϐϡʔλͷΈͰγεςϜΛ ӡ༻Ͱ͖Δঢ়ଶʹ͢Δ͜ͱ͕໨ඪ

  25. 2. ΢ΣϒγεςϜӡ༻ͷݱঢ়ͱ ՝୊

  26. (೔ຊͷ) ΢ΣϒγεςϜӡ༻ٕज़ ͷมભ

  27. ࣗ࡞αʔό࣌୅ ~2010೥ • ळ༿ݪͰύʔπΛߪೖ͠ɺαʔόΛਓ͕૊Έཱ͍ͯͯͨ • ૊ΈཱͯͨαʔόΛϥοΫʹख࡞ۀͰ഑ஔ͍ͯͨ͠ • ࣗ࡞ͰյΕ΍͍ͨ͢Ίɺ৑௕Խػߏ΍εέʔϧΞ΢τػ ߏͳͲ৴པੑΛߴΊΔجૅػೳͷਁಁ •

    ͷͪʹϕϯμʔ੡αʔό΍Ϋϥ΢υ΁Ҡߦ͕ਐΉ • Xen΍KVMͳͲͷαʔόԾ૝Խٕज़ʹΑΓɺঃʑʹαʔ όΛϞϊ͔Βσʔλͱͯ͠ѻ͏ྲྀΕ͕Ͱ͖͸͡ΊΔ
  28. Ϋϥ΢υ࣌୅ 2011೥ʙ • 2011೥AWS౦ژϦʔδϣϯ։ઃ͠ɺ༗໊΢Σϒاۀ͕Ҡߦ ͠͸͡ΊΔ • ඞཁͳͱ͖ʹ͙͢ʹϋʔυ΢ΣΞϦιʔε͕खʹೖΔ࣌୅ • ैདྷ͸೔୯ҐͷϦʔυλΠϜ͕෼୯Ґʹ •

    αʔόΛϓϩάϥϚϒϧʹ࡞੒͢Δ֓೦͕ొ৔ • ෛՙʹԠͯࣗ͡ಈͰαʔόΛ૿΍͢ͳͲͷಈతͳΠϯϑϥ ετϥΫνϟΛߏஙͰ͖ΔΑ͏ʹͳ͖ͬͯͨ https://aws.amazon.com/jp/aws_history/details/
  29. ίϯςφܕԾ૝Խٕज़ͷ୆಄ 2013೥ʙ • Dockerͷొ৔ʹΑΓιϑτ΢ΣΞͷಈ࡞؀ڥΛؙ͝ͱ ύοέʔδԽ͠ɺ͞·͟·ͳ؀ڥʹ഑෍Ͱ͖ΔΑ͏ʹ • VMͱҟͳΓɺඵ୯ҐͰىಈ͢ΔͨΊɺΑΓಈతͳΠϯ ϑϥετϥΫνϟͷߏங͕Մೳʹͳͬͨ • Immutable

    Infrastructure(࢖͍ࣺͯαʔό)ͷ֓೦ొ৔
  30. Site Reliability Engineering(SRE)ͷొ৔ • ʮ৴པੑʯΛ୲อ͢ΔΤϯδχΞϦϯάͱ͍͏ɺԿΛ͢Δ ٕज़΍ΤϯδχΞͳͷ͔͕͸͖ͬΓఆٛ͞Εͨ • ͦΕ·Ͱ͸ɺʮΠϯϑϥʯʮԼճΓʯͳͲͱ͍͏ݺ͹Εํ • ΢ΣϒΦϖϨʔγϣϯͱ͍͏୯ޠ΋͕͋ͬͨɺΦϖϨʔγϣ

    ϯ=ӡ༻ͷΠϝʔδ͕ڧ͍ • SRE͸ιϑτ΢ΣΞ։ൃΛॏࢹ͍ͯ͠Δ “ΠϯϑϥνʔϜվΊ Site Reliability Engineering (SRE) νʔϜʹͳΓ·ͨ͠” http://tech.mercari.com/entry/2015/11/18/153421
  31. มભ·ͱΊ • ੲ͸ϋʔυ΢ΣΞΛௐୡ͠ɺख࡞ۀͰϥοΩϯά͍ͯͨ͠ • αʔόͷԾ૝Խٕज़ͷൃୡͱΞϓϦέʔγϣϯಈ࡞؀ڥύο έʔδϯάͷ֓೦ʹΑΓɺμΠφϛοΫͳΠϯϑϥετϥ Ϋνϟ͕ߏஙՄೳʹ • ιϑτ΢ΣΞΤϯδχΞϦϯάΛॏࢹͨ͠૊৫จԽͷਁಁ •

    ͜ͷ10೥Ͱιϑτ΢ΣΞʹΑΔӡ༻ࣗಈԽ͕େ෯ʹਐΜ Ͱ͖ͨ
  32. ຊ౰͸ා͍ ΢ΣϒγεςϜ

  33. ຊ౰͸ා͍΢ΣϒγεςϜ • ҟৗ͕ൃੜͯ͠΋ݪҼ͕Θ͔Βͳ͍͜ͱ͕͋Δ • γεςϜʹର͢Δૢ࡞͕҆શ͔Ͳ͏͔อূ͞Ε͍ͯͳ͍ • ࣗಈԽ͕ਐΜͰ͍Δ͔Βͦ͜ɺෆ໌Ͱ͋Δ͜ͱ͕ҟৗʹ ର͢ΔʮڪාʯΛ͏Ή • γεςϜͷৼΔ෣͍͕·ΔͰʮࣗવݱ৅ʯʹײ͡ΒΕΔ

    • ৼΔ෣͍ͷղ໌ʹଟ͘ͷ࣌ؒΛͱΒΕͨΓɺΘ͟ͱࣗಈ ԽΛආ͚ͯɺਓؒͷ൑அΛ͸͞΋͏ͱ͢Δ͜ͱ͕͋Δ
  34. ຊ౰͸ා͍΢ΣϒγεςϜӡ༻: ྫ1 • ϋʔυ΢ΣΞͷΩϟύγςΟʹ͸·ͩ༨༟͕͋Δʹ΋͔͔ΘΒͣɺ 1୆͋ͨΓͷॲཧೳྗ͕಄ଧͪʹͳΔέʔε • ୆਺Λࣗಈ૿Ճͤ͞Δ΋ͷɺಛఆϊʔυ΁ͷ઀ଓ਺ͷڐ༰ྔΛ௒ ͑ͯ͠·͏ • ϚϧνεϨουϞσϧͷWebαʔόͰɺڞ༗ϝϞϦ্Ͱάϩʔό

    ϧϩοΫΛͱ͍ͬͯΔՕॴ͕͋Γɺಉ࣌ॲཧ਺͕΄΅1 • ScalaͷॲཧܥϨϕϧͷ໰୊Ͱಛఆʹ͕͔͔࣌ؒͬͨ
  35. ΢Σϒ αʔό ϦΫΤετ ϩʔυ όϥϯα Ϩεϙϯε σʔλϕʔε αʔό

  36. ΢Σϒ αʔό ϦΫΤετ ϩʔυ όϥϯα Ϩεϙϯε σʔλϕʔε αʔό $16͸༨͍ͬͯΔ ͷʹੑೳ͕಄ଧͪ

  37. ΢Σϒ αʔό ϦΫΤετ ϩʔυ όϥϯα Ϩεϙϯε σʔλϕʔε αʔό ࣗಈεέʔϧ

  38. ΢Σϒ αʔό ϦΫΤετ ϩʔυ όϥϯα Ϩεϙϯε σʔλϕʔε αʔό ઀ଓ਺ ্ݶʹ͋ͨΔ

  39. αʔό͋ͨΓͷ ઀ଓ਺ΛݮΒͯ͠ௐઅ ΢Σϒ αʔό ϦΫΤετ ϩʔυ όϥϯα Ϩεϙϯε σʔλϕʔε αʔό

  40. ੑೳݶք͕Θ͔Βͳ͍ ܥશମͷڍಈΛ஌Γ ੍ޚ͠ͳ͚Ε͹͍͚ͳ͍

  41. • ෼ࢄσʔλϕʔεͷωοτϫʔΫ෼அ໰୊ • ϚελʔɾεϨʔϒͷ2୆ߏ੒ͷσʔλϕʔεαʔό • Ϛελʔ=>εϨʔϒ΁ϦΞϧλΠϜʹσʔλΛෳ੡ • Ϛελʔϊʔυ͕μ΢ϯ͢ΔͱϑΥϩϫʔϊʔυ͕Ϛε λʔ΁ঢ֨ •

    ωοτϫʔΫ͕෼அ͞ΕΔͱɺ྆ํͱ΋Ϛελʔ΁ • ͲͪΒ͔Ұํ΁σʔλ͕ॻ͖ࠐ·ΕɺҰ؏ੑ͕ͳ͘ͳΔ ຊ౰͸ා͍΢ΣϒγεςϜӡ༻: ྫ2
  42. ΢Σϒαʔό ϦΫΤετ Ϩεϙϯε Ϛελʔ εϨʔϒ

  43. ΢Σϒαʔό ϦΫΤετ Ϩεϙϯε Ϛελʔ εϨʔϒ ෼அ

  44. ΢Σϒαʔό ϦΫΤετ Ϩεϙϯε Ϛελʔ ྆ํ Ϛ ε λ ʔ Ϛελʔ

  45. ΢Σϒαʔό ϦΫΤετ Ϩεϙϯε Ϛελʔ ֬཰తʹͲͪΒ͔ ʹॻ͖ࠐΉ Ϛελʔ

  46. ࣗಈԽʹΑΔฐ֐ • අ༻Λগͳ͘͢Δ͜ͱͰɺࣗಈԽ΍৑௕ԽػߏΛඋ͑Δ͜ͱ Ͱ৴པੑ͕Լ͕Δ͜ͱ͕͋Δ • ࣗಈεέʔϧ͢Δͱผͷ෦෼͕٧·Δ • ৑௕ԽػߏʹΑΓɺҰ؏ੑ͕ࣦΘΕΔ͜ͱ͕͋Δ • ܥશମͷਫ਼៛ͳཧղͱΤϥʔέʔεͷ໖ີͳચ͍ग़͕͠ඞཁ

    • ࠷ۙ͸ίϯϙʔωϯτ਺Λ૿΍͢ํ޲΁ٕज़͕ਐΜͰ͍Δͨ Ίɺύλʔϯ਺͕૿େ͠ਓ͕ཧղ͢Δ͜ͱ͕೉͘͠ͳ͍ͬͯΔ
  47. ΢ΣϒγεςϜͷෳࡶੑ

  48. ෳࡶཁҼ͸ͳʹ͔ • ιϑτ΢ΣΞґଘؔ܎ͷෳࡶ͞ • ෼ࢄγεςϜͱͯ͠ͷෳࡶ͞ • ೖྗύλʔϯͷෳࡶ͞

  49. ιϑτ΢ΣΞґଘؔ܎ͷෳࡶ͞ • ΢ΣϒγεςϜ͸ଟ਺ͷιϑτ΢ΣΞͷॏͶ߹ΘͤʹΑ Γߏ੒͞ΕΔ • ݴޠॲཧܥɺOSɺυϥΠόɺڞ༗ϥΠϒϥϦɺϛυϧ΢ΣΞɺ ΞϓϦέʔγϣϯϥΠϒϥϦɺΞϓϦέʔγϣϯ • ιϑτ΢ΣΞͷ૊Έ߹Θͤ໰୊ •

    όʔδϣϯޓ׵ɺϓϩτίϧޓ׵ͳͲΛؚΉ
  50. ෼ࢄγεςϜͷෳࡶ͞ • ҎԼͷ෼ࢄγεςϜͷલఏ͕͋Γɺ෺ཧ๏ଇʹ཯ͤΒΕΔ • ϊʔυ(ϋʔυ΢ΣΞ)͸յΕ͏Δ • ωοτϫʔΫ͸੾அɾ஗Ԇ͕͋ΓɺଳҬ͸༗ݶͰ͋Δ • ͜ΕΒͷΤϥʔ͔Βͷճ෮ػߏ͸ෳࡶʹͳΓ͕ͪ •

    TCPͷϑϩʔ੍ޚ΍࠶ૹ੍ޚͳͲ͕Α͍ྫ • σʔλϕʔεʹ͓͍ͯɺωοτϫʔΫ෼அ͞Εͯ΋Մ༻ੑͱҰ ؏ੑΛҡ࣋͢Δ͜ͱ͸೉͍͠ (CAPఆཧ)
  51. ೖྗύλʔϯͷෳࡶ͞ • ਓؒɺݕࡧΫϩʔϥɺεύϚʔͳͲͷ׆ಈʹԠͯ͡γεςϜ΁ͷ ೖྗύλʔϯ͸ಥൃతʹมԽ͢Δ • ੍ޚ޻ֶͰ͍͏ͱ͜Ζͷ֎ཚ • γεςϜͷڍಈΛ༧ଌ͢Δʹ͸࠶ݱੑ͕ඞཁ • ͔͠͠ɺ΢ΣϒγεςϜʹର͢Δ͋ΔظؒͷೖྗύλʔϯΛ׬શ

    ʹ࠶ݱ͢Δ͜ͱ͸೉͍͠ • σʔλϕʔεͳͲͷอଘঢ়ଶΛ౰࣌ͷظؒʹ໭্ͨ͠Ͱɺೖྗ ύλʔϯΛྲྀ͠ࠐΉ
  52. γεςϜͷෳࡶੑͷ ౓߹͍

  53. ୈ7ষ ෳࡶੑͷఆٛͱ ଌఆج४

  54. ෳࡶੑͷج४ • αΠζ • Τϯτϩϐʔ • ΞϧΰϦζϜ৘ใྔ • ࿦ཧਂ౓ •

    ೤ྗֶਂ౓ • ܭࢉೳྗ • ౷ܭతͳෳࡶੑ • ϑϥΫλϧ࣍ݩ • ֊૚౓
  55. ෳࡶੑͷج४: αΠζ • ͸ͯͳͷγεςϜαΠζ͸ த~େن໛ఔ౓ • αʔϏε਺: 100+ (಺෦޲ؚ͚Ή) •

    ϩʔϧ਺: 1000+ • ϗετ਺: 1000+ • ϓϩηε/εϨου਺: 10000+ • SRE਺: 10ਓऑ • Google΍Amazon͸௒େن໛Ͱ͓ͦΒ͘100~1000ഒͷαΠζ
  56. ֊૚౓ - ϓϩάϥϜ࣮ߦ୯Ґ - 10೥લ • Ϩϕϧ1: ϓϩηε/εϨου • Ϩϕϧ2:

    αʔό (ෳ਺ͷϓϩηεͷू߹ମ) • Ϩϕϧ3: ϩʔϧ (Ϋϥελ΍ϩʔυόϥϯα഑Լͷαʔό܈) • Ϩϕϧ4: αʔϏε: (ϩʔϧ·ͨ͸ϚΠΫϩαʔϏεͷू߹ମ) • Ϩϕϧ5: ϓϥοτϑΥʔϜ: (ෳ਺ͷαʔϏεͷू߹ମ) • Ϩϕϧ6: ΢Σϒ
  57. ֊૚౓ - ϓϩάϥϜ࣮ߦ୯Ґ - ࠷ۙ • Ϩϕϧ1: ϓϩηε/εϨου • Ϩϕϧ2:

    ίϯςφ • Ϩϕϧ3: αʔό (ෳ਺ͷϓϩηεͷू߹ମ) • Ϩϕϧ4: ϩʔϧ (Ϋϥελ΍ϩʔυόϥϯα഑Լͷαʔό܈) • Ϩϕϧ5: ϚΠΫϩαʔϏε • Ϩϕϧ6: αʔϏε: (ϩʔϧ·ͨ͸ϚΠΫϩαʔϏεͷू߹ମ) • Ϩϕϧ7: ϓϥοτϑΥʔϜ: (ෳ਺ͷαʔϏεͷू߹ମ) • Ϩϕϧ8: ΢Σϒ
  58. ͋Δଆ໘Ͱ͸ ࠷ۙͷج൫ٕज़ͷมԽʹΑΓ ෳࡶԽ͍ͯ͠Δͱ͍͑Δ

  59. ෳࡶ͕͞΋ͨΒ͢΋ͷ • γεςϜͷঢ়ଶ༧ଌ͕ࠔ೉ʹͳΓɺͦͷ݁Ռɺਓؒʹ൑அΛ ೔ʑٻΊΔΑ͏ʹͳΔ • ͜Ε͔Β࣮ࢪ͢Δมߋ͕҆શ͔Ͳ͏͔ΛอূͰ͖ͳ͍ɺ·ͨ ͸อূ͢ΔͨΊʹखؒΛ͔͚ͳ͚Ε͹͍͚ͳ͍ • ֎ཚͷ࠶ݱ͕೉͍ͨ͠ΊɺҰ૚ख͕͔͔ؒΔ •

    ͍ͭεέʔϧͷݶքʹ͋ͨΔ͔Θ͔Βͳ͍ • ݶքʹ͋ͨͬͯ΋ɺͲ͕͜ϘτϧωοΫ͔Θ͔Βͳ͍ • ΤϯδχΞͷܦݧΛجʹٕͨܳ͠Ͱղܾ͍ͯ͠Δ
  60. ෳࡶ͞ʹ Ͳ͏ର߅͍ͯ͘͠ͷ͔

  61. 3.΢ΣϒγεςϜͷࣗ཯తӡ༻ Ξϓϩʔν

  62. ؍ଌ Observation

  63. ؍ଌͱ͸ • ΢ΣϒγεςϜͷʮաڈͱݱࡏʯͷঢ়گΛਓؒ/ίϯ ϐϡʔλ͕೺ѲͰ͖ΔΑ͏ʹ͢Δ • 20೥ۙ͘લ͔Βʮ؂ࢹʯΛ͢ΔͨΊͷπʔϧ͸͋Δ • Θ͔Βͳ͍΋ͷΛΘ͔ΔΑ͏ʹ͢Δ͜ͱ͸͢΂ͯ؍ଌ • ʮ؂ࢹ(ping)ɺ࣌ܥྻσʔλͷऩूɺϩάσʔλͷऩ

    ूɺߏ੒ཁૉͱཁૉͷͭͳ͕Γɺೖྗͷ௥੻ʯͳͲ
  64. ΢ΣϒγεςϜͷ͞·͟·ͳࢦඪ஋ • ݸʑͷϋʔυ΢ΣΞϦιʔεࢦඪ • CPUར༻཰ɺϝϞϦ࢖༻ྔɺωοτϫʔΫଳҬͳͲ • ݸʑͷϛυϧ΢ΣΞ/ΞϓϦέʔγϣϯϦιʔεࢦඪ • εϨου਺ɺΫΤϦ਺ɺ଴ͪߦྻͷ௕͞ͳͲ •

    ܥશମΛදݱ͢Δࢦඪ • αʔϏεશମͷԠ౴࣌ؒɺΤϥʔϨʔτͳͲ
  65. Mackerel https://mackerel.io/

  66. αʔόͷϝτϦοΫՄ ࢹԽ

  67. ؍ଌ݁ՌΛ΋ͱʹͨ͠φΠʔϒͳࣗ཯੍ޚ • Ϋϥ΢υͷ୆಄ʹΑΓαʔόͷੜ੒ͱഇغΛϓϩάϥϜԽ • ࢦඪ஋ͷมಈʹԠͯ͡αʔόͷݸ਺΍ੑೳΛࣗಈௐ੔ • ෆௐϓϩηε/αʔόͷ৽௠୅ँ • ύϥϝʔλ͸ΤϯδχΞͷܦݧΛݩʹ஋Λઃఆ •

    ݱࡏͰ͸ɺ͜ͷ͋ͨΓ͕΢ΣϒγεςϜͷݱ৔Ͱਁಁதͷٕ ज़Ϩϕϧ • ͨͩ͜͠ͷΑ͏ͳφΠʔϒͳࣗ཯੍ޚʹ͸໰୊͕ى͖΍͍͢
  68. ଴ͪߦྻཧ࿦Λར༻ͨࣗ͠཯੍ޚ • ฏۉԠ౴࣌ؒͱฏۉϦΫΤετ਺Λ؍ଌ͠ɺͦΕΒΛॲ ཧ͢ΔͨΊͷ߹ܭϓϩηε/αʔό਺ΛׂΓग़ࣗ͠ಈௐ ੔Ͱ͖Δ • ࢦඪΛ؍ଌ͚ͭͮ͠ɺ౸ண෼෍ͱॲཧ෼෍͔ΒඞཁͳϦ ιʔεΛܧଓతʹܭࢉ͠ɺௐ੔͠ଓ͚Δ #SFOEBO(SFHH l4ZTUFNT1FSGPSNBODF&OUFSQSJTFBOEUIF$MPVEz

    1SFOUJDF)BMM  Ϧτϧͷ๏ଇ: ҆ఆঢ়ଶʹ͋Δܥʹ͓͍ͯɺγεςϜ಺ͷฏۉϦΫΤε τ਺L͸ɺฏۉ౸ண཰λͱฏۉ଴ͪ࣌ؒͷੵʹ౳͍͠ (L=λW)
  69. ଴ͪߦྻཧ࿦ͷ໰୊ • ͦ΋ͦ΋ର৅΢ΣϒγεςϜ΁ͷ౸ண෼෍͕Θ͔Βͳ͍ • Ծఆ͢Δ෼෍ͷൣғ֎ͷɺ༧ଌͷͰ͖ͳ͍ಥൃతͳ֎ཚʹରԠ͠ ͮΒ͍ • Θ͔Γ΍͍͢֎ཚ͸ɺྫ͑͹Yahoo!๒ͳͲ • ֎ཚ͸ࣄۀػձͱͳΔ͜ͱ͕͋ΔͨΊɺ෼෍͔Β֎Εͨҟৗ஋Ͱ

    ΋ແࢹͰ͖ͳ͍ • ͨͩ͠ɺఆৗঢ়ଶͰͷ෼෍Λ༻͍ͯɺΩϟύγςΟϓϥϯχϯά ʹར༻͢Δ͜ͱ͸Ͱ͖Δ
  70. ϑΟʔυόοΫ੍ޚ ཧ࿦

  71. ϑΟʔυόοΫ੍ޚ͸ɺେن໛Ͱෳࡶ ͳγεςϜΛɺͨͱ͑γεςϜ͕֎ཚ ʹӨڹΛड͚Α͏ͱ΋ɺ͋Δ͍͸ɺݶ ΒΕͨࢿݯΛ༗ޮར༻ͭͭ͠ɺͦͷੑ ೳΛอͬͯಈ࡞ͤ͞ΔͨΊͷख๏Ͱ͢ɻ Philipp K. Janert ஶ, ʮΤϯδχΞͷͨΊͷϑΟʔυόοΫ੍ޚೖ໳ʯ,ΦϥΠϦʔɾδϟύϯ,

    2014/07
  72. ϑΟʔυόοΫ੍ޚͷ஫໨఺ • ੍ޚର৅͸ϒϥοΫϘοΫεͰ͋Γɺத਎͸ෆ໌ͰΑ͍ • SRE͕ΞϓϦέʔγϣϯͷத਎Λ஌ΒͣʹϞχλϦϯά݁ Ռ͚ͩΛΈͯো֐ରԠ͢Δ༷ࢠʹࣅ͍ͯΔ • ଴ͪߦྻཧ࿦Ͱ͸Ͱ͖ͳ͍μΠφϛΫεΛѻ͑Δ • ݱ࣮ͷ΢ΣϒγεςϜͰ͸ɺղੳతʹϞσϧΛಋग़͢Δͷ

    ͸೉͍ͨ͠Ίɺύϥϝʔλͷܾఆʹ͸ʮ࣮ݧʯʹΑΔܭଌ ͕ඞཁ [1]: େ࡚ ത೭, େن໛ωοτϫʔΫͷ ઃܭɾϞσϧԽɾ੍ޚ, http://www.ieice.org/~netsci/wp-content/uploads/2013/08/NetSci201308_Ohsaki.pdf [1]
  73. ϑΟʔυόοΫ੍ޚͷಋೖΠϝʔδ • ੍ޚೖྗ: αʔόͷ୆਺ɺαʔόͷϝϞϦྔͳͲ • ੍ޚग़ྗ: ϨεϙϯελΠϜɺΤϥʔ਺ͳͲ • ੍ޚग़ྗΛ؂ࢹ͠ଓ͚ɺ໨ඪ஋͔Β֎ΕͨΒ੍ޚೖྗΛม ߋ͠ɺݩʹ໭͢Α͏ͳૢ࡞Λ͢Δ

    • ੍ޚೖྗʹରͯ͠఻ୡؔ਺Λద༻͠ɺ੍ޚग़ྗΛಘΔ • ఻ୡؔ਺ͷಉఆ΍νϡʔχϯά͸ɺ࣮γεςϜͰԠ౴ΛΈΔ ඞཁ͕͋Δ
  74. None
  75. Real World΁ͷ ੍ޚཧ࿦ͷಋೖʹ͸ ࣮Ԡ౴ͷσʔλ͕ඞཁ

  76. ࣮ݧ Experiment

  77. ੍ޚϞσϧͷύϥϝʔλਪఆ • ࣮γεςϜͷ؍ଌ݁ՌʹΑΓɺ੍ޚثͷؔ਺ͱύϥϝʔλ Λਪఆ͢Δ • ҟৗݕ஌ͷͨΊͷ֬཰෼෍ͷύϥϝʔλΛਪఆ͢ΔͨΊͷ ֶशͳͲ΋࣮ݧʹؚΉ • ͨͩ͠ɺྫ͑͹1୆͋ͨΓͷαʔόͷݶքੑೳͱ͍͏ͷ͸ ࣮ࡍʹݶք·ͰෛՙΛ͔͚ͳ͍ͱΘ͔Βͳ͍͜ͱ͕ଟ͍

    • ૉ๿ͳൃ૝ͩͱɺखಈͰ࣮ݧ͢Δ͜ͱʹͳΔ
  78. ࣮ݧΛࣗಈԽ͍ͨ͠

  79. ࣮ݧͷࣗಈԽ • ख࡞ۀʹΑΔ࣮ݧ͸ਓख͕ඞཁͰ݁ہ௕ଓ͖͠ͳ͍ • γεςϜʹ͸೔ʑมߋ͕Ճ͑ΒΕΔͨΊɺ࣮ݧͷܧଓԽ ͕ඞཁ • ࣮ݧΛࣗಈԽ͍ͨ͠ • ෼ࢄγεςϜͷࣗಈ࣮ݧͷ֓೦ͱͯ͠Netflix͕ఏএ͢Δ

    Chaos Engineering͕͋Δ
  80. “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.
  81. Θ͟ͱҟৗΛى͜͢ൃ૝ • αʔόμ΢ϯͳͲΘ͟ͱҟৗΛى͜͢͜ͱͰ࣮ݧ͢Δ • ͔͠͠ɺຊ൪؀ڥͰҟৗΛىͨ͜͠Γɺݶք·ͰෛՙΛ͔͚Δ ͷ͸ෆ҆ • Ϋϥ΢υ΍ίϯςφͳͲݶΓͳ͘ຊ൪ʹ͍ۙ؀ڥΛΦϯσϚϯ υʹߏங͢Δٕज़͕ൃୡ͖͍ͯͯ͠Δ •

    ຊ൪؀ڥͷෛՙΛ࠶ݱ͢Δͷ͸·ͩ೉͍͕͠… • ࣮ݧ؀ڥΛߴ଎ʹ࡞੒͠ഇغ͢Δ͜ͱͰ҆શʹ࣮ݧΛࣗಈԽ͢Δ
  82. ੍ޚҎ֎ͷखಈ࣮ݧ

  83. ੍ޚҎ֎ͷ࣮ݧ • ಈ࡞ςετ • ෛՙςετ • Τϥʔςετ • ϋʔυ΢ΣΞނো΍ωοτϫʔΫ஗Ԇͷ૿େͳͲ •

    ύϥϝʔλνϡʔχϯά • OSͳͲͷύϥϝʔλ(όοϑΝαΠζͳͲ)νϡʔχϯά • ͜ΕΒʹ͍ͭͯ΋ࣗಈԽ͢Δ
  84. ؍ଌͱ࣮ݧ

  85. ؍࡯ͱ࣮ݧͷࣗಈԽ͸ ۙ୅Պֶͷख๏ͷࣗಈԽ

  86. Ծઆԋ៷๏ • (1) ؍࡯ʹج͍ͮͨ໰୊ͷൃݟ (؍ଌ) • (2) ໰୊Λղܾ͢ΔԾઆͷఏى • (3)

    Ծઆ͔Βͷςετ໋୊ͷԋ៷ • (4) ςετ໋୊ͷ࣮ݧతݕূ·ͨ͸൓ূ (࣮ݧ) • (5) ςετͷ݁Ռʹجͮ͘Ծઆͷड༰ɺमਖ਼·ͨ͸์غ ໺ՈܒҰஶʮՊֶ఩ֶ΁ͷট଴ʯͪ͘·ֶܳจݿ 2015೥
  87. Ծઆԋ៷๏ͷϧʔϓΛߴ଎ʹճ͠ มԽʹదԠ͠ଓ͚ΔγεςϜ

  88. Experimentable Infrastructure

  89. 4. ࣗ཯ӡ༻ͷนͱ΢ΣϒαΠΤ ϯε

  90. ࣗ཯ӡ༻ͷͨΊͷେ͖ͳน • ϋʔυ΢ΣΞϦιʔε੍໿ • ༧Ί༻ҙͨ͠ϦιʔεϓʔϧͰ͞͹͚ΔҎ্ͷෛՙʹ͸଱͑ΒΕ ͳ͍ • Ϋϥ΢υʹ΋্ݶ͸ଘࡏ͢Δ • ֎ཚͷେ͖ͳมԽΛ༧૝Ͱ͖ͳ͍

    • αʔόͷ૿ՃͳͲʹ͸σΟϨΠ͕ଘࡏ͢ΔͨΊɺϑΟʔυόοΫ ͕ؒʹ߹Θͳ͍έʔε΋͋Γ͑Δ • ΢ΣϒαΠΤϯεͷݚڀΛϑΟʔυϑΥϫʔυ੍ޚʹ࢖͑Δ͔΋
  91. ࣗൃతʹൃల͢ΔαʔϏεͷಛ௃Λଊ͑ɺྫ͑͹ɺ Web αʔϏε͕ࠓޙൃల͍ͯ͘͠ͷ͔ɺݩؾΛ ͳ͍ͯ͘͘͠ͷ͔ɺͦ͏ͨ͠ঢ়ଶ༧ଌΛ໨ࢦ͠ɺ ࣗ཯తͳਓ޻γεςϜͷμΠφϛΫεΛଊ͑Δී วతͳํ๏࿦Λͭ͘ΓɺࣗવՊֶͱͯ͠ͷਓ޻γ εςϜݱ৅ͱ͍͏෼໺ͷཱ֬Λ໨ࢦ͍ͯ͠Δɻ 106 ਓ ޻

    ஌ ೳɹ31 ר 1 ߸ʢ2016 ೥ 1 ݄ʣʮ΢ΣϒαΠΤϯεݚڀձʢSIG-WebSciʣʯ ൃ଍
  92. ৴པੑΛ੍໿৚݅ͱͯ͠ අ༻Λ࠷খʹ͢Δ࠷దԽ໰୊ ※අ༻ = ਓ݅අ + αʔόɾωοτϫʔΫඅ༻

  93. ࣗ཯ӡ༻ • ͜͜·Ͱͷʮࣗ཯ʯͷఆٛ͸ʮࣗಈम෮ʯʮࣗ཯ӡ༻ʯ • ༩͑ΒΕ੍ͨ໿৚݅=৴པੑ Λຬͨ͢Α͏ʹࣗ཯ಈ࡞͢Δ ͜ͱΛ໨ࢦ͍ͯ͠Δ • ৴པੑΛࣗ཯తʹຬͨͤΕ͹ɺඅ༻ͷ͏ͪਓ݅අ͸͋Δఔ ౓࡟ݮͰ͖Δ

    • ৴པੑͷ৚݅ઃఆɺΞʔΩςΫνϟͷܾఆɺιϑτ΢ΣΞ ͷޮ཰ԽͳͲ͸Ҏલͱͯ͠ਓͷ࢓ࣄ
  94. ࣗ཯։ൃ

  95. ࣗ཯։ൃ • ࣗ཯తʹඅ༻Λ࠷খԽ͢ΔγεςϜ • ਐԽɾదԠͷ֓೦͕ඞཁ • ෼ࢄγεςϜΞʔΩςΫνϟͷઃܭɾվળ • ιϑτ΢ΣΞޮ཰վળͷࣗ཯Խ •

    ref. ιϑτ΢ΣΞਐԽͷݚڀͳͲ
  96. ΢ΣϒγεςϜ͸ෳࡶͰ͋Δ͕ ίϯϐϡʔλ͚ͩͰ͸ࣗ཯ͨ͠ܥͰ͸ͳ͍ ΢ΣϒγεςϜͱ͍͏ਓ޻෺Λ ࣗવͷΑ͏ʹৼΔ෣Θͤ ਓؒΛӡ༻͔Βղ์͍ͨ͠

  97. ͜͜·Ͱ͸ ޻ֶతϞνϕʔγϣϯ

  98. ͍͔ͭԕ͍ະདྷͰ ӡ༻͔Βղ์͞ΕͨΒ ԿΛ΍Δͷ͔

  99. ༡ΜͰ฻Β͢

  100. ༡ΜͰ฻Β͢͜ͱʹ ͦΜͳʹڵຯ͕ͳ͍

  101. ʮγεςϜʯ͕޷͖

  102. ਓͷखΛհͣ͞ʹಈ͖ଓ͚Δ ΢ΣϒγεςϜΛ୳ڀ͢Δ͜ͱͰ ෳࡶͳܥʹର͢Δ౷Ұతͳ๏ଇΛൃݟ͠ ࣗવՊֶ΁ߩݙͰ͖Δ͜ͱ͸ͳ͍͔

  103. ωοτϫʔΫͷٕज़֊૚ΛؚΉ Webͷଘࡏͦͷ΋ͷ Λ৽͍͠ʮࣗવݱ৅ʯͱͯ͠ଊ͑ɺྫ͑͹ɺͦͷʮੜ ଶܥʯͱͯ͠ͷߏ଄Λ໌Β͔ʹ͢Δ͜ͱͰɺීวతͳ μΠφϛΫε΍ύλʔϯΛ໌Β͔ʹ͠ɺैདྷͷࣗવՊ ֶɾਓจՊֶͷߟ͑Λൃలͤ͞Δ͜ͱΛ໨ࢦ͍ͯ͠ Δɻ 106 ਓ ޻

    ஌ ೳɹ31 ר 1 ߸ʢ2016 ೥ 1 ݄ʣʮ΢ΣϒαΠΤϯεݚڀձʢSIG-WebSciʣʯ ൃ଍
  104. 5. ·ͱΊ

  105. ·ͱΊ • ໨ඪ͸γεςϜͷӡ༻͔Βਓ͕ؒղ์͞ΕΔ͜ͱ • Ϋϥ΢υͷొ৔ͳͲͰӡ༻ʮࣗಈԽʯ͕ਐΜͰ͖͕ͨɺ ʮࣗ཯Խʯʹ͍ͭͯ͸·ͩ·ͩ͜Ε͔Β • ࣗ཯ӡ༻ʹ޲͚ͯɺۙ୅ࣗવՊֶͷํ๏࿦Λώϯτʹ͠ ͨExperimentable Infrastructureߏ૝Λ঺հ

    • ࣗ཯ӡ༻ͷେ͖ͳนͱ΢ΣϒαΠΤϯεͷՄೳੑ
  106. ͓·͚

  107. ΢ΣϒγεςϜΞʔΩςΫνϟݚڀձ • ೔ຊʹ͸ίϯϐϡʔλωοτϫʔΫͷݚڀձ͸ͨ͘͞Μ͋Δ • ΢ΣϒγεςϜͷΞʔΩςΫνϟ΍ϦΞϧϫʔϧυͷӡ༻·Ͱؚ Ίͨݚڀձ͕͋·Γͳ͍ • ࠷΋͍ۙͷ͸৘ใॲཧֶձIOTݚڀձ • ւ֎ͩͱUSENIXͷLISA΍SREconͳͲ

    • ͦ͜ͰݚڀձΛ্ཱͪ͛Α͏ͱ͍ͯ͠Δ => 12/23@ژ౎ • ϋογϡλά #wsaݚ
  108. ΢ΣϒΦϖϨʔγϣϯ͸ٕܳ Ͱ͋ΓՊֶͰ͸ͳ͍ John Allspaw,Jesse Robbinsฤ, ֯ ੐య༁ ΢ΣϒΦϖϨʔγϣϯʔʔαΠτӡ༻؅ཧͷ࣮ફςΫχοΫ, ΦϥΠϦʔɾδϟύϯ, 2011/05

  109. ٕ͔ܳΒՊֶ΁