Upgrade to Pro — share decks privately, control downloads, hide ads and more …

研究者とエンジニアが交わるその先へ / A futer of where researchers and engines intersect

研究者とエンジニアが交わるその先へ / A futer of where researchers and engines intersect

大学から社会人へ、その後大学院に入学後、再び社会人へ、そして研究所創設

ペパボ研究所 主席研究員 兼 シニアプリンシパルエンジニア 松本 亮介 / Pepabo R&D Institute, GMO Pepabo, Inc.
2017.11.15 公立はこだて未来大学 ITアーキテクチャ特論

MATSUMOTO Ryosuke

November 16, 2017
Tweet

More Decks by MATSUMOTO Ryosuke

Other Decks in Technology

Transcript

  1. େֶ͔Βࣾձਓ΁ɺͦͷޙେֶӃʹೖֶޙɺ࠶ͼࣾձਓ΁ɺͦͯ͠ݚڀॴ૑ઃ
    ϖύϘݚڀॴ ओ੮ݚڀһ ݉ γχΞϓϦϯγύϧΤϯδχΞ দຊ ྄հ / Pepabo R&D Institute, GMO Pepabo, Inc.
    2017.11.15 ެཱ͸ͩͯ͜ະདྷେֶ ITΞʔΩςΫνϟಛ࿦
    ݚڀऀͱΤϯδχΞ͕ަΘΔͦͷઌ΁

    View full-size slide

  2. #FUN_IT
    5XJUUFSϋογϡλά

    View full-size slide

  3. ຊൃදͰ͸ɺࢲͷݚڀ։ൃ׆ಈ͚ͩͰͳ͘ɺΩϟϦΞ΍ಘΒΕͨڭ܇ɺࢲͷߦಈ
    ࢦ਑ʹ͍ͭͯ΋͓࿩͠·͕͢ɺ͜Ε͸୭ʹͰ΋ڞ௨͢Δ΋ͷͰ͸͋Γ·ͤΜɻ
    ͜ͷମݧͦͷ΋ͷ͸௚઀׆͔ͤΔ࿩Ͱ͸͋Γ·ͤΜ͕ɺօ༷ͷߟ͑΍ମݧʹॏͶ
    ߹ΘͤͯɺԿ͔গ͠Ͱ΋೔ʑͷֶशͱେֶमྃޙͷੜ͖ํʹ͍ͭͯɺࣗ෼ͷελ
    ΠϧΛ࡞Γ্͛ΔࢀߟʹͳΕ͹޾͍Ͱ͢ɻ
    3
    ຊൃද

    View full-size slide

  4. 1. ͸͡Ίʹ
    2. ࢲͷ࠷ۙͷݚڀ։ൃ঺հ
    3. ݚڀऀͱΤϯδχΞ͕ަΘΔͦͷઌ΁
    4. ͓ΘΓʹ
    4
    ໨࣍

    View full-size slide

  5. φΠϑΛ্खʹ࢖͏ٕज़

    View full-size slide

  6. ͍͢͝੾ΕຯͷφΠϑΛ࡞Δٕज़

    View full-size slide

  7. ंΛ্खʹӡస͢Δٕज़

    View full-size slide

  8. ੑೳͷߴ͍ंΛ࡞Δٕज़

    View full-size slide

  9. ֨ಆήʔϜͰউٕͭज़

    View full-size slide

  10. ໘ന͘΍Γ͕͍ͷ͋ΔήʔϜΛ࡞Δٕज़

    View full-size slide

  11. • ͲͪΒ΋Ԟ͕ਂ͍
    • ͲͪΒ΋΍ΓࠐΉʹ͸େมͳ౒ྗ͕ඞཁ
    • ͲͪΒ΋΍ΓࠐΜͰཱ྆Ͱ͖Δ΄Ͳਓؒ͸༏Ε͍ͯͳ͍
    • ਓʹ༩͑ΒΕͨ࣌ؒ͸ฏ౳Ͱ͋Δ
    • ֨ಆήʔϜͰ΋2ΩϟϥΛ߈ུ͢Δͷ͸ͱʹ͔͘େม
    • ੈքҰΛ໨ࢦ͢ʹͯ͠΋໨ͷલͷϨϕϧΛ໨ࢦ͢ʹͯ͠΋ಉ͡ݪཧ͕ಇ͘
    15
    ͋ΒΏΔͱ͜ΖͰݟΒΕΔߏਤ

    View full-size slide

  12. Webؔ࿈
    ٕज़

    View full-size slide

  13. ٕज़Λ૊Έ߹Θͤͯ࢖͏ٕज़

    View full-size slide

  14. ٕज़Λ࡞Γ্͛Δٕज़

    View full-size slide

  15. • Webۀք͸·͞ʹઓࠃ࣌୅
    • ߴ౓ʹٕज़Λ࢖͏ΤϯδχΞͱ৽͍ٕ͠ज़Λ࡞ΔΤϯδχΞ͕ݱΕ࢝ΊΔ
    • ιϑτ΢ΣΞ΍ٕज़ϊ΢ϋ΢͕ΦʔϓϯԽ͠৘ใͷಁ໌Խ͕ਐΉ
    • ͱͯͭ΋ͳ͍଎౓ͰมԽ͠ൃల͠ଓ͚ΔWebٕज़
    19
    Webٕज़ʹ͍ͭͯ΋ಉ༷ͷߏਤ͕͋Δ

    View full-size slide

  16. • ৗʹΞϯςφΛுΓ८ΒͤͯมԽͷ଎͍ٕज़ΛಘΔඞཁ͕͋Δ
    • ໨ͷલͷ՝୊ʹରͯ͠ߴ౓ʹٕज़Λ૊Έ߹Θͤૉૣ͘՝୊ղܾ͢Δྗ
    • ৽ٕज़ͷ࣮૷΍τϨϯυΛৗʹษڧͯ͠࢖͍ଓ͚Δྗ
    • اۀͷαʔϏεΛ௨ͯ͠ૉૣ͘՝୊ղܾΛ܁Γฦ͢͜ͱͰಘΒΕΔٕज़ྗ
    • αʔϏε։ൃతΞϓϩʔν
    20
    ٕज़Λ૊Έ߹Θͤͯ࢖͏ٕज़

    View full-size slide

  17. • ಉ༷ʹৗʹΞϯςφΛுΓ८ΒͤͯมԽͷ଎͍ٕज़Λ஌Δඞཁ͕͋Δ
    • ๲େͳैདྷٕज़ΛαʔϕΠͯ͠ݱࡏͷ՝୊ͱ৽نੑΛ໌֬Խ͢Δࢥߟྗ
    • ීวతͳجૅ֓೦Λशಘ͠ڞ௨఺Λݟग़͠ҰൠԽͯ͠૊ΈཱͯΔߏ૝ྗ
    • ॆ෼ͳ࣌ؒΛ༩͑ɺେֶ΍ݚڀ։ൃͷதͰֶͼಘΒΕΔٕज़ྗ
    • ՊֶతΞϓϩʔν
    21
    ٕज़Λ࡞Γ্͛Δྗ

    View full-size slide

  18. ͍ͣΕ΋ίʔυΛॻ͚Δ͜ͱ͸
    ඞਢͷ࣌୅΁

    View full-size slide

  19. ࠓޙͲ͜ʹڝ૪ྗ͕ੜ·Εͯ͘Δ͔ʁ

    View full-size slide

  20. WebۀքͰͷϢʔβՁ஋΁ͷߩݙ౓ʢদຊ༧૝Ͱ͢ʣ
    24
    ೥લ
    ݱࡏ
    ೥ޙ
    ϢʔβՁ஋
    ૊Έ߹Θͤͯ࢖͏ٕज़ ٕज़Λ࡞Δٕज़

    View full-size slide

  21. • ٕज़ϨΠϠʔͷந৅Խ͕Ճ଎
    • ٕज़৘ใͷڞ༗΍ιϑτ΢ΣΞͷެ։ʹΑΔٕज़ͷಁ໌Խ͕Ճ଎
    • ٕͨͩज़Λ૊Έ߹ΘͤΔγεςϜ͔Β৽͍͠γεςϜͷఏҊ͕ڝ૪ྗ΁
    • AIΛ׆༻ͨ͠γεςϜɺ৽͍͠ΞʔΩςΫνϟɺ৽͍͠ӡ༻ٕज़ͳͲ
    • WebαʔϏε΁ͷϢʔβՁ஋ʹ઎ΊΔݚڀͷྖҬ͕૿େ͍ͯ͘͠ʢ༧૝ʣ
    ➜ اۀͰ΋ΞΧσϛΞͰ΋γεςϜͷݚڀ։ൃ͕ඞཁͩͱٞ࿦͞Ε͍ͯΔ
    25
    WebαʔϏεͷڝ૪ྗ

    View full-size slide

  22. ͱ͸͍͑
    ߴ౓ʹ࢖͏ٕज़΁ͷཁٻ΋૿Ճ

    View full-size slide

  23. ٕज़Λ࡞Δٕज़΁ͷཁٻ͸͞Βʹ૿Ճ

    View full-size slide

  24. ૊৫ͱٕͯ͠ज़Λߴ౓ʹ࢖͏ྗͱ࡞Δྗͷ
    ཱ͕྆ٻΊΒΕ࢝Ί͍ͯΔ

    View full-size slide

  25. Webؔ࿈
    ٕज़

    View full-size slide

  26. ٕज़Λ૊Έ߹Θͤͯ࢖͏ٕज़

    View full-size slide

  27. ٕज़Λ࡞Γ্͛Δٕज़

    View full-size slide

  28. օ༷͸ͲͪΒͷํ޲ੑʹߦ͖͍ͨͰ͔͢ʁ

    View full-size slide

  29. ΤϯδχΞͱݚڀऀ͕ަࠩ͢Δੈք

    View full-size slide

  30. ΤϯδχΞͱݚڀऀͷ۠ผ͕ແҙຯͳੈք

    View full-size slide

  31. ࠓ೔͸ʮٕज़Λ࡞Γ্͛Δٕज़ʯΛ
    બ୒ͨ͠ࢲͷ࿩Λ͠·͢

    View full-size slide

  32. 2. ࢲͷ࠷ۙͷݚڀ։ൃ঺հ

    View full-size slide

  33. • ژ౎େֶത࢜ʢ৘ใֶʣ
    • ϖύϘݚڀॴ ओ੮ݚڀһ
    • GMOϖύϘ γχΞɾϓϦϯγύϧ ΤϯδχΞ
    • ݩΠϯϑϥΤϯδχΞ
    • ೔ຊOSS঑ྭ৆ɾ৘ใॲཧֶձ ࢁԼه೦ݚڀ৆
    37
    দຊ྄հ / ·ͭ΋ͱΓʔ / @matsumotory

    View full-size slide

  34. ࢲͷ࠷ۙͷݚڀ։ൃͷऔΓ૊Έ

    View full-size slide

  35. ۝भେֶͱͷऔΓ૊Έ

    View full-size slide

  36. ϖύϘݚڀॴ × ۝भେֶ ৘ใج൫ݚڀ։ൃηϯλʔ
    ίϯςφܕԾ૝Խٕज़ʹΑΔ
    ߃ৗੑΛ࣋ͭΫϥ΢υϗεςΟϯάج൫ͱ
    Ԡ༻ʹؔ͢Δڞಉݚڀ։ൃ

    View full-size slide

  37. ݝ΍ࢢͱͷऔΓ૊Έ

    View full-size slide

  38. ٕज़తͳ؍఺͔Β਺೥ޙʹ׆͖Δ
    ࣄۀͷߏ૝ͱશମઃܭ

    View full-size slide

  39. ʢϚωʔδυΫϥ΢υʣ

    View full-size slide

  40. ϓϩμΫτͷࠩผԽʹඞཁͳίΞٕज़ͷ
    ݚڀ։ൃ

    View full-size slide

  41. ՊֶతΞϓϩʔνʹΑΔΤϯδχΞϦϯά

    View full-size slide

  42. ϖύϘͰ࠷ߴͷϓϩμΫτΛ૑ΔͨΊ

    View full-size slide

  43. • ւࢁ઒ͱඒຯ͍͠͝͸Μʹғ·Εͳ͕Βͬ͘͡Γݚڀ։ൃ
    • ओʹࡋྔ࿑ಇɾϦϞʔτϫʔΫɾ࣌ؒ͸ࣗ༝
    • ձࣾͷٕज़త՝୊ʹج͍ͯҰൠԽͨ͠ख๏ΛఏҊɾධՁ
    • ੵۃతʹ࿦จࣥචɾࠪಡ΍ݚڀձࢀՃɾӡӦ
    • ͦͷଞ࢈ֶ׭ͱ࿈ܞͯ͠ϓϩδΣΫτఏҊ΍ڞಉݚڀͳͲ
    • ݚڀ։ൃΑͬͯࣄۀΛࠩผԽ͢Δٕज़ΛੜΈग़͠όʔϯͱͨ͠αʔϏε΁
    49
    ݚڀ։ൃελΠϧ

    View full-size slide

  44. 1. ͳΊΒ͔ͳγεςϜ
    2. WebαʔϏεج൫ٕज़ͷݚڀͱ͸
    3. ৗ࣌HTTPSͷ࣌୅ͷେن໛ূ໌ॻ؅ཧͷݚڀ
    4. ·ͱΊ
    50
    ຊষͷྲྀΕ

    View full-size slide

  45. 1.
    ͳΊΒ͔ͳγεςϜ

    View full-size slide

  46. • ίϯϐϡʔλ΍Πϯλʔωοτʹؔ͢Δٕज़͸ൃల͕ͨ͠…
    • ࠓ΋೔ৗతʹ৮ΕΔγεςϜ͸༷ʑͳোนʹຬͪᷓΕ͍ͯΔ
    • োน(ΰπΰπ)ͷऔΓআ͔ΕͨະདྷͷγεςϜΛ࣮ݱ͍ͨ͠
    • ͳΊΒ͔ͳγεςϜͱ͍͏Ϗδϣϯ΁
    52
    ίϯϐϡʔλͷൃలͱোน

    View full-size slide

  47. 1. γεςϜʹͱͬͯͷϢʔβ΍ɺγεςϜΛߏ੒͢Δαʔό౳ͷཁૉ͕ɺͲ
    ͷΑ͏ͳΧςΰϦʹଐ͢Δ͔ɺ͍͔ͳΔಛ௃Λ͔࣋ͭΛɺਫ਼៛ʹೝࣝ͢Δ
    2. ͦͷࡍɺϢʔβ΍γεςϜ؅ཧऀͱ͍ͬͨਓؒʹ࿑ۤΛڧ͍ΔΑ͏ͳ໌ࣔ
    తͳૢ࡞Λ՝͞ͳ͍
    3. 1.͓Αͼ2.ͰಘͨΑΓਫ਼៛ͳΧςΰϦ΍ݸผͷಛ௃ɺ͋Δ͍͸ͦΕΒͷؒ
    ͷؔ܎ੑʹج͖ͮɺͦͷ࣌ʑͷঢ়گʹԠͯ͡࠷దͳαʔϏεΛఏڙ͢Δ
    ͳΊΒ͔ͳγεςϜΛ࣮ݱ͢ΔWebαʔϏεج൫ٕज़ͷݚڀ
    53
    ͳΊΒ͔ͳγεςϜ͸ҎԼͷཁ݅Λຬͨ͢

    View full-size slide

  48. 2.
    WebαʔϏεج൫ٕज़ͷݚڀͱ͸

    View full-size slide

  49. • ਓؒͷϓϩμΫτ΁ͷൃ૝Λࢧ͑ΒΕΔج൫͕ඞཁ
    • ͜Ε·Ͱ͸֤छྖҬΛਓखͰΧόʔ͢Δ͜ͱ͕ଟ͔ͬͨ
    • ੑೳɾηΩϡϦςΟɾϦιʔε؅ཧɾӡ༻ٕज़ͳͲ
    • ج൫ΛػցͰࢧ͑ࣗಈԽ͠αʔϏεͷݶքΛ௒͑Δج൫ઃܭɾࢥ૝ͷݕ౼
    • ਓؒͷൃ૝ͷݶքͱج൫ͷݶքͱͷউෛͷੈքͱ͍͑Δ
    55
    WebαʔϏεج൫ٕज़ͷݶք͸αʔϏεͷݶք

    View full-size slide

  50. ਓؒͷൃ૝ vs ج൫ٕज़(ػց)ͱࢲͷݚڀ
    56
    ج൫ٕज़ ػց

    ϓϩμΫτ ਓؒͷൃ૝

    ਓͷମྗɾਫ਼ਆͷݶք
    ਓͷମྗɾਫ਼ਆͷݶք
    ਓྗͰࢧ͑ଓ͚Δ
    ਓྗͰ޿͛ଓ͚Δ
    ਓྗͰࢧ͑ଓ͚Δ
    ϓϩμΫτͷݶքͷ෯
    ج൫ٕज़ ػց

    ϓϩμΫτ ਓؒͷൃ૝

    ػցͰࢧ͑ଓ͚Δ
    ϓϩμΫτͷݶքͷ෯
    • ॎ࣠͸ϓϩμΫτ։ൃɾӡ༻ͷίετͱ΋ݴ͑Δ
    • ج൫ٕज़ͷݶքΛ௒͑Δ΂͘ਓͰΧόʔ͍ͯ͠Δ
    • ॎ࣠ͷίετΛ୹͘ɺԣ࣠ͷݶքͷ෯Λ޿͛Δͨ
    Ίͷݚڀ։ൃΛߦ͍ͬͯΔ
    দຊͷݚڀ

    View full-size slide

  51. • WebαʔϏεར༻ऀͷϢʔβʔମײ(User Sensation)ͷվળ
    • WebαʔϏεར༻ऀͷແҙࣝԼʹ͓͚Δշదͳײ֮ͷఏڙ
    • WebαʔϏεఏڙଆͷٕज़ऀମײ(Engineer Sensation)ͷվળ
    • ౰ͨΓલʹγεςϜͷ҆ఆੑΛอͪɺਓͷڧ੍հೖΛ௿ݮ
    • ݚڀͱͯ͠ͷҰൠԽͱࣄۀ΁ద༻͢ΔͨΊͷ࣮૷͓ΑͼಋೖޮՌͷ࣮ূ
    • ϓϩμΫτʹ͖ͪΜͱͭͳ͛ͯ࠷ߴͷϓϩμΫτΛ૑Δ
    57
    ࢲͷݚڀςʔϚ

    View full-size slide

  52. Πϯλʔωοτར༻ऀͷʮମײʯΛ
    ޲্͍ͤͨ͞

    View full-size slide

  53. ʮٕज़Λ࡞Γ্͛Δٕज़ʯ
    ͔ΒͷΞϓϩʔν

    View full-size slide

  54. ຊষͰ͸࠷ۙऔΓ૊ΜͰ͍ͨݚڀΛ঺հ
    • দຊ ྄հ, Ԭ෦ णஉ, mod_mruby: εΫϦϓτݴޠͰߴ଎͔ͭলϝϞϦʹ֦ுՄೳͳWebαʔόͷػ
    ೳ֦ுࢧԉػߏ, ৘ใॲཧֶձ࿦จࢽɼVol.55, No.11, pp.2451-2460, Nov 2014.
    • দຊ ྄հ, ฏݪ ਖ਼༟, ࡾ୐ ༔հ, ྗ෢ ݈࣍, ܀ྛ ݈ଠ࿠, ߴूੵϚϧνςφϯτWebαʔόͷେن໛ূ
    ໌ॻ؅ཧͱ࣮ӡ༻্ͷධՁ, ৘ใॲཧֶձݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-39,
    Vol.14, pp.1-8, 2017೥9݄.

    View full-size slide

  55. 3.
    ৗ࣌HTTPSͷ࣌୅ͷূ໌ॻ؅ཧͷݚڀ

    View full-size slide

  56. • υϝΠϯ΍ϗετΛେྔʹ࣋ͭαʔϏε͸ରԠࠔ೉
    • ݱࡏͷαʔόιϑτ΢ΣΞ͸େྔͷূ໌ॻͷѻ͍ʹෆ޲͖Ͱ͋Δ
    • ͜ͷ··Ͱ͸EC΍ϗεςΟϯάͷHTTPSಋೖ͕ۃΊͯࠔ೉
    • େྔͷূ໌ॻʹରԠͨ͠ΞʔΩςΫνϟΛݚڀऀͷΞϓϩʔνͰઃܭ
    • ಉ࣌ʹಋೖͱϝϯςφϯε͕ฏқͳιϑτ΢ΣΞΛΤϯδχΞͱ࣮ͯ͠૷
    62
    ৗ࣌HTTPSԽʹରԠ͍ͯ͘͠ඞཁ༗Γ

    View full-size slide

  57. • αʔόϓϩηεىಈ࣌ʹશͯͷূ໌ॻΛಡΈࠐΉ
    • େྔͷূ໌ॻΛಡΈࠐΉ৔߹ىಈ͕࣌ؒ஗͘ઃఆ൓ө࣌ͷӡ༻͕ࠔ೉
    • ৽͍͠ϗετͱূ໌ॻ௥Ճ࣌ʹ͸ϓϩηε࠶ىಈ͕ඞཁ
    • શͯͷূ໌ॻͷ਺͚ͩαʔόϓϩηεͷϝϞϦ࢖༻ྔ͕ଟ͍
    63
    ैདྷख๏ͷ՝୊

    View full-size slide

  58. • αʔόϓϩηεىಈ࣌ʹূ໌ॻ͸ಡΈࠐ·ͳ͍
    • αʔόϓϩηεͷ࠶ىಈ/࠶ಡΈࠐΈ࣌ؒΛߴ଎Խ
    • TLSϋϯυγΣΠΫ࣌ʹඞཁͳূ໌ॻͱઃఆΛಈతʹಡΈࠐΈ
    • ߴ଎ͳϓϩηε࠶ಡΈࠐΈʹΑΔϝϞϦղ์΋Մೳ
    • ূ໌ॻ΍ϗετͷ৽ن௥Ճઃఆʹ࠶ىಈ͕ෆཁ
    64
    ఏҊख๏

    View full-size slide

  59. 65
    'JMF,74
    IUUQE

    QSPDFTT
    $MJFOU
    4/*ʹΑͬͯTFSWFSOBNF͕FYBNQMFKQͷ
    υϝΠϯʹର͢Δ5-4ϋϯυγΣΠΫ͕։࢝
    5-4ϋϯυγΣΠΫ࣌ʹυϝΠϯFYBNQMFKQʹඥͮ͘
    ূ໌ॻͱൿີ伴ΛϑΝΠϧ΍,FZ7BMVF4UPSF ,74

    ͔ΒಈతʹಡΈࠐΜͰ͔ΒΫϥΠΞϯτͱॲཧܧଓ
    5-4ηογϣϯ ূ໌ॻಡΈࠐΈ

    View full-size slide

  60. 66
    'JMF,74
    IUUQE

    QSPDFTT
    $MJFOU
    0QFO44-όʔδϣϯҎ߱
    44-@$59@TFU@DFSU@DC
    ͱ͍͏5-4ϋϯυγΣΠΫ࣌
    ʹ೚ҙͷؔ਺ΛίʔϧόοΫ͢Δػೳ͕௥Ճ
    ίʔϧόοΫؔ਺ͷதͰυϝΠϯͱඥͮ͘αʔόূ໌ॻ
    ͱൿີ伴ΛಡΈࠐΈޙϋϯυγΣΠΫΛܧଓͯ͠ॲཧ
    5-4ηογϣϯ ূ໌ॻಡΈࠐΈ

    View full-size slide

  61. ࣮૷ʹ͸ngx_mrubyΛ׆༻

    View full-size slide

  62. • ࢲͷ୅දతϓϩμΫτͷͻͱͭ
    • Webαʔόιϑτ΢ΣΞnginxΛRubyͰ֦ுͰ͖Δϛυϧ΢ΣΞ
    • 2015೥4݄ͷWebϑϨʔϜϫʔΫੈքϥϯΩϯάͰσϏϡʔ
    • JSONγϦΞϥΠζ෦໳ͷશମ93ϑϨʔϜϫʔΫͷதͰੈք9Ґ
    • ্Ґ͸C΍C++ɺJava͹͔ΓͷதͰRuby!
    • PlainςΩετ෦໳ͷRuby෦໳Ͱ͸2ҐΑΓ130ഒߴ଎Ͱѹ౗త1Ґ
    68
    ngx_mruby

    View full-size slide

  63. • ngx_mruby※1ʹTLSϋϯυγΣΠΫͷϑοΫઃఆΛ࣮૷
    • TLSϋϯυγΣΠΫ࣌ʹϑοΫ͞ΕͨRubyͷόΠτίʔυΛ࣮ߦ
    • RubyϝιουͱOpenSSLͷίʔϧόοΫΛbinding
    • KVS/File͔Βূ໌ॻ΍ൿີ伴ΛRubyܦ༝ͰಡΈࠐΈ
    • ಡΈࠐΈઌ͸RubyͰॻ͚ΔൣғͰͳΜͰ΋ྑ͍
    73
    ࣮૷
    ˞দຊ྄հ Ԭ෦णஉ NPE@NSVCZεΫϦϓτݴޠͰߴ଎͔ͭলϝϞϦʹ֦ுՄೳͳ8FCαʔόͷ
    ػೳ֦ுࢧԉػߏ ৘ใॲཧֶձ࿦จࢽɼ7PM /P QQ /PW

    View full-size slide

  64. 74
    ϦΫΤετ͞ΕͨυϝΠϯ͔Βಈతʹূ໌ॻΛಡΈସ͑Δ͜ͱʹΑ
    ΓόοΫΤϯυ΁ͷϓϩΩγઃఆ΋ؚΊ୯Ұͷઃఆʹू໿Մೳ
    ϑΝΠϧϕʔεͷಈతূ໌ॻಡΈࠐΈྫ
    3VCZͰϓϩάϥϚϒϧʹهड़Մೳ

    View full-size slide

  65. 75
    ϦΫΤετ͞ΕͨυϝΠϯ͔Βಈతʹূ໌ॻΛ
    ಡΈସ͑Δ͜ͱʹΑΓ୯Ұͷઃఆʹू໿Մೳ
    ,74ϕʔεͷಈతূ໌ॻಡΈࠐΈྫ

    View full-size slide

  66. • 10ສϗετ෼ͷ4096bitsͷ伴௕ͷൿີ伴ͱαʔόূ໌ॻΛnginxόʔδϣϯ
    1.11.13ͰಡΈࠐΈ
    • ैདྷख๏͸࠶ಡΈࠐΈॲཧͰ΋αʔϏεఀࢭʹܨ͕Δ
    76
    ैདྷख๏ͱఏҊख๏ͷىಈ࣌ؒͷ࣮ݧ
    ߲໨ ैདྷख๏ ఏҊख๏
    ϓϩηεىಈͷ࣮࣌ؒ ඵ
    ϓϩηεىಈͷϢʔβ$16࢖༻࣌ؒ ඵ
    ϓϩηεىಈͷγεςϜ$16࢖༻࣌ؒ ඵ

    View full-size slide

  67. 10ສϗετऩ༰࣌ͷ੩తϑΝΠϧͷੑೳൺֱ
    77
    ਺ेCZUFTͷܰྔͳ)5.-ϑΝΠϧ΁ͷϦΫΤετ
    3FRVFTUTFD





    ಉ࣌઀ଓ਺

    ैདྷख๏ ఏҊख๏

    View full-size slide

  68. ຊ൪؀ڥͰ࣮ӡ༻্ͷධՁ

    View full-size slide

  69. • ैདྷख๏ͱఏҊख๏ͷ1ϲ݄ؒͷϦιʔε࢖༻ྔΛൺֱ
    • ैདྷख๏͸2017೥3݄͔Β4݄ɺఏҊख๏͸7݄͔Β8݄ͷ1ϲ݄ؒ
    • ෳ਺୆ͷಉҰϋʔυ΢ΣΞ্ʹ4݄຤ΛػʹϦϓϨʔεΛ࣮ࢪ
    • ैདྷख๏͸Apache2.4ɺఏҊख๏͸nginx1.11Ͱ࣮૷
    • ূ໌ॻ਺ͷ૿Ճ΍ϦΫΤετॲཧ਺ͷมԽͱൺֱ͠ͳ͕Βߟ࡯
    79
    ແྉূ໌ॻαʔϏεΛػʹ࣮ӡ༻্ͷධՁ

    View full-size slide

  70. ैདྷख๏ͰऔΓ૊ΜͰ͍ͨΒ
    ͲΕ͙Β͍େม͔ͩͬͨΛ͖ͪΜͱධՁ

    View full-size slide

  71. ͏·͍͍ͬͯ͘Δ࣌Ͱ΋
    ͦͷ༗ޮੑΛఆྔతʹ໌Β͔ʹ͢Δ

    View full-size slide

  72. ՊֶతΞϓϩʔν

    View full-size slide

  73. 1ϲ݄ؒͷূ໌ॻ਺ͷભҠ
    83
    0
    5000
    10000
    15000
    20000
    25000
    1 6 11 16 21 26 31
    The number of cer-ficates
    day
    The number of cer-ficate in a month
    dynamic load preload
    Θ͔Γʹ͍͕͘Ұϲ݄Ͱ͔Β΁ͱ
    ূ໌ॻఔ౓૿͍͑ͯΔ
    ূ໌ॻ਺͸ϦϓϨʔεલͷഒ͔Βഒ

    View full-size slide

  74. 1ϲ݄ؒͷ1αʔό΁ͷඵؒHTTPϦΫΤετ਺
    84
    0
    200
    400
    600
    800
    1000
    1200
    1400
    1600
    1 6 11 16 21 26 31
    Requests/sec
    day
    Request/sec in a mouth
    dynamic load preload
    ϦϓϨʔεޙʹ-#ͷׂΓ౰ͯൺ཰͕มΘͬͨͨΊ
    )551ʴ)5514ϦΫΤετॲཧ਺͸ഒ͔Βഒ

    View full-size slide

  75. 1ϲ݄ؒͷCPU࢖༻཰ͷભҠ
    85
    0.00
    1.00
    2.00
    3.00
    4.00
    5.00
    6.00
    7.00
    8.00
    9.00
    1 6 11 16 21 26 31
    CPU usage(%)
    day
    CPU usage in a mouth
    dynamic load preload
    ূ໌ॻ਺͕͔Βഒʹ΋ؔΘΒͣ$16࢖༻཰͸ඍ͕ࠩͩ௿ݮ܏޲

    View full-size slide

  76. 1ϲ݄ؒͷϝϞϦ࢖༻཰ͷભҠ
    86
    0
    1000
    2000
    3000
    4000
    5000
    6000
    7000
    8000
    1 6 11 16 21 26 31
    Memory usage(MBytes)
    day
    Memory usage in a mouth
    dycamic load preload
    ূ໌ॻ਺͸͔Βഒʹ΋ؔΘΒͣϝϞϦ࢖༻཰͸௿ݮ
    ఏҊख๏͸ສҎ্૿Ճ͍ͯ͠Δূ໌ॻ਺ʹ΋΄΅ґଘ͍ͯ͠ͳ͍
    ূ໌ॻ਺૿Ճʹ൐͍ϝϞϦ࢖༻ྔ͸αʔόશମͰ(#ZUFTఔ౓૿Ճ

    View full-size slide

  77. • ैདྷख๏͸20ສূ໌ॻΛॲཧ͢Δͷʹ෺ཧϝϞϦ͕500Gbytesඞཁ
    • ܭࢉ্32GBytesͷαʔό͕15୆Ҏ্ඞཁ
    • ఏҊख๏͸20ສূ໌ॻͰ΋1୆ͰॲཧՄೳͷݟࠐΈ
    • 1ສূ໌ॻ૿Ճͯ͠΋ϝϞϦ࢖༻ྔ͸3GBytesͰ҆ఆ
    • ఏҊख๏ʹΑΓඞཁͳϋʔυ΢ΣΞίετΛେ෯ʹ௿ݮՄೳ
    87
    ϝϞϦ࢖༻ྔ͔Βඞཁͳϋʔυ΢ΣΞΛݟੵ΋Γ

    View full-size slide

  78. ஌Β͵ؒʹϋʔυ΢ΣΞ΍ӡ༻ίετ͕
    ௿ݮ͞Εٕͯज़ऀʮମײʯ͕޲্

    View full-size slide

  79. ݚڀऀͱͯ͠ΞʔΩςΫνϟΛઃܭ͠
    ΤϯδχΞͱͯ͠ࣄۀʹదͨ͠
    ιϑτ΢ΣΞΛ࣮૷͢Δ

    View full-size slide

  80. 5.
    ຊষͷ·ͱΊ

    View full-size slide

  81. ਓؒͷൃ૝ vs ج൫ٕज़(ػց)ͱࢲͷݚڀ
    91
    ج൫ٕज़ ػց

    ϓϩμΫτ ਓؒͷൃ૝

    ਓͷମྗɾਫ਼ਆͷݶք
    ਓͷମྗɾਫ਼ਆͷݶք
    ਓྗͰࢧ͑ଓ͚Δ
    ਓྗͰ޿͛ଓ͚Δ
    ਓྗͰࢧ͑ଓ͚Δ
    ϓϩμΫτͷݶքͷ෯
    ج൫ٕज़ ػց

    ϓϩμΫτ ਓؒͷൃ૝

    ػցͰࢧ͑ଓ͚Δ
    ϓϩμΫτͷݶքͷ෯
    • ॎ࣠͸ϓϩμΫτ։ൃɾӡ༻ͷίετͱ΋ݴ͑Δ
    • ج൫ٕज़ͷݶքΛ௒͑Δ΂͘ਓͰΧόʔ͍ͯ͠Δ
    • ॎ࣠ͷίετΛ୹͘ɺԣ࣠ͷݶքͷ෯Λ޿͛Δͨ
    Ίͷݚڀ։ൃΛߦ͍ͬͯΔ
    দຊͷݚڀ

    View full-size slide

  82. ਓؒͷൃ૝ vs ج൫ٕज़(ػց)ͱࢲͷݚڀ
    92
    ج൫ٕज़ ػց

    ϓϩμΫτ ਓؒͷൃ૝

    ਓͷମྗɾਫ਼ਆͷݶք
    ਓͷମྗɾਫ਼ਆͷݶք
    ਓྗͰࢧ͑ଓ͚Δ
    ਓྗͰ޿͛ଓ͚Δ
    ਓྗͰࢧ͑ଓ͚Δ
    ϓϩμΫτͷݶքͷ෯
    ج൫ٕज़ ػց

    ϓϩμΫτ ਓؒͷൃ૝

    ػցͰࢧ͑ଓ͚Δ
    ϓϩμΫτͷݶքͷ෯
    • ॎ࣠͸ϓϩμΫτ։ൃɾӡ༻ͷίετͱ΋ݴ͑Δ
    • ج൫ٕज़ͷݶքΛ௒͑Δ΂͘ਓͰΧόʔ͍ͯ͠Δ
    • ॎ࣠ͷίετΛ୹͘ɺԣ࣠ͷݶքͷ෯Λ޿͛Δͨ
    Ίͷݚڀ։ൃΛߦ͍ͬͯΔ
    দຊͷݚڀ
    ࣮ӡ༻্ͷධՁΛେ੾ʹ͠
    ͔ͦ͜Β৽نੑɾ༗ޮੑɾ৴པੑΛࣔ͢

    View full-size slide

  83. ͦΕʹΑͬͯߋͳΔվળΛߦ͏

    View full-size slide

  84. ݚڀऀͱͯ͠ͷҰൠԽͱ
    ΤϯδχΞͱͯ͠ͷ࣮ޮԽΛܨ͙

    View full-size slide

  85. ΤϯδχΞͱݚڀऀ͕ަࠩ͢Δੈք

    View full-size slide

  86. ͓ޓ͍ʹྑ͍จԽ΍औΓ૊Έʹ
    ڧؔ͘৺Λ࣋ͬͯऔΓೖΕΔ͜ͱ͕େࣄ

    View full-size slide

  87. 3. ݚڀऀͱΤϯδχΞ͕ަΘΔͦͷઌ΁

    View full-size slide

  88. ࠓͰͦ͜ݚڀऀͱΤϯδχΞ͕ަΘΔ
    ͦͷઌ΁ݸਓͱͯ͠͸าΈग़͍ͯ͠Δ

    View full-size slide

  89. ࠓʹࢸΔ·Ͱ͸ܾͯ͠ॱௐͰ͸ͳ͔ͬͨ

    View full-size slide

  90. 10೥Ҏ্લ

    View full-size slide

  91. ຊؾग़͍ͯ͠ͳ͍໰୊

    View full-size slide

  92. • தֶߴߍͰษڧͰ͖ͳ͍ͷ͸ຊؾग़͍ͯ͠ͳ͍͔Β
    • εϙʔπͰෛ͚ͨͷ͸࿅शΛຊؾग़ͯ͠΍͍ͬͯͳ͍͔Β
    • ਅ݋ʹ΍Ε͹ɺฏ౳ͷઃඋ͕͋Ε͹Ͱ͖ΔɾউͯΔ
    • ࣗ෼ΛͲ͏ʹ͔ਖ਼౰Խͯ͠৺Λ҆ఆͤ͞Δ
    • ແବͳ͜ͱ͸΍Βͳ͍ɺࣗ෼͸ޮ཰ԽͰੜ͖͍ͯΔ
    • ͦΜͳਓੜ͕20೥ఔଓ͍͍ͯͨ……
    103
    ຊؾग़͍ͯ͠ͳ͍໰୊͕ܧଓ

    View full-size slide

  93. ͓͝Γͱ࠳ં

    View full-size slide

  94. • CݴޠͰίϯύΠϥ࣮૷͢Δେֶ3ճੜͷ৘ใֶ࣮ݧ
    • ୭ΑΓ΋ૣ͘࡞ͬͯճΓͷखॿ͚Λ͍ͯͨ͠
    • ࠷ऴతʹॳظʹ࡞ͬͨશ͘ಈ͔ͳ͍ίʔυΛޡͬͯఏग़
    • ੒੷͕ग़Δ·Ͱؒҧ͍ʹؾ͔ͮͣ·ΘΓͰ1ਓ͚ͩཹ೥͕ܾఆ
    • ຊؾग़ͯ͠ͳ͍………Ͱ͸৺͕࣋ͨͳ͔ͬͨ
    105
    େֶ࣌୅ͷಘҙͳतۀ

    View full-size slide

  95. ϒϨΠΫεϧʔ

    View full-size slide

  96. • શྗΛਚ͘͢ࣄΛڪΕͳ͍ɾࣗ෼Λਖ਼౰Խ͠ͳ͍
    • શྗΛਚͯ͘͠μϝͦ͏ͩͬͨΒͱʹ͔͘౒ྗ͢Δ
    • ࣗΒֶ໰ʹڵຯΛ࣋ͪͱʹ͔͘ܧଓతʹֶͿɾຊΛಡΉ
    • ແବ͔΋͠Εͳ͍͚ͲඞཁʹͳΔ͔΋͠Εͳ͍ͱֶͿ͜ͱʹ౤ࢿ
    • ֶΜͩ͜ͱͷڞ௨఺Λ୳ͬͨΓ࢖͍৔ॴΛ୳͢౒ྗΛ࢝͠Ίͨ
    • ϨϯλϧαʔόձࣾͰϑϧλΠϜͰΞϧόΠτ
    • ઌߦͯ͠اۀͰݱ৔ͷٕज़Λֶͼ͔ͨͬͨ
    107
    Ͳ͏ͨ͠Βྑ͍ͷ͔

    View full-size slide

  97. ͜Μͳ౰ͨΓલͷ͜ͱʹؾ͕͍ͭͨ
    22ࡀͷՆ

    View full-size slide

  98. ֶͿ͜ͱָ͕͘͠ͳͬͨ

    View full-size slide

  99. ຊষͰ͸ݚڀऀͱΤϯδχΞ͕ަΘΔͦͷ
    ઌ΁ਐΉதͰΑ͔ͬͨͱࢥ͏4ͭͷڭ܇Λ
    ΤϐιʔυΛަ͑ͯ঺հ͠·͢

    View full-size slide

  100. ͦͯ͠ઌ΁ਐΉਓ͕૿͑Δͱྑ͍ͳͱ
    ئ͓ͬͯΓ·͢

    View full-size slide

  101. 1.
    2008೥ ৽ଔೖࣾ

    View full-size slide

  102. ઌΛݟ͍ͯͨ

    View full-size slide

  103. • ݱ৔ͷ໰୊΍՝୊Λ஌Βͣʹݚڀ͢Δා͞
    • ୔ࢁͷ༏लͳٕज़ऀʢࣗ෼ͷ஌Βͳ͍͜ͱΛ஌͍ͬͯΔʣͷଘࡏ
    • ৘ใΛ֎ʹग़ͯ͠ͳ͍͚ͩͰاۀ͍ͬͯ͢͝ͷͰ͸ͳ͍͔
    • ೲಘͨ͠Βେֶʹ໭Ζ͏ͱܾҙ
    • म࢜ʹ͸ߦֶ͔ͣ෦ଔͰब৬ͨ͠
    115
    3೥ޙʹେֶʹ໭ͬͯݚڀ͢Δ

    View full-size slide

  104. ࣾһͱͷ૬ରൺֱͰ೰·ͳ͔ͬͨ

    View full-size slide

  105. • ͱʹ͔͘ݱ৔ͷٕज़ΛֶͿ
    • ੈͷதʹ͸͍͢͝ΤϯδχΞ͕୔ࢁ͍Δ͸ͣͱയવͱࢥ͍ͬͯͨ
    • ݚڀۀքʹ΋͍͢͝ݚڀऀ͕୔ࢁ͍Δͱയવͱࢥ͍ͬͯͨ
    • ࣗ෼ͷաڈͷࣦഊΛऔΓฦ͢΂͘ͱʹ͔͘ߴΈ΁
    • ࣾ಺Ͱͷ૬ରൺֱʹ೰ΜͰ͍ΔՋ͸ແ͔ͬͨ
    117
    ͢ͰʹΩϟϦΞϓϥϯ͕͋ͬͨ

    View full-size slide

  106. ৴པͰ͖Δࢣঊͷଘࡏ

    View full-size slide

  107. • ଞऀͱͷൺֱΛྫྷ੩ʹධՁͯ͘͠ΕΔ
    • ৴པͰ͖Δࢣঊɾಉ྅͔Βͷݫ͘͠΋Թ͔͍ࢦఠ
    • չ͍͚͠Ͳࣗ෼ͷؒҧ͍Λड͚͍ΕΒΕΔ
    • ͱʹ͔͘·ΘΓʹܙ·Ε͍ͯͨ
    • ձָ͍ࣾ͠ͷͰࣙΊͨ͘ͳ͍……ͣͬͱ͍͍ͨ
    119
    ୈࡾऀͱͯ͠ͷࢹ఺

    View full-size slide

  108. ࣾ֎ʹ͍Δ༏ΕͨΤϯδχΞɾݚڀऀͷ
    ଘࡏ

    View full-size slide

  109. ݕࡧͨ͠ϒϩάͷ৘ใ͔Β໰୊Λ
    ղܾ͍ͯ͠Δҧ࿨ײ

    View full-size slide

  110. ୭͔͕ࣗ෼Ͱߟ͑ͯղܾ͠
    ৘ใެ։͍ͯ͠Δ

    View full-size slide

  111. • ੈքதʹ͍Δ༗໊ͳٕज़ऀɾݚڀऀ͸ԕ͍ଘࡏ
    • Կ͕͍͔͢͝΋૝૾͕͔͍ͭͳ͍͕ࣗ෼΋͍͔ͭ͸ͦ͏ͳΓ͍ͨ
    • ݚڀऀͱͯࣗ͠༝ʹΦʔϓϯ͔ͭઐ໳తͳݚڀΛ͍ͨ͠
    • ΋͏ޱ͚ͩʹ͸ͳΓͨ͘ͳ͍
    • ༉அͱ༏ӽײ͔Βੜͨ͡աڈͷࣦഊΛ܁Γฦ͞ͳ͍
    123
    ͍͢͝ΤϯδχΞ΍ݚڀऀ

    View full-size slide

  112. ࣗ෼ͷ޷͖ͳٕज़Λ৳͹͍ͨ͠

    View full-size slide

  113. • OSɾϛυϧ΢ΣΞͷӡ༻ɾӡ༻ઃܭɾ։ൃ
    • ϓϩηεվળɾۀ຿ޮ཰ͷվળ
    • ϓϩδΣΫτ؅ཧɾεέδϡʔϧ؅ཧ
    • ٕज़ڭҭɾ৽ਓݚम
    • ಛʹOSɾϛυϧ΢ΣΞͱӡ༻ٕज़ͷ෼໺͕޷͖
    125
    ޷͖ͳྖҬ

    View full-size slide

  114. ௨ৗɺࣄۀߩݙ͕ඞཁͳاۀͰ͸
    ͳ͔ͳ͔ࣗ෼ݸਓͷ޷͖ͳݚڀ͕Ͱ͖ͳ͍

    View full-size slide

  115. Ͱ΋๻͸޷͖ͳઐ໳෼໺ͷ
    ൚༻త͔ͭߴ౓ͳٕज़Λਂֶ͘ͼ͍ͨ

    View full-size slide

  116. ͦͷͨΊʹ͸ࣄۀͱ͸཭Εͨ৔ॴͰ
    ॆ෼ʹ࣌ؒΛॻ͚ͯݚڀ͢Δඞཁ͕͋Δ

    View full-size slide

  117. ࢓ࣄͱ͍͏࿮૊Έͷதʹ͍ͯ΋
    ޷͖ͳ͜ͱʹରͯ͠ૉ௚ʹͳͬͯΈΔ

    View full-size slide

  118. ڭ܇1
    ޷͖ͳ͜ͱʹૉ௚ʹͳΔ͜ͱ

    View full-size slide

  119. 2.
    2011೥ ത࢜՝ఔ΁௅ઓ

    View full-size slide

  120. • ڭतʹ͓ձ͍ͯ͠૬ஊ
    • म࢜͸޷͖ͳݚڀ͕ͳ͔ͳ͔Ͱ͖ͳ͍
    • ޷͖ͳݚڀΛ΍Γ͍ͨͳΒത࢜՝ఔ͔Β
    • ͋…๻͸ֶ෦ଔ
    134
    म͔࢜ΒೖΔ༧ఆͩͬͨ

    View full-size slide

  121. म࢜ଔ૬౰ͷ࣮ྗ

    View full-size slide

  122. • ࣾ֎΍ֶज़ํ໘΁ͷΞ΢τϓοτ͕ͳ͔ͬͨ
    • ͱʹ͔ࣾ͘಺Ͱͷ࣮੷Λ·ͱΊΔ
    • ಺༰͸ྑ͍Ͱ͠ΐ͏ͱݴͬͯ௖͘
    • Α͠ʂ
    136
    म࢜ଔ૬౰ͷ࣮੷͕ඞཁ

    View full-size slide

  123. • ത࢜՝ఔͷೖֶ৹ࠪΛड͚ΔͨΊͷम࢜૬౰ͷࢿ֨Λ৹ࠪ
    • ·ͱΊͨࢿྉ͸໿50ϖʔδ
    • ݚڀܦաใࠂॻ΋࡞੒
    • ॻྨબߟ͕߹֨ͨ͠Βޱ಄ࢼ໰
    137
    ത࢜՝ఔग़ئࢿ֨(म࢜૬౰ͷࢿ֨)৹ࠪॻ

    View full-size slide

  124. • ͋ͬ͞Γॻྨબߟམͪ
    • ڳ͕௧͍
    • Ͳ͏͠Α͏
    • Ӭԕʹ߹֨Ͱ͖ͳ͔ͬͨΒ……
    140
    طʹୀ৬Λ఻͑ͨޙ

    View full-size slide

  125. • લʹਐΜͰͷࣦഊ͸ྑ͍ࣦഊ
    • ߹֨͢Δ·Ͱ௅ઓ͠ଓ͚Ε͹Α͍
    • ߹֨͢Δ·Ͱษڧ͠ଓ͚Ε͹Α͍
    • ࣗ෼ʹ͸΍Γ਱͛Δ·Ͱ௅ઓ͢Δ֮ޛ͕͋Δ
    • ͍ͭͷ·ʹ͔ͪΐͬͱͨ͠ઈ๬ʹ͸׳Ε͍ͯͨ
    141
    Ͱ΋ཹ೥ͨ࣌͠΄ͲͰ͸ͳ͔ͬͨ

    View full-size slide

  126. ത࢜՝ఔग़ئࢿ֨৹ࠪͷ࠶௅ઓ

    View full-size slide

  127. • ಛڐग़ئͱࠪಡ෇͖࿦จԽɾର֎ൃද
    • ࣾ௕ʹ௚ஊ൑͢Δ
    • ৽͍͠ผͷݚڀͷ࿨ӳͷ࿦จԽɾࠃࡍձٞͰaccept
    • ΑΓৄࡉͳݚڀܭըΛࣥච
    • ൒೥ؒͰࠪಡ෇͖࿦จ1ຊɺࠃࡍձٞ࿦จ1ຊɺֶձൃද2ຊɺಛڐग़ئ1ຊ
    143
    ࣾ಺ͷ࣮੷ΛΑΓΦʔϓϯʹ

    View full-size slide

  128. ޱ಄ࢼ໰΋໔আ

    View full-size slide

  129. ത࢜՝ఔೖֶऀબൈࢼݧ

    View full-size slide

  130. ത࢜՝ఔΛ΍Γ͖ΔݟࠐΈ͕͋Δ͔

    View full-size slide

  131. • ത࢜՝ఔͰͷݚڀܭը
    • ࿦จ࣮੷΍ݚڀۀ੷·ͱΊ
    • খ࿦จͷචهࢼݧͱTOEIC
    • ത࢜՝ఔͰͷৄࡉͳݚڀܭըͷϓϨθϯ
    • ৘ใֶݚڀՊͷڭतɾ।ڭतɾߨࢣɾॿڭ૯੎໿50໊ͷલͰൃද
    • ౰࣌͸ਓੜͰ࠷΋ϓϨογϟʔΛײͨ͡Πϕϯτ
    150
    ͔͜͜Β͕ຊ൪

    View full-size slide

  132. 3೥ؒۈΊͨձࣾΛࣙΊͯ
    2012೥4݄ʹ28ࡀͰത࢜՝ఔೖֶ

    View full-size slide

  133. ڭ܇2
    ਐΈ͍ͨํ޲΁Ұา౿Έग़ͯ͠ΈΔ͜ͱ

    View full-size slide

  134. 3.
    2012೥ mrubyͱͷग़ձ͍

    View full-size slide

  135. େֶͰΠϯλʔωοτج൫ٕज़ʹؔ͢Δ
    ݚڀΛ͸͡Ί͍ͯͨ

    View full-size slide

  136. WebαʔόͷߴूੵϚϧνςφϯτ
    ΞʔΩςΫνϟʹؔ͢Δݚڀ

    View full-size slide

  137. ͦ͜Ͱͳͥmrubyͳͷ͔ʁ

    View full-size slide

  138. • mrubyͱ͸૊ࠐΈεΫϦϓτݴޠͷͻͱͭ
    • খ͞ͳ૊ࠐΈػثʹ૊ΈࠐΉ͜ͱ͕໨తͷͻͱͭ
    • ΞϓϦ૊ΈࠐΈͱ͍͏ํ޲ੑ͸౰࣌΄΅ͳ͔ͬͨ
    • ಛʹ౰࣌ͷݚڀͱ͸ؔ܎ͳ͔ͬͨ
    • Rubyͷ෕·ͭ΋ͱΏ͖ͻΖ͞Μͷ৽͍͠OSS
    161
    2012೥4݄ʹެ։

    View full-size slide

  139. ͳΜ͔͍͢͝

    View full-size slide

  140. ࣌ؒ΋͋ΔͷͰݚڀͷଉൈ͖ʹدΓಓ

    View full-size slide

  141. ͦ͏ͩ
    ݚڀର৅ͷWebαʔόʹ૊ΈࠐΊͳ͍͔ͳ

    View full-size slide

  142. • ୅දతͳWebαʔόʹ૊ΈࠐΉͱͲ͏ͳΔͷ͔ͳ
    • WebαʔόͷৼΔ෣͍Λ؆୯ʹ੍ޚͰ͖ͯศརͦ͏
    • ໘നͦ͏ͳͷͰͱΓ࣮͋͑ͣ૷ͯ͠ΈΑ͏
    • mod_perlʹͪͳΜͰmod_mrubyɾngx_mrubyͱ໊෇͚ͨ
    • ౰࣌28ࡀ
    166
    ͱΓ͋͑ͣ૊ΈࠐΜͰΈΑ͏

    View full-size slide

  143. ప໷Ͱ࣮૷ͯ͠mrubyެ։ͷ࣍ͷ೔ʹެ։

    View full-size slide

  144. • ͋ʂ·ͭ΋ͱΏ͖ͻΖ͞Μ͕πΠʔτͨ͠Γ঺հͨ͠Γͯ͘͠Εͨ
    • ໊લ͚ͩ஌͍ͬͯΔ༗໊ͳਓʑ͕໘നͦ͏ͱݴͬͯ͘Εͨ
    • ࣮૷ָ͕͔ͬͨ͠ͷͰͱΓ͋͑ͣͦΕΛଓ͚Δ
    • ໘ന͍ͷͰຖ೔໷஗͘·Ͱ࣮૷
    • සൟʹϒϩάΛॻ͍ͯϑΟʔυόοΫ΋Β࣮ͬͯ૷
    169
    mod_mruby͕ҙ֎ͱ஫໨͞Εͨ

    View full-size slide

  145. ࿦จͰॻ͍ͯΈ·ͤΜ͔ʁ

    View full-size slide

  146. • ͼͬ͘Γͨ͠
    • ָ͍͠ͷͰద౰ʹझຯͰ΍͍ͬͯͨ
    • Ͱ΋࣮੷ʹͳΔͷͳΒخ͍͠ͷͰྃঝ
    171
    ͍͖ͳΓࢦಋڭһͷڭत͔ΒTwitterͷDM

    View full-size slide

  147. ݚڀͱͯ͠࠶ఆٛ

    View full-size slide

  148. • ݚڀऀࢹ఺
    • ྑ͍ಓ۩Λ࢖͍ͬͯΔ͔Β༏Ε͍ͯΔͷ͔ʁ
    • ࣮૷Ҏલͷ؍఺Ͱ৽نੑɾ༗ޮੑΛݕ౼͢΂͖
    • ͋ͳͨͷݚڀͷීวతͳֶज़తߩݙͱ͸ʁ
    • ژ౎େֶ৘ใֶݚڀՊത࢜՝ఔͷதؒൃදͰ໰ΘΕΔ
    • ͱʹ͔͘࿦จͷαʔϕΠ΍ίϯϐϡʔλαΠΤϯεΛษڧͯࠩ͠Λ஌Δ
    173
    ํࣜͱͯ͠Կ͕༏Ε͍ͯΔͷ͔

    View full-size slide

  149. • ΤϯδχΞࢹ఺
    • ྑ͍ಓ۩Λ࠾༻͢Δ͜ͱͷϝϦοτ
    • ࢖͍खͷ࢖͍΍͢͞΍ར༻ऀͷଟ͞ɾଟ༷ੑ
    • ͍͔ʹݱ৔Ͱӡ༻ɾ࣮ફ͠΍͍࣮͢૷ʹམͱ͔͢
    • ܧଓతͳϝϯςφϯεͱͦͷऔΓ૊Έ΍͢͞
    • ͱʹ͔͘ίʔυΛॻ͍ͯ࢖͍΍͢͞΍ಋೖɾϝϯςφϯε͠΍͢͞Λ௥ٻ
    174
    ͱ͸͍࣮͑૷΋ॏཁ

    View full-size slide

  150. mrubyΛ࢖ͬͨߩݙ͕
    ΞΧσϛΞ΍اۀ͔ΒೝΊΒΕΔ

    View full-size slide

  151. • 2012೥ ୀ৬ͯ͠େֶӃ΁
    • 2013೥ IOTS2013 ༏ल࿦จ৆
    • 2014೥ ϑΫΦΧRubyେ৆ ༏ल৆
    • 2014೥ ୈ9ճ೔ຊOSS঑ྭ৆
    • 2014೥ ৘ใॲཧֶձ ࢁԼه೦ݚڀ৆
    • 2014೥ Ruby Prize ࠷ऴϊϛωʔτ
    • 2015೥ ϑΫΦΧRubyେ৆ اۀ৆
    • 2015೥ ژ౎େֶ૯௕৆ʢֶ໰ʣͷީิऀ
    176
    mruby΍ֶज़ݚڀΛ௨ͨ͡ධՁʢ௚ۙ5೥ؒʣ
    • 2016೥ ϑΫΦΧRubyେ৆ ঑ྭ৆
    • 2016೥ ৘ใॲཧֶձ IPSJ-ONE2016 ొஃ
    • 2016೥ ৘ใॲཧֶձ IOTݚڀձӡӦҕһब೚
    • 2017೥ ژ౎େֶത࢜ʢ৘ใֶʣत༩

    View full-size slide

  152. ϖύϘʹ΋ೖࣾͰ͖ͨ

    View full-size slide

  153. ϖύϘݚڀॴ΋࡞Δ͜ͱ͕Ͱ͖ͨ

    View full-size slide

  154. ژ౎େֶത࢜ʢ৘ใֶʣ΋औಘͰ͖ͨ

    View full-size slide

  155. دΓಓ͕ࣗ෼ͷಘҙ෼໺ʹ

    View full-size slide

  156. ڭ܇3
    ڵຯͷ͋Δ͜ͱ΁دΓಓͯ͠ΈΔ͜ͱ

    View full-size slide

  157. 4.
    2013೥ ֶज़ݚڀͱOSS։ൃ

    View full-size slide

  158. Φʔϓϯιʔειϑτ΢ΣΞʢOSSʣ
    ͱͯ͠։ൃ͢Δ͜ͱ

    View full-size slide

  159. • ιϑτ΢ΣΞΛ։ൃͯ͠ιʔείʔυΛެ։͢Δ
    • কདྷੑ͕͋Ε͹ະख़ͳঢ়ଶ͔ΒͰ΋ެ։͢Δ
    • ϑΟʔυόοΫΛ໯ͬͯΫΦϦςΟΛ্͍͛ͯ͘
    • ਐḿ΍ΞΠσΞɺ࣮૷΋Φʔϓϯʹͯ͠ΫΦϦςΟΛ্͛Δ
    • ࣗ෼ɾࣾ಺ͱଞਓɾࣾ֎ͱڞಉͯ͠։ൃӡ༻͕࣮ݱՄೳ
    186
    Webٕज़Ͱ͸Α͋͘Δ΍Γํ

    View full-size slide

  160. Φʔϓϯʹֶज़ݚڀ͢Δ͜ͱ

    View full-size slide

  161. • ࿦จެ։·ͰΦʔϓϯʹ͸Ͱ͖ͳ͍
    • ݚڀͷωλ΍ਐḿɺ࣮૷Λެ։͠ͳ͍
    • جຊతʹ͸࿦จʹ·ͱΊ͔ͯ͠Δ΂͖ձٞ΍ࡶࢽͰެ։
    188
    ࣮͸೉͍͠৔߹͕ଟ͍

    View full-size slide

  162. Ͱ΋๻͸OSS։ൃͷΑ͏ʹݚڀΛͨ͠

    View full-size slide

  163. • ݚڀ͸ͦ͏͍͏΍ΓํΛ͠ͳ͍Αʁ
    • ͦΜͳ͜ͱͯͨ͠Β࿦จʹ΋ݚڀʹ΋ͳΒͳ͍Αʁ
    • ࿦จԽͷલʹϒϩάʹॻ͘ͱ࿦จʹͳΒͳ͍͔΋Αʁ
    • ॏཁͳωλ΍ਐḿΛϒϩάʹॻ͘ͳΜͯԿΛߟ͍͑ͯΔͷ͔ʁ
    190
    ൷൑Λड͚ͨ

    View full-size slide

  164. ࣗ෼ࣗ਎ͷݚڀΛΦʔϓϯʹ͢Δͷ͔ͩΒ
    ؒҧͬͨ͜ͱ͸͍ͯ͠ͳ͍
    ΍Γ͍ͨΑ͏ʹ΍Δ

    View full-size slide

  165. ͱ͸͍͑ෆ҆ͩͬͨ

    View full-size slide

  166. ۮવ࿓ԼͰग़ձͬͨࢦಋڭһͷڭतʹ
    ೰ΈΛ૬ஊͯ͠Έͨ

    View full-size slide

  167. ڭतͷݴ༿

    View full-size slide

  168. ʮੲͷ΍ΓํʹनΘΕͳͯ͘ྑ͍Ͱ͢ɻ
    দຊ͞Μ͕ྑ͍ͱࢥ͏΍ΓํͰ
    ޷͖ͳΑ͏ʹ΍ͬͯԼ͍͞ɻ
    ࠓͷ΍Γํɺྑ͍ͱࢥ͍·͢Αɻʯ

    View full-size slide

  169. • ໎͍͕ফ͑ͨ
    • Φʔϓϯʹݚڀɾ։ൃ͕Ͱ͖Δ
    • ࣗ෼ͷ΍Γ͍ͨ͜ͱ͕Ͱ͖Δ…..
    196
    ٹΘΕͨ

    View full-size slide

  170. ϑΟʔυόοΫͷதͰ੒௕

    View full-size slide

  171. • ༗໊ͳٕज़ऀ͕৘ใ֦ࢄΛͯ͘͠Εͨ
    • தʹ͸ωΨςΟϒͳίϝϯτ΋୔ࢁ͋ͬͨ
    • ͦΕΛͲ͏ʹ͔ٕज़Ͱݟฦ͢Α͏ʹߟ͑ͨ
    • গͣͭ͠ߨԋ΋ґཔ͞ΕΔΑ͏ʹͳͬͨ
    • ֶज़ɾاۀͰͷධՁʹܨ͕͍ͬͯͬͨ
    • ͱʹ͔͘໘ന͔ͬͨͷͰίπίπͱऔΓ૊ΈΞ΢τϓοτ͠ଓ͚ͨ
    198
    ୔ࢁϑΟʔυόοΫΛಘΒΕͨ

    View full-size slide

  172. ͋Δ࣌ৼΓฦΔͱେ͖ͳ੒Ռʹͳ͍ͬͯͨ

    View full-size slide

  173. ੈͷதͰͷࣗ෼ͷཱͪҐஔΛ஌Δ

    View full-size slide

  174. • ͍ͭͷ·ʹ͔஌Γ߹͍ʹͳ͍ͬͯͨ
    • ҰॹʹτʔΫηογϣϯΛ͍ͯͨ͠
    • ҰॹʹOSS։ൃΛͯٞ͠࿦΋͍ͯͨ͠
    • ڧ͍ٕज़ऀʹ΋·Εͯ͞Βʹڧ͘ͳ͍ͬͯ͘
    • ֶͿ΄Ͳʹࣗ෼Λ஌Γ΋ͬͱֶͼͨ͘ͳΔ
    201
    ੲ͸ԕ͍ଘࡏͩͬͨ༗໊ਓ

    View full-size slide

  175. • ༗໊ͱ͞ΕΔٕज़ऀͷ৘೤͸͍͢͝
    • ٕज़͕ͨͩͨͩ໘ന͍ɺ࡞Γ্͛Δָ͠͞
    • ࣗ෼΋ͨͩͨͩ಺ൃతʹऔΓ૊Ή͜ͱͰ৘೤͕૿෯͍ͯ͘͠
    • ೤ҙΛٕ࣋ͭज़ऀͱͷؔ܎ͷதͰ৘೤͕͞ΒʹඈͼՐ͢Δ
    202
    ৘೤͕ඈͼՐ͢Δ

    View full-size slide

  176. ݟ͑ͳ͔ͬͨ௖্

    View full-size slide

  177. • ࣗ෼ͷઐ໳෼໺Ͱͷࣗ෼ͷཱͪҐஔ
    • ࣗ෼ͷऔΓ૊ΈΛΦʔϓϯʹ͢Δ͜ͱͰࣗ෼Λ஌Δ
    • τοϓϨϕϧͷٕज़͸Ͳ͔͜ԿΛ΍Ε͹ḷΓ͚ͭΔ͔
    • ࣗ෼ͷٕज़͕࠷΋׆͖Δಓ͸Ͳ͔͜
    • ࣗ෼ͷಘҙ෼໺ͰੈքҰΛ໨ࢦ͢
    • ເͰ͸ແ͍
    204
    ௖্͕ݟ͑࢝Ίͨ

    View full-size slide

  178. ڭ܇4
    ಘͨ஌ݟΛͱʹ͔͘ܧଓతʹ
    ެ։ͯ͠ΈΔ͜ͱ

    View full-size slide

  179. 4ͭͷڭ܇Λಘͨ

    View full-size slide

  180. 1. ޷͖ͳ͜ͱʹૉ௚ʹͳΔ͜ͱ
    2. ਐΈ͍ͨํ޲΁Ұา౿Έग़ͯ͠ΈΔ͜ͱ
    3. ڵຯͷ͋Δ͜ͱ΁ͱدΓಓΛͯ͠ΈΔ͜ͱ
    4. ಘͨ஌ݟΛͱʹ͔͘ܧଓతʹެ։ͯ͠ΈΔ͜ͱ
    207
    ͜Ε·Ͱʹಘͨ4ͭͷڭ܇

    View full-size slide

  181. ޷͖ͳ෼໺͔ͩΒେֶ΁ߦͬͯ·Ͱ
    ݚڀ։ൃΛ͍ͯͨ͠

    View full-size slide

  182. ؾ͕͍ͭͨΒݚڀऀͱΤϯδχΞʹؔ৺Λ
    ࣋ͪͳ͕Βݚڀ։ൃ͍ͯͨ͠

    View full-size slide

  183. େֶͰ͔ͬ͠Γ࣌ؒΛֶ͔͚ͯͼ
    ΤϯδχΞʹؔ৺Λ࣋ͪͳ͕ΒݚڀΛ͢Δ

    View full-size slide

  184. ͦΕ͕ࣗ෼ͷ޷͖ͳ͜ͱͱ
    ࣄۀ΁ͷߩݙͱΛॏͶ͋Θͤ͸͡Ίͨ

    View full-size slide

  185. ͔ͩΒࠓߴ͍ٕज़ྗΛ࣋ͬͯΤϯδχΞͱ
    ݚڀऀ͕ަΘΔઌͰ׆ಈ͕Ͱ͖͍ͯΔ

    View full-size slide

  186. ͔ͩΒϖύϘݚڀॴΛ
    ͋ΜͪΆ͞Μͱ૑ઃͰ͖ͨ

    View full-size slide

  187. ͦͯͦ͠ͷ׆ಈ͸͍ͣΕࣾձʹ΋
    ؐݩ͞Ε͍ͯ͘ͱ৴͍ͯ͡Δ

    View full-size slide

  188. ݚڀऀͱΤϯδχΞ͕ަΘΔઌʹ͋Δࣾձ

    View full-size slide

  189. ͜ͷষͷ࠷ޙʹ

    View full-size slide

  190. ͨͬͨͻͱͭͷڭ܇

    View full-size slide

  191. 4ͭͷڭ܇ΛಘΔʹࢸͬͨ
    ͨͬͨͻͱͭͷڭ܇

    View full-size slide

  192. ʮࣗ෼Λ৴͡Δ͜ͱʯ

    View full-size slide

  193. 1. (ࣗ෼Λ৴ͯ͡)޷͖ͳ͜ͱʹૉ௚ʹͳΕͨ
    2. (ࣗ෼Λ৴ͯ͡)ਐΈ͍ͨํ޲΁Ұา౿Έग़ͤͨ
    3. ڵຯͷ͋Δ͜ͱ΁ͱ(ࣗ෼͸େৎ෉ͩΖ͏ͱ)دΓಓ͢Δ͜ͱ͕Ͱ͖ͨ
    4. (͍ͣΕͦΕ͕େ͖ͳ੒ՌʹͳΔͱ৴ͯ͡)ಘͨ஌ݟΛͱʹ͔͘ܧଓతʹެ։
    ͢Δ͜ͱ͕Ͱ͖ͨ
    220
    ࣗ෼Λ৴͡Δ͜ͱ͕Ͱ͖͔ͨΒͦ͜

    View full-size slide

  194. ʮੲͷ΍ΓํʹनΘΕͳͯ͘ྑ͍Ͱ͢ɻ
    দຊ͞Μ͕ྑ͍ͱࢥ͏΍ΓํͰ
    ޷͖ͳΑ͏ʹ΍ͬͯԼ͍͞ɻ
    ࠓͷ΍Γํɺྑ͍ͱࢥ͍·͢Αɻʯ

    View full-size slide

  195. ਓͷݴ༿͸ͦͷਓͷੜ͖ํ͑͞΋
    ม͑Δྗ͕͋Δ

    View full-size slide

  196. ࣗ෼Λ৴ͯ͡಺ͳΔࣗ෼ͷελΠϧΛ
    ޷͖ͳΑ͏ʹຏ͖ଓ͚ͨ

    View full-size slide

  197. ݁Ռతʹ಺ൃతʹಈػ෇͚ΒΕΔߦಈ͸
    ࣗવͱ৘೤͕ੜ͡औΓ૊Ίͨ

    View full-size slide

  198. ৘೤͕͋Δ͔Βখ͞ͳ࣮੷Ͱ΋
    ࣗ෼Λ৴ͯ͡ܧଓతʹऔΓ૊Μͩ

    View full-size slide

  199. ͋Δ࣌ৼΓฦΔͱ
    ͱͯ΋େ͖ͳ੒Ռʹͳ͍ͬͯͨ

    View full-size slide

  200. ࣗ෼Λ৴ͯ͡৘೤ͱތΓʹૉ௚ʹͳΓ
    ࣗ෼ͷελΠϧΛ࡞Γ্͛Δ

    View full-size slide

  201. લྫ͸ࣗ෼ࣗ਎Ͱ࡞Δ͜ͱ͕Ͱ͖Δ

    View full-size slide

  202. ʮࣗ෼Λ৴͡Δ͜ͱʯ

    View full-size slide

  203. ࠓ೔ͷ࿩͸͋͘·Ͱࢲͷ෺ޠ

    View full-size slide

  204. օ༷͸ੋඇࣗ෼ͷελΠϧΛ
    ࡞Γ্͛ͯԼ͍͞

    View full-size slide

  205. ৼΓฦΔͱࣗ෼͕ܦݧ͓ͨ͠͝Γ΍ࣦഊ
    ҙຯͷͳ͍͜ͱͳͲͻͱͭ΋ͳ͔ͬͨ

    View full-size slide

  206. ແବͱࢥ͑Δ͜ͱͰ΋ͦ͜ʹ
    ԿΒ͔ͷҙຯΛݟग़͢ͷ͸ࣗ෼ࣗ਎

    View full-size slide

  207. ߴ౓ʹ࢖͏ٕज़΋ٕज़Λ࡞Δٕज़΋
    ࠷ऴతʹ஌ࣝͷ෯͕ࣗ෼Λॿ͚ͯ͘ΕΔ

    View full-size slide

  208. ࣗ෼ͷελΠϧΛ࡞Δʹ͸
    ͋ΒΏΔ஌͕ࣝඞཁʹͳΔ

    View full-size slide

  209. ࠓ·Ͱಘͨڭ܇Λ͞Βʹந৅Խ

    View full-size slide

  210. ࢲͷݱࡏͷߦಈࢦ਑3ͭ

    View full-size slide

  211. 1. ࣗ෼Λ৴ָͯ͡͠Ή͜ͱ

    View full-size slide

  212. 2. ͋ΒΏΔ͜ͱʹؔ৺Λ࣋ͪ
    ڞ௨఺Λݟग़͢͜ͱ

    View full-size slide

  213. 3. ܧଓతʹऔΓ૊Ή͜ͱ

    View full-size slide

  214. ͜ͷߦಈࢦ਑͕ҧ͍Λ஌Γ
    ࣗ෼ͷελΠϧ(=ࠩผԽ)Λৢ੒ͤ͞Δ

    View full-size slide

  215. ੋඇօ༷͸ࢹ໺Λ޿͛ɺࢹ࠲ΛߴΊ
    ࣗ෼ͷελΠϧΛચ࿅ͤͯ͞ΈͯԼ͍͞

    View full-size slide

  216. օ༷͕ݚڀऀͱΤϯδχΞ͕ަΘΔͦͷઌ
    Ͱ׆༂͢Δ͜ͱΛָ͠Έʹ͍ͯ͠·͢

    View full-size slide

  217. ࢲΛੋඇ౿Έ୆ʹ͍ͯͩ͘͠͞

    View full-size slide

  218. খ͞ͳ͜Ζ͔ΒܑఋͰଞѪ΋ͳ͍͜ͱͰ΋஥ྑٞ͘࿦͢Δػձ΍෯޿͍஌ࣝΛ༩
    ͑ͯ͘Εܑ͕ͨɺ9೥ؒड͚ଓ͚ͨ࢘๏ࢼݧʹࠓ೥ͷ2017೥ʹ߹֨͠·ͨ͠ɻ
    ৗʹࢲͷઌΛਐΈଓ͚ɺʮࣗ෼Λ৴ָͯ͡͠Ή͜ͱʯʮ͋ΒΏΔ͜ͱʹؔ৺Λ࣋
    ͪڞ௨఺Λݟग़͢͜ͱʯʮܧଓతʹऔΓ૊Ή͜ͱʯͦΕΒ͕݁Ռʹܨ͕Δ͜ͱΛ
    ࣔ͠ଓ͚ɺࢲͷߦಈࢦ਑ͱͳΔ͖͔͚ͬΛ༩͑ͯ͘Εܑͨʹ৺͔Βײँ͠·͢ɻ
    ࠷ޙʹɺࣗ༝ʹٕज़Λֶͼଓ͚Δ͜ͱΛ͍ͭ΋ۙ͘Ͱࢧ͑ͯ͘Ε͍ͯΔ࠺ͱࢠڙ
    ͨͪʹײँ͠·͢ɻ
    246
    ँࣙ

    View full-size slide