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

ミドルウェア実行環境の多様化を考慮したインフラアーキテクチャの一検討/study on web system architecture #2

ミドルウェア実行環境の多様化を考慮したインフラアーキテクチャの一検討/study on web system architecture #2

第2回WSA研での発表資料です

masayoshi
PRO

May 18, 2018
Tweet

More Decks by masayoshi

Other Decks in Technology

Transcript

  1. ϛυϧ΢ΣΞ࣮ߦ؀ڥͷଟ༷Խ
    Λߟྀͨ͠ΠϯϑϥΞʔΩςΫ
    νϟͷҰݕ౼

    View Slide

  2. ΞδΣϯμ
    • ຊൃදͱݚڀͷҐஔ͚ͮ
    • ϛυϧ΢ΣΞ࣮ߦ؀ڥͷଟ༷ԽͱӨڹ
    • طଘͷΠϯϑϥΞʔΩςΫνϟ
    • 3૚ΞʔΩςΫνϟ
    • ϩʔϧ෼ׂΞʔΩςΫνϟ
    • ݕ౼ͨ͠ΠϯϑϥΞʔΩςΫνϟ
    • ιϑτ΢ΣΞΞʔΩςΫνϟͷมભ
    • ϨΠϠʔυΞʔΩςΫνϟ
    • ΠϯϑϥΦχΦϯΞʔΩςΫνϟ
    • ࠓޙͷํ਑ͱ·ͱΊ

    View Slide

  3. ຊൃදͱݚڀͷҐஔ͚ͮ

    View Slide

  4. ݚڀςʔϚ
    • ݚڀ಺༰
    • WebαʔϏεʹ͓͚ΔΠϯϑϥΞʔΩςΫνϟͷମܥԽ
    • ΠϯϑϥΞʔΩςΫνϟͷબ୒ࣗಈԽ
    • લճͷൃදͰ͸ɺݚڀ՝୊ͷ੔ཧΛߦͬͨ
    WebαʔϏεʹ͓͚ΔΠϯϑϥΞʔΩςΫνϟͷମܥԽͱΠϯϑϥΞʔΩςΫνϟͷબ୒ࣗಈԽͷݚڀ՝୊ʹ͍ͭͯͷ੔ཧͱߟ࡯
    http://masayoshi.hatenablog.jp/entry/2017/12/27/235456

    View Slide

  5. ݚڀςʔϚ ~ݱঢ়ͷΠϯϑϥઃܭ~
    • ͜͏͍͏WebαʔϏεΛ࣮૷ͯ͠ɺಈ͔͍ͨ͠Μ͚ͩͲ…
    • ͦΕͳΒσʔλετΞ͸͜͏͍͏ܗࣜͰอଘ͕ྑͯ͘…
    • Write͕ଟ͍͔ΒɺεέʔϥϏϦςΟΛߟ͑Δͱ…
    • ͩͱ͢Δͱར༻͢Δϛυϧ΢ΣΞ͸…
    • ࣄྫʹΑΔͱ͋ͷϛυϧ΢ΣΞ͸ҙ֎ͱӡ༻͕େมΒͯ͘͠…
    • ӡ༻޻਺Λߟ͑ΔͱϚωʔδυαʔϏεΛར༻ͯ͠…
    • Ͱ΋ɺඅ༻ͱػೳΛߟྀ͢Δͱ…
    • ։ൃ͸ίϯςφΛ࢖͍͍͔ͨΒɺԾ૝ج൫͸…
    • ͕ͩɺσʔλετΞ͸͋ͷϚωʔδυαʔϏεΛ࢖͍͍͔ͨΒ…
    • Քಇ·Ͱʹߏங͢Δʹ͸…
    • ӡ༻ͷͨΊͷ؂ࢹ͸…

    View Slide

  6. ݚڀςʔϚ ~ݱঢ়ͷΠϯϑϥઃܭ~
    ৭ʑߟྀ͢Δͱ
    ͜ͷߏ੒͕(ܦݧ΍࣮੷ɺଞࣾࣄྫͳͲ͔Β͓ͦΒ͘)
    Ұ൪όϥϯε͕ྑ͍ͱࢥ͍·͢ʂ

    View Slide

  7. ݚڀςʔϚ
    • ͦ͜Ͱɺ
    • WebαʔϏεʹ͓͚ΔΠϯϑϥΞʔΩςΫνϟͷମܥԽ
    • ΠϯϑϥΞʔΩςΫνϟͷબ୒ࣗಈԽ

    View Slide

  8. ݚڀςʔϚ ~ΠϯϑϥΞʔΩςΫνϟͷબ୒ࣗಈԽ~
    Πϯϑϥ
    ΞʔΩςΫνϟ"
    Πϯϑϥ
    ΞʔΩςΫνϟ#
    Πϯϑϥ
    ΞʔΩςΫνϟ$
    Πϯϑϥ
    ΞʔΩςΫνϟ
    ܾఆ܅
    8FCαʔϏε
    Πϯϑϥ
    ΞʔΩςΫνϟ%

    View Slide

  9. αʔϏεͱΠϯϑϥͷϞσϧԽͱཁૉͷඥ෇͚
    • αʔϏεɺΠϯϑϥڞʹϞσϧԽ͕ඞཁ
    • ཁૉΛઃఆ͠ɺͦΕʹԠͯ͡ಛੑ͕͋Γɺ͍ۙ΋ͷΛબ୒
    8FCαʔϏε
    ཁૉ ཁૉ
    ཁૉ ཁૉ
    ΞʔΩςΫνϟ"
    ཁૉ ཁૉ
    ཁૉ ཁૉ
    ΞʔΩςΫνϟ#
    ཁૉ


    ཁૉ ཁૉ

    View Slide

  10. ݚڀ՝୊ͷ੔ཧ
    • બ୒ࣗಈԽͷͨΊͷείΞϦϯάख๏ͷཱ֬
    • WebαʔϏεͷཁૉચ͍ग़͠ͱϞσϧԽ
    • طଘͷWebαʔϏεͷௐࠪͱ෼ྨ
    • ΠϯϑϥΞʔΩςΫνϟͷཁૉͷચ͍ग़͠ͱϞσϧԽ
    • طଘͷΠϯϑϥΞʔΩςΫνϟͷௐࠪͱ෼ྨ

    View Slide

  11. ݚڀςʔϚ ~ΠϯϑϥΞʔΩςΫνϟͷཁૉͱ෼ྨ~
    ෼ྨЋ
    ΞʔΩςΫνϟ"
    ཁૉ ཁૉ ཁૉ
    ཁૉ ཁૉ ཁૉ
    ΞʔΩςΫνϟ#
    ཁૉ ཁૉ ཁૉ
    ཁૉ ཁૉ ཁૉ
    ෼ྨЌ
    ΞʔΩςΫνϟ$
    ཁૉ ཁૉ ཁૉ
    ཁૉ ཁૉ ཁૉ
    ΞʔΩςΫνϟ%
    ཁૉ ཁૉ ཁૉ
    ཁૉ ཁૉ ཁૉ

    View Slide

  12. WebαʔϏεʹؔ࿈͢ΔطଘͷΞʔΩςΫνϟྫ
    • 3૚ΞʔΩςΫνϟ
    • ϚΠΫϩαʔϏεΞʔΩςΫνϟ
    • αʔόϨεΞʔΩςΫνϟ
    • FastContainerΞʔΩςΫνϟ
    • TimeFuzeΞʔΩςΫνϟ
    • ʮTimeFuzeΞʔΩςΫνϟߏ૝ - ॲཧͱσʔλͱλΠϚʔΛҰମԽͨ͠ఆظσʔλύΠϓϥΠϯʯ
    • ࣮ߦ؀ڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγεςϜΞʔΩςΫνϟ

    View Slide

  13. ΞϓϦέʔγϣϯͷ࣮૷
    ΞʔΩςΫνϟͷ෼ྨΠϝʔδ?
    શମͷߏ੒
    ૚ΞʔΩςΫνϟ
    ϛυϧ΢ΣΞͷར༻ख๏
    5JNF'V[F
    ΞϓϦέʔγϣϯ࣮ߦ؀ڥ
    αʔόϨε
    ϚΠΫϩαʔϏε
    ϞϊϦγοΫαʔϏε
    'BTU$POUBJOFS
    ·ͩ໌֬ʹ͸෼ྨͰ͖͍ͯͳ͍

    View Slide

  14. ΞʔΩςΫνϟબ୒ͷΠϝʔδ
    • ෼ྨຖʹΞʔΩςΫνϟΛબ୒͠ɺ࠾༻ͯ͠૊Έ߹ΘͤΔ
    • ྫ͑͹ɺηϯαʔσʔλΛऩूɺूܭͯ͠ɺWebͰՄࢹԽ
    • ηϯαʔσʔλऩूϚΠΫϩαʔϏεͱՄࢹԽͷϚΠΫϩαʔϏε
    • ՄࢹԽ͸σʔλΛදࣔ͢Δ͚ͩͷγϯϓϧͳ΋ͷͳͷͰ
    FastContainerͰαʔόӡ༻Λ͠ͳ͍
    • ηϯαʔσʔλ͸ऩू͢ΔϚΠΫϩαʔϏε͸σʔλΛՃ޻ͯ֨͠
    ೲ͠ɺ࣌ܥྻͷσʔλΛఆظతʹूܭͰ͖ΔΑ͏ʹɺTimeFuseͰʂ
    • ͡Ό͋ɺLOLIPOP! ϚωʔδυΫϥ΢υͱAWSΛ࢖͓͏ʂ
    https://mc.lolipop.jp/ https://aws.amazon.com/

    View Slide

  15. ݒ೦఺
    • ͋ΔΞʔΩςΫνϟͱΞʔΩςΫνϟΛબ୒ͨ͠ࡍʹɺಉ࣮͡ߦ؀ڥ(αʔ
    Ϗε΍ϛυϧ΢ΣΞ)Ͱ࣮ݱͰ͖Δ͔?
    • ࣮ߦ؀ڥɺར༻αʔϏε͕ෳ਺ʹͳͬͨ৔߹ͷߏஙɺӡ༻໘͸ߟྀ͞Εͯ
    ͍Δ͔?
    • WebαʔϏεͷػೳཁ͚݅ͩͰΞʔΩςΫνϟͷબ୒͸ग़དྷͳ͍ͷͰ͸ͳ
    ͍͔?
    • ΞʔΩςΫνϟΛ૊Έ߹ΘͤΔ৔߹ɺར༻͢Δ্Ͱͷલఏ৚݅ͷߟྀ͕Α
    Γඞཁʹͳ͖ͬͯͦ͏

    View Slide

  16. ํ਑
    • ࡢࠓͷΠϯϑϥΞʔΩςΫνϟ͸ɺલఏͱ͍ͯ͠Δ࣮ߦ؀
    ڥ(ϛυϧ΢ΣΞ΍αʔϏε,ίϯςφ্ͳͲ)͕ଟ༷Խͯ͠
    ͍Δ
    • બ୒ͨ͠ΞʔΩςΫνϟͷ࣮ߦ؀ڥͱߏஙɺӡ༻ίετΛ
    ߟྀͨ͠શମͷΞʔΩςΫνϟΛݕ౼͍ͯ͘͠ඞཁ͕͋Δ
    • ಛʹϛυϧ΢ΣΞ͸ɺछྨ΍αʔϏεɺ࣮ߦ؀ڥ͕ଟ༷Խ
    ͓ͯ͠Γ੍໿΋ଟ͍

    View Slide

  17. Ξϓϩʔν
    • ͍͖ͳΓશମͷΞʔΩςΫνϟΛߟ͑Δͷ͸ࠔ೉ͳͷͰɺ
    ϛυϧ΢ΣΞʹண໨͠ݕ౼
    • ϛυϧ΢ΣΞͷ࣮ߦ؀ڥͷଟ༷ԽͱɺͦΕʹΑΔߏஙπʔ
    ϧͷؔ܎Λιϑτ΢ΣΞ։ൃख๏ͷߟ͑ํΛಋೖ͠ɺΞʔ
    ΩςΫνϟਤͰදݱ͢Δ
    • ຊൃදͱٞ࿦ʹΑΓɺࠓޙͷΞϓϩʔνͷ࢓ํΛݕ౼͢Δ

    View Slide

  18. ࣮ߦ؀ڥͷଟ༷ԽͱӨڹ

    View Slide

  19. ࣮ߦ؀ڥͷଟ༷Խ
    • αʔόԾ૝Խٕज़(2005~)
    • Ϋϥ΢υαʔϏεͱϚωʔδυαʔϏε(2010~)
    • ίϯςφٕज़(2015~)
    ()಺͸ීٴظͷ໨҆

    View Slide

  20. ࣮ߦ؀ڥͷଟ༷Խ ~αʔόԾ૝Խٕज़~
    • αʔόͷ༻ҙɺߏங͕༰қʹͳͬͨ
    • ϛυϧ΢ΣΞຖ(ϩʔϧຖ)ʹαʔόͷ෼཭͕༰қʹͳͬͨ
    • αʔόͷΦʔτεέʔϧͳͲ΋Մೳʹͳͬͨ
    • αʔό୆਺ͷ૿Ճ΍ΦʔτεέʔϧԽʹΑΓɺϓϩϏδϣχϯ
    άπʔϧͷधཁ͕ߴ·ͬͨ
    • ༷ʑͳΫϥ΢υαʔϏε͕஀ੜʹͭͳ͕Δ
    • αʔόͷ෼཭ͳͲ͸ਐΜ͕ͩɺαʔό্ʹOS͕ଘࡏ͠ɺͦͷ্
    Ͱϛυϧ΢ΣΞ͕ಈ࡞͢Δ͜ͱʹมΘΓ͸ͳ͔ͬͨ

    View Slide

  21. ࣮ߦ؀ڥͷଟ༷Խ ~Ϋϥ΢υαʔϏε~
    • ༷ʑͳϛυϧ΢ΣΞͷϚωʔδυαʔϏε΍ɺଟ༷ͳΫϥ΢υ
    ϓϥοτϑΥʔϜ͕ొ৔͢ΔΑ͏ʹͳͬͨ
    • Ϋϥ΢υϓϥοτϑΥʔϜຖʹݻ༗ͷϓϩϏδϣχϯάπʔϧ
    ΍ϞχλϦϯάख๏͕ొ৔͢ΔΑ͏ʹͳͬͨ
    • OS্Ͱϛυϧ΢ΣΞΛ࣮ߦ͢ΔͷͰ͸ͳ͘ɺϛυϧ΢ΣΞΛ
    αʔϏεͱͯ͠ར༻͢Δܗଶ͕ొ৔ͨ͠
    • ݩͷϛυϧ΢ΣΞ͕ಉ͡Ͱ΋ɺ੍໿΍ػೳͳͲ͕ͦΕͧΕͷϚ
    ωʔδυαʔϏεɺݩͷϛυϧ΢ΣΞͰҟͳΔΑ͏ʹͳͬͨ
    • αʔόϨεͳͲɺ΄΅αʔϏεར༻લఏͷΞʔΩςΫνϟͳͲ

    View Slide

  22. ࣮ߦ؀ڥͷଟ༷Խ ~ίϯςφٕज़~
    • αʔό΍OS୯ҐͰ͸ͳ͘ɺΞϓϦέʔγϣϯ୯ҐͰͷ෼཭͕༰
    қʹͳͬͨ
    • FaaSɺαʔόϨεͳͲɺΫϥ΢υαʔϏεͳͲʹ΋େ͖ͳӨڹ
    Λ༩͑ͨ
    • ίϯςφ্Ͱϛυϧ΢ΣΞΛ࣮ߦ͢Δܗଶ͕஀ੜͨ͠
    • DockerͳͲίϯςφΤϯδϯຖʹ࣮ߦܗଶ͕ҟͳΓɺϓϩϏ
    δϣχϯάͳͲ΋ҟͳΔΑ͏ʹͳͬͨ
    • γεςϜίϯςφ΍ΞϓϦέʔγϣϯίϯςφͳͲίϯςφࣗ
    ମͷ࣮ߦܗଶ΋ίϯςφΤϯδϯຖʹଟ༷Խ

    View Slide

  23. ࣮ߦ؀ڥͷଟ༷Խ
    • OS্Ͱϛυϧ΢ΣΞ͕ಈ͘ͷ͕͋ͨΓ·͔͑Β
    • OS্Ͱಈ͔͢ɺίϯςφ্Ͱಈ͔͢ɺޓ׵ͷΫϥ΢υαʔ
    ϏεΛར༻͢ΔͳͲଟ༷Խ
    • WebΞϓϦέʔγϣϯɺϓϩϏδϣχϯάɺϞχλϦϯά
    ͳͲ΋ɺࣄ߲ܗଶͷଟ༷ԽʹΑΓมԽ
    • ΠϯϑϥΞʔΩςΫνϟ΋͜ͷଟ༷ԽΛແࢹ͢Δ͜ͱ͸Ͱ
    ͖ͳ͍

    View Slide

  24. طଘͷΠϯϑϥΞʔΩςΫνϟ

    View Slide

  25. 3૚ΞʔΩςΫνϟ

    View Slide

  26. 3૚ΞʔΩςΫνϟ
    • αʔόΫϥΠΞϯτϞσϧͷγεςϜΞʔΩςΫνϟ
    • ࠷ॳظͷWebΞϓϦέʔγϣϯͷιϑτ΢ΣΞΞʔΩς
    ΫνϟͰ΋͋Δ
    • αʔόԾ૝Խٕज़ͷීٴҎલ͔Βଘࡏ
    • ݱࡏ͸ɺ3૚ΞʔΩςΫνϟΛجຊʹෳࡶԽ
    • Webαʔόͷલ΍ޙΖʹΩϟογϡαʔό
    • ॲཧ͕ҟͳΔෳ਺ͷΞϓϦέʔγϣϯαʔό
    • DBαʔόͱͯ͠RDBͱKVSͷซ༻
    • ͜ͷෳࡶԽͨ͠΋ͷΛϩʔϧ෼ׂΞʔΩςΫνϟͱ͢Δ

    View Slide

  27. ϩʔϧ෼ׂΞʔΩςΫνϟ

    View Slide

  28. ϩʔϧ෼ׂΞʔΩςΫνϟ
    • αʔόԾ૝Խٕज़΍ϛυϧ΢ΣΞͷछྨ͕ଟ༷Խ
    • ϛυϧ΢ΣΞ΍ΞϓϦέʔγϣϯ͝ͱʹαʔόΛ෼཭
    ͠ɺͦΕͧΕΛ࿈ܞͤ͞Δ
    • ͦΕͧΕͷϩʔϧʹΑͬͯ෼ׂ͢Δ
    • αʔό୆਺΍ϛυϧ΢ΣΞͷ૿ՃʹΑΓɺϓϩϏδϣχ
    ϯάπʔϧ΍ϞχλϦϯάπʔϧͷॏཁੑ͕૿Ճ
    αʔόԾ૝ԽʹΑΔΦʔτεέʔϦϯάٕज़΋ؔ࿈

    View Slide

  29. ϩʔϧ෼ׂΞʔΩςΫνϟͷྫ

    View Slide

  30. ϩʔϧ෼ׂΞʔΩςΫνϟͱ࣮ߦ؀ڥͷଟ༷Խ
    • ϛυϧ΢ΣΞ΍ΞϓϦέʔγϣϯͷ࣮ߦ؀ڥ͸ඞͣ͠΋ࣗ෼
    ͕ͨͪ؅ཧ͍ͯ͠ΔαʔόͰ͸ͳ͘ͳͬͨ
    • ౰࣌ͷϓϩϏδϣχϯάπʔϧ΍ϞχλϦϯάπʔϧ͸αʔ
    ό্Ͱಈ࡞͢ΔSSHͳͲΛར༻͢Δ͜ͱ͕ଟ͔ͬͨ
    • ϚωʔδυαʔϏεͰ͸ఏڙ͞ΕͨAPI΍αʔϏεͷར༻
    • CloudformationͳͲ
    • ίϯςφͰ͸ίϯςφΤϯδϯ͕༻ҙͨ͠πʔϧͷར༻
    • DockerfileͳͲ

    View Slide

  31. ϩʔϧ෼ׂΞʔΩςΫνϟͱ࣮ߦ؀ڥͷଟ༷Խ
    • WebαʔϏεʹඞཁͳϛυϧ΢ΣΞΛચ͍ग़͠ɺͦΕ
    ͧΕผͷαʔόʹ͢Δ
    • ͦΕΒͷαʔόͷӡ༻ɺ؅ཧख๏͸ผʹݕ౼͢Δ
    • ඞཁͳϛυϧ΢ΣΞɺαʔϏεΛWebαʔϏεͷཁ
    ݅ɺ࣮ߦ؀ڥʹΑΔӡ༻ɺ؅ཧख๏ͷ੍໿΋ߟྀͭ͠
    ͭόϥϯεྑ͘બ୒͢Δ

    View Slide

  32. ϩʔϧ෼ׂΞʔΩςΫνϟͱ࣮ߦ؀ڥͷଟ༷Խ

    View Slide

  33. ݱࡏͷϩʔϧ෼ׂΞʔΩςΫνϟͷྫ
    http://hb.matsumoto-r.jp/draft/-fgEmqKH1dnuQR79TLBXmUfWeIE

    View Slide

  34. ଟ༷Խ΁ͷରԠ
    • WebαʔϏεͷཁ݅Λຬͨ͢ϛυϧ΢ΣΞΛࣗ༝ʹ૊Έ߹Θͤ
    ͯ࢖͍͍ͨ
    • ͔͠͠ɺ࣮ߦ؀ڥͷଟ༷Խɺར༻ܗଶͷଟ༷ԽʹΑΓɺαʔό
    ΍αʔϏεɺϛυϧ΢ΣΞΛԣஅ͢Δ(ྫ͑͹ɺϓϩϏδϣχ
    ϯάख๏)ͳͲͷߟྀࣄ߲͕ΑΓ૿Ճ
    • ͳΜ͔ιϑτ΢ΣΞΞʔΩςΫνϟͱࣅͨΑ͏ͳ໰୊Ͱ͸ͳ͍
    ͷ͔?
    • ͦͷ··ద༻Ͱ͖ͳ͍ʹͯ͠΋ιϑτ΢ΣΞΞʔΩςΫνϟ͕
    ࢀߟʹͳΔͷͰ͸?

    View Slide

  35. ιϑτ΢ΣΞΞʔΩςΫνϟͱͦͷมભ

    View Slide

  36. ιϑτ΢ΣΞΞʔΩςΫνϟͱͦͷมભ
    • ࣗಈςετ΍֎෦ϓϩάϥϜɺαʔϏεͷར༻
    • ϢʔβΠϯλʔϑΣʔεͱϏδωεϩδοΫͷ෼཭
    • DBͳͲΠϯϑϥετϥΫνϟʔͷ෼཭
    • ϨΠϠʔυΞʔΩςΫνϟʹΑΔվળ
    • ϨΠϠʔͷ௥Ճ΍ϨΠϠʔ੹೚ൣғͷ࠶ఆٛ
    • UI -> Application -> Domain -> infrastructure
    • UI͚ͩͰ͸ͳ͘Infrastructure͔Β΋෼཭͕ඞཁ
    • Infrastructure͕૿͑Δ͜ͱ΁ͷରԠ(MySQL,PostgreSQL)
    • ಺ଆ(application, Domain)ͱ֎ଆ(UI,Infrastructure)ͷ෼཭

    View Slide

  37. ϔΩαΰφϧΞʔΩςΫνϟ(2005)
    http://alistair.cockburn.us/Hexagonal+architecture

    View Slide

  38. ΦχΦϯΞʔΩςΫνϟ(2008)
    http://jeffreypalermo.com/blog/the-onion-architecture-
    part-1/

    View Slide

  39. ΫϦʔϯΞʔΩςΫνϟ(2012)
    https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-
    architecture.html

    View Slide

  40. ιϑτ΢ΣΞΞʔΩςΫνϟͱͦͷมભ
    • ΑΓૄ݁߹ͳΞʔΩςΫνϟ΁มԽ͍ͯͬͨ͠
    • ଟ༷ͳαʔϏεɺιϑτ΢ΣΞಉ࢜ͷ࿈ܞ΁ͷରԠ
    • ࣗಈςετɺCIͳͲ΁ͷରԠ
    • ্هରԠͷͨΊͷ։ൃ޻਺ͷ࡟ݮ
    • ϨΠϠʔߏ଄͔Βಉ৺ԁঢ়ͷߏ଄΁มԽ͍ͯͬͨ͠
    • ্͔ΒԼͰ͸ͳ͘ɺ಺͔Β֎΁
    • σʔλͷྲྀΕ΍ॲཧͷྲྀΕɺར༻͢Δ͞ΕΔͰ͸ͳ
    ͘ɺࣗ෼͔ଞਓ͔

    View Slide

  41. ΠϯϑϥΞʔΩςΫνϟ΁ͷԠ༻

    View Slide

  42. ΠϯϑϥΞʔΩςΫνϟ΁ͷԠ༻
    • ϛυϧ΢ΣΞ࣮ߦ؀ڥͷଟ༷Խ
    • Infrastructure͔Βͷ෼཭
    • ϛυϧ΢ΣΞଟ༷Խ
    • ଟ༷ͳαʔϏεɺιϑτ΢ΣΞಉ࢜ͷ࿈ܞ΁ͷରԠ
    • ϓϩϏδϣχϯάπʔϧɺϞχλϦϯά΁ͷରԠ
    • ࣗಈςετɺCIͳͲ΁ͷରԠ

    View Slide

  43. ϨΠϠʔυΞʔΩςΫνϟ
    • UI -> Middleware -> Infrastructure
    • UI
    • MySQLϓϩτίϧ
    • Middleware
    • MySQL, RDS, Aurora
    • Infrastructure
    • OS, ίϯςφ, AWS

    View Slide

  44. ϨΠϠʔυΞʔΩςΫνϟ
    ϓϩϏδϣχϯάπʔϧ͸Infrastructure΁ͷ઀ଓ
    WebΞϓϦέʔγϣϯ͸UI΁ͷ઀ଓ

    View Slide

  45. ΦχΦϯΞʔΩςΫνϟ

    View Slide

  46. ΠϯϑϥΦχΦϯΞʔΩςΫνϟ

    View Slide

  47. ΠϯϑϥΦχΦϯΞʔΩςΫνϟ
    • Infrastructure, UI, MiddlewareService
    • ࣮ߦ؀ڥͷଟ༷ԽΛΧόʔ
    • MiddlewareɺDomain
    • ϛυϧ΢ΣΞ࣮૷
    • WebαʔϏεͷཁ݅
    • “಺”Ͱ͋ΔDomain,Middlewareͷબ୒
    • ࣮ߦ؀ڥଟ༷ԽͱϓϩϏδϣχϯάπʔϧ
    • ”֎”ͱͷ઀ଓͱෳࡶ͞ͷදݱ

    View Slide

  48. ΠϯϑϥΦχΦϯΞʔΩςΫνϟͷྫ

    View Slide

  49. ΠϯϑϥΦχΦϯΞʔΩςΫνϟͷྫ

    View Slide

  50. ΠϯϑϥΦχΦϯΞʔΩςΫνϟͷྫ

    View Slide

  51. ΠϯϑϥΦχΦϯΞʔΩςΫνϟ
    • ϛυϧ΢ΣΞͷ࣮ߦ؀ڥଟ༷ԽͱɺϓϩϏδϣχϯάπʔ
    ϧͱͷؔ܎ʹண໨͠ɺιϑτ΢ΣΞΞʔΩςΫνϟΛԠ༻
    ͨ͠෺Λߟ͑ͨ
    • ࠓޙ͸ߋʹɺιϑτ΢ΣΞͷςετͷΑ͏ʹΠϯϑϥCI΍
    ϞχλϦϯάͳͲ΋௥Ճ͍ͨ͠
    • ιϑτ΢ΣΞΞʔΩςΫνϟͱ͸ҟͳΔͱ͜Ζ΋݁ߏ͋Δ
    ͷͰ͕ͦ͜Ͳ͏ͳΔ͔
    • ϛυϧ΢ΣΞ୯ମͰ͸ͳͦ͘ΕΒΛ૊Έ߹ΘͤͨΠϯϑϥΞʔ
    ΩςΫνϟʹ·ͰԠ༻Λ޿͍͛ͨ

    View Slide

  52. ·ͱΊ

    View Slide

  53. ·ͱΊͱࠓޙͷํ਑
    • WebαʔϏεͷશମߏ੒ͷΠϯϑϥΞʔΩςΫνϟ
    • ϛυϧ΢ΣΞɺAppͳͲͷ࣮ߦ؀ڥͷଟ༷Խʹద༻
    • WebΞϓϦέʔγϣϯཁ͚݅ͩͰ͸ͳ͘ɺϓϩϏδϣχ
    ϯάɺϞχλϦϯάͳͲ΋ߟྀ͢Δඞཁ͋Γ
    • طଘͷιϑτ΢ΣΞΞʔΩςΫνϟΛར༻ͯ͠ɺΠϯϑϥΞʔ
    ΩςΫνϟΛݕ౼ͨ͠
    • ݕ౼ͨ͠಺༰Λ΋ͬͱվળɺ֦ுͯ͠༗༻ੑΛࣔͯ͠ߦ͖͍ͨ

    View Slide

  54. ٞ࿦಺༰
    • ΞʔΩςΫνϟͱ͍͏ΑΓ͸ͲͪΒ͔ͱ͍͏ͱUMLͷΑ͏ͳ΋ͷʹ
    ͍͔ۙ΋?

    ◦ ґଘͷՄࢹԽΛߦͳ͍ɺબ୒Λ༰қʹ͢Δͱ͍͏؍఺Ͱ΋UMLͷ
    ΄͏͕͍ۙؾ΋͢Δɻ

    ◦ ࣮ࡍʹ࣮૷͢ΔΘ͚Ͱ͸ͳ͍ͷͰ͜ͷล͸ͦͷ··ΞʔΩςΫ
    νϟͱͯ࣋ͬͯ͘͠Δͱҧ࿨ײ͕͋Δ͔΋

    • ϓϩϏδϣχϯάπʔϧͷΑ͏ͳӡ༻؅ཧπʔϧ͸ϛυϧ΢ΣΞͱ͸
    গ͠ҧ͏ಉ৺ԁঢ়͔΋?

    • ϓϩϏδϣχϯά͚ͩͰ͸ͳ͘ϞχλϦϯά΋ೖΕ͍ͨ

    ◦ ݱঢ়্ख͍ܗ͕ݟ͔ͭΒͣ΋͏গ͠੔ཧ͕ඞཁͦ͏

    ◦ ͳʹ͔͍͍Ҋ͕ແ͍ͩΖ͏͔

    • ΋͏গ͠੔ཧ͞ΕΔͱ໘നͦ͏Ͱ৽نੑ΍༗༻ੑ΋ݟ͑ͯ͘Δؾ͕͠
    ͍ͯΔ

    View Slide