Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

ຊൃදͱݚڀͷҐஔ͚ͮ

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

࣮ߦ؀ڥͷଟ༷ԽͱӨڹ

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

3૚ΞʔΩςΫνϟ

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

ΦχΦϯΞʔΩςΫνϟ

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

·ͱΊ

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

ٞ࿦಺༰ • ΞʔΩςΫνϟͱ͍͏ΑΓ͸ͲͪΒ͔ͱ͍͏ͱUMLͷΑ͏ͳ΋ͷʹ ͍͔ۙ΋? ◦ ґଘͷՄࢹԽΛߦͳ͍ɺબ୒Λ༰қʹ͢Δͱ͍͏؍఺Ͱ΋UMLͷ ΄͏͕͍ۙؾ΋͢Δɻ ◦ ࣮ࡍʹ࣮૷͢ΔΘ͚Ͱ͸ͳ͍ͷͰ͜ͷล͸ͦͷ··ΞʔΩςΫ νϟͱͯ࣋ͬͯ͘͠Δͱҧ࿨ײ͕͋Δ͔΋ • ϓϩϏδϣχϯάπʔϧͷΑ͏ͳӡ༻؅ཧπʔϧ͸ϛυϧ΢ΣΞͱ͸ গ͠ҧ͏ಉ৺ԁঢ়͔΋? • ϓϩϏδϣχϯά͚ͩͰ͸ͳ͘ϞχλϦϯά΋ೖΕ͍ͨ ◦ ݱঢ়্ख͍ܗ͕ݟ͔ͭΒͣ΋͏গ͠੔ཧ͕ඞཁͦ͏ ◦ ͳʹ͔͍͍Ҋ͕ແ͍ͩΖ͏͔ • ΋͏গ͠੔ཧ͞ΕΔͱ໘നͦ͏Ͱ৽نੑ΍༗༻ੑ΋ݟ͑ͯ͘Δؾ͕͠ ͍ͯΔ