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

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

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

A658ec7f1badf73819dfa501165016c1?s=128

Yuuki Tsubouchi (yuuk1)

November 24, 2017
Tweet

Transcript

  1. 1.

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

    ਓ޻஌ೳֶձ ߹ಉݚڀձ ୈ̏ճ΢ΣϒαΠΤϯεݚڀձ: ࣗવݱ৅ͱͯ͠ͷ΢Σϒ ট଴ߨԋ
  2. 2.

    id:y_uuki / @y_uuk1 ௶಺ ༎थ https://yuuk.io/ 2012೥ େࡕେֶ جૅ޻ֶ෦৘ใՊֶݚڀՊ ଔۀ

    2013೥ େࡕେֶ ৘ใՊֶݚڀՊത࢜લظ՝ఔ ୀֶ ಉ೥ גࣜձࣾ͸ͯͳ ৽ଔೖࣾ 2017೥ݱࡏ γχΞΤϯδχΞɺςοΫϦʔυ
  3. 4.
  4. 15.

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

    Ұੲલͷදݱ͸ʮ΢ΣϒΦϖϨʔγϣϯΤϯδχΞʯ • ͞Βʹͦͷੲ͸ɺʮγεςϜ؅ཧऀʯʮαʔό؅ཧऀʯ • ࡉ͔ͳࠩҟ͸͋ΕͲɺେ·͔ͳ2෼ߏ଄͸΢ΣϒۀքͰ͸ ීวత
  5. 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
  6. 18.

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

    • Ϣʔβͷϥοϓτοϓɺࣗ୐ͷWifiɺISPͳͲ؅ཧ֎ͷγεςϜ͕͋Δ • ৴པੑ͸ࣄۀεϐʔυͱͷτϨʔυΦϑʹͳΓ΍͍͢ [1] [1]: P. O'Connor and A. Kleyner, Practical Reliability Engineering, 5th edition: Wiley, 2012.
  7. 19.

    ৴པੑΛकΔ࢓ࣄ • αʔϏεͷՄ༻ੑɺϨΠςϯγɺύϑΥʔϚϯεɺޮ཰ ੑɺมߋ؅ཧɺϞχλϦϯάɺΩϟύγςΟϓϥϯχϯ άʹ੹೚Λ΋ͭ • ඞཁͳεΩϧ͸ଟذʹΘͨΔ • ίϯϐϡʔλΞʔΩςΫνϟɺωοτϫʔΫɺOSɺ෼ࢄγες Ϝɺσʔλϕʔεٕज़ɺ΢Σϒαʔόͷઐ໳஌ࣝ

    • ιϑτ΢ΣΞΤϯδχΞϦϯά [1] [1]: Betsy Beyer, et al.ฤ ᖒా෢உ, et al.؂༁ Skyגࣜձࣾ ۄ઒ཽ࢘༁,ʮSRE αΠτϦϥΠΞϏϦςΟΤϯδχΞϦϯά ――Googleͷ ৴པੑΛࢧ͑ΔΤϯδχΞϦϯάνʔϜʯ,ΦϥΠϦʔɾδϟύϯ,2017/08
  8. 28.

    Ϋϥ΢υ࣌୅ 2011೥ʙ • 2011೥AWS౦ژϦʔδϣϯ։ઃ͠ɺ༗໊΢Σϒاۀ͕Ҡߦ ͠͸͡ΊΔ • ඞཁͳͱ͖ʹ͙͢ʹϋʔυ΢ΣΞϦιʔε͕खʹೖΔ࣌୅ • ैདྷ͸೔୯ҐͷϦʔυλΠϜ͕෼୯Ґʹ •

    αʔόΛϓϩάϥϚϒϧʹ࡞੒͢Δ֓೦͕ొ৔ • ෛՙʹԠͯࣗ͡ಈͰαʔόΛ૿΍͢ͳͲͷಈతͳΠϯϑϥ ετϥΫνϟΛߏஙͰ͖ΔΑ͏ʹͳ͖ͬͯͨ https://aws.amazon.com/jp/aws_history/details/
  9. 30.

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

    ϯ=ӡ༻ͷΠϝʔδ͕ڧ͍ • SRE͸ιϑτ΢ΣΞ։ൃΛॏࢹ͍ͯ͠Δ “ΠϯϑϥνʔϜվΊ Site Reliability Engineering (SRE) νʔϜʹͳΓ·ͨ͠” http://tech.mercari.com/entry/2015/11/18/153421
  10. 41.

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

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

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

    ೤ྗֶਂ౓ • ܭࢉೳྗ • ౷ܭతͳෳࡶੑ • ϑϥΫλϧ࣍ݩ • ֊૚౓
  12. 55.

    ෳࡶੑͷج४: αΠζ • ͸ͯͳͷγεςϜαΠζ͸ த~େن໛ఔ౓ • αʔϏε਺: 100+ (಺෦޲ؚ͚Ή) •

    ϩʔϧ਺: 1000+ • ϗετ਺: 1000+ • ϓϩηε/εϨου਺: 10000+ • SRE਺: 10ਓऑ • Google΍Amazon͸௒େن໛Ͱ͓ͦΒ͘100~1000ഒͷαΠζ
  13. 56.

    ֊૚౓ - ϓϩάϥϜ࣮ߦ୯Ґ - 10೥લ • Ϩϕϧ1: ϓϩηε/εϨου • Ϩϕϧ2:

    αʔό (ෳ਺ͷϓϩηεͷू߹ମ) • Ϩϕϧ3: ϩʔϧ (Ϋϥελ΍ϩʔυόϥϯα഑Լͷαʔό܈) • Ϩϕϧ4: αʔϏε: (ϩʔϧ·ͨ͸ϚΠΫϩαʔϏεͷू߹ମ) • Ϩϕϧ5: ϓϥοτϑΥʔϜ: (ෳ਺ͷαʔϏεͷू߹ମ) • Ϩϕϧ6: ΢Σϒ
  14. 57.

    ֊૚౓ - ϓϩάϥϜ࣮ߦ୯Ґ - ࠷ۙ • Ϩϕϧ1: ϓϩηε/εϨου • Ϩϕϧ2:

    ίϯςφ • Ϩϕϧ3: αʔό (ෳ਺ͷϓϩηεͷू߹ମ) • Ϩϕϧ4: ϩʔϧ (Ϋϥελ΍ϩʔυόϥϯα഑Լͷαʔό܈) • Ϩϕϧ5: ϚΠΫϩαʔϏε • Ϩϕϧ6: αʔϏε: (ϩʔϧ·ͨ͸ϚΠΫϩαʔϏεͷू߹ମ) • Ϩϕϧ7: ϓϥοτϑΥʔϜ: (ෳ਺ͷαʔϏεͷू߹ମ) • Ϩϕϧ8: ΢Σϒ
  15. 72.

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

    ͸೉͍ͨ͠Ίɺύϥϝʔλͷܾఆʹ͸ʮ࣮ݧʯʹΑΔܭଌ ͕ඞཁ [1]: େ࡚ ത೭, େن໛ωοτϫʔΫͷ ઃܭɾϞσϧԽɾ੍ޚ, http://www.ieice.org/~netsci/wp-content/uploads/2013/08/NetSci201308_Ohsaki.pdf [1]
  16. 74.
  17. 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.
  18. 83.

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

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

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

    Ծઆ͔Βͷςετ໋୊ͷԋ៷ • (4) ςετ໋୊ͷ࣮ݧతݕূ·ͨ͸൓ূ (࣮ݧ) • (5) ςετͷ݁Ռʹجͮ͘Ծઆͷड༰ɺमਖ਼·ͨ͸์غ ໺ՈܒҰஶʮՊֶ఩ֶ΁ͷট଴ʯͪ͘·ֶܳจݿ 2015೥
  20. 90.

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

    • αʔόͷ૿ՃͳͲʹ͸σΟϨΠ͕ଘࡏ͢ΔͨΊɺϑΟʔυόοΫ ͕ؒʹ߹Θͳ͍έʔε΋͋Γ͑Δ • ΢ΣϒαΠΤϯεͷݚڀΛϑΟʔυϑΥϫʔυ੍ޚʹ࢖͑Δ͔΋
  21. 104.
  22. 106.