ΫϥυαʔϏεͷ8FC"1*ͱͦͷϢʔεέʔε/BPZB*UP,"*;&/QMBUGPSN*OD"1*.FFUVQ5PLZP
View Slide
͓͢Δ༰• <աڈ>ࢲ͕ݟ͖ͯͨ8FC"1*ͷมભ– ؼணͷͻͱͭŋŋŋBTB4FSWJDF• <ݱࡏ>ͦΕΛ͏Ϣʔεέʔε• <ະདྷ>8FCγεςϜͷΞʔΩςΫνϟτϨϯυͱ1SPHSBNBCMF8FC
ࢲ͕ݟ͖ͯͨ8FC"1*ͷมભ
8IZͳΜͰͦΜͳ͢Δͷ • ࡢࠓͷBTB4FSWJDFલʹඳ͍͍ͯͨཧతͳϢʔεέʔεͷҰͭ– ʮ͋ʔɺͦ͏ͦ͏ɺ͜Ε͕͔ͨͬͨ͠Μͩʯ– ͦΕΛࢧ͑Δ8FC"1*• ͜͜ʹࢸΔ·ͰɺͲ͏͍͏มભ͕͔͋ͬͨ– NZQPJOUPGWJFX
ࢲ͕ݟ͖ͯͨ• ͳͷͰɺ#$8FCۀքʹ͕ภͬͯ·͢ɻྃ͝ঝ͍ͩ͘͞
͡Ίͯͷ"1*͜ͷղ૾͔ͬͯ͠ͳ͍ͬΆ͔ͬͨ͆ͷࡶࢽ
࣌ͷঢ়گ• ্࢘ʮҏ౻܅ʂ9.-8FCαʔϏεͬͯͬͯΔ͔ʁʯ– ଞʹʮҏ౻܅+&&ͬͯʯʮҏ౻܅ϒϩάͬͯʯͳͲͷύλʔϯ͋Γ˞͓͔͛Ͱϒϩά։ൃ୲ʹͳΕͨͷͰɺΑ্͍࢘Ͱͨ͠
9.-8FCαʔϏε• ۀϩδοΫΛެ։αʔϏεͱͯ͠ɺͦΕΒͷαʔϏεΛΈ߹ΘͤͯҰͭͷۀΛ࣮ݱ͢Δŋŋŋ– ྫཱྀߦ༧ϗςϧߤۭձࣾݸਓܾࡁ– ·ͩ40"ͱ͍͏ݴ༿ฉ͔ͳ͔ͬͨΑ͏ʹهԱ͍ͯ͠Δ• 40"16%%*84%-ŋŋŋ
ΤϯλʔϓϥΠζ
࣌ࠔͬͨ͜ͱ• 9.-8FCαʔϏε͕όζͬͯΔΒ͍͚͠Ͳɺ࣮ྫ͕ݟͨΒͳ͍– اۀɺۀγεςϜͷόοΫΤϯυͰಈ͍͍͔ͯͨ͠Εͳ͍͕Ұൠফඅऀ͔Βͳ͔ͳ͔ͦΕ͕ݟ͑ͳ͔ͬͨ࣌ͷࣗʮ40"1ͱ͔ݬͷٕज़ͳΜͰŋŋŋ ʯ
ࠒ• ্࢘ʮҏ౻܅ʂϒϩάͬͯͬͯΔ͔ʁʯOBPZBʮʯ
ΊͬͪΌΘΕͯΔΜͷ4IJCVZBQNͰͷൃදࢿྉΑΓ
#MPHͷഎޙʹ͋ͬͨ8FC"1*• ʮܰྔͳ8FCαʔϏεʯ– 344ɺ"UPNɺXFCMPH6QEBUFTQJOH• ͻͱ͖ΘΛҾ͍ͨͷ9.-31$– 40"1ͷॳظͷυϥϑτ͔ΒΠϯεύΠΞ– 40"1ͷΤϯϕϩʔϓϔομͳͲΛऔ༷ͬͬͨඪ४ԽWTσϑΝΫτ࣮ફతͳ8FCαʔϏε
݁Ռɺ8FCۀքͰىͬͨ͜͜ͱ• 8FC ɺ͋ͨΓ– "1*Λެ։͢Δͱ͔͍͍ͬ͜ தೋප• ͯ͞ɺۀϩδοΫΛެ։͠Α͏ͥͱ͍ͬͯ– 8FCۀքʮۀϩδοΫʯͬͯԿͩ • ଟ͘എޙʹͦΕ΄Ͳ\େ͖͍ ॏཁ^ͳۀΛ͍࣋ͬͯͳ͔ͬͨ• 㱤ϩδοΫͰͳ͘σʔλΛެ։͢Δͱ͍͏ํʹྲྀΕͨ– 8FCۀքʹϝσΟΞاۀ͕ଟ͔ͬͨ͠– #MPHχϡʔεͷ344ϑΟʔυɺ"NB[PO1SPEVDU"EWFSUJTFNFOU"1*Θ͔Γ͍͢ઌߦࣄྫ
3&45• લճͷZPIFJ͞Μͷ• ࣌– ࣮ਥʮ40"1ͱ͔9.-31$ͱ͔ݴ͏͚Ͳɺ݁ہ9.-Λ)551(&5ͰΑ͘Ͷ ʯ– ΞʔΩਥʮͦͦͦΕ3FQSFTFOUBUJPOBMTUBUFUSBOTGFSͱݴͬͯͩͳʯগͳ͘ͱࣗͷपғͰ3&4540"1ͳͲͱͷରൺͷจ຺ͰޠΒΕ࢝Ίͨ
ͦ͏͜͏ͯ͠Δ͏ͪʹ"KBYʹ##8BUDIʹدߘͨ͠هࣄΑΓIUUQCCXBUDIJNQSFTTDPKQDEBBMQIBHFFLIUNM
8FC"1*ͷ͜Ε·Ͱͱ͜Ε͔Β "1*NFFUVQIUUQXXXTMJEFTIBSFOFUZPIFJXFCBQJ
8FC"1*Խ͕ਐΜͩɺ͕• ʮ 9.-8FCαʔϏεʯˠʮ8FC"1*ʯ– ͍ͭͷؒʹ͔ϥϕϧมΘͬͯͨ– ʙ͘Β͍ • ʮϚογϡΞοϓʯ– Ͱɺଟ͘ͷྫ˓˓ͱ˚˚ΛҰॹʹදࣔͯ͠Έ·ͨ͠• શମͱͯ͠σʔλͷެ։ʹ͕͍͔ͬͯͨΒ • ʮۀΛߏங͢Δʯͱ͍͏ΑΓʮσʔλΛΈ߹Θͤͨʯ͚ͩ
αʔϏεͷΈ߹ΘͤͰۀΛߏங͢Δ • ʮ9.-8FCαʔϏεʯͷจ຺ͰޠΒΕ͍ͯͨʮ8FCαʔϏεͱ8FCαʔϏεΛΈ߹ΘͤͯۀΛ͙ʯͱ͍͏ߟ͑ํؒҧͬͯͳ͍• 8FCͷ8FC"1*ͳ͔ͳ͔ͦ͜·Ͱ౸ୡͰ͖ͯͳ͔ͬͨ– 5XJUUFS'BDFCPPLͳͲ8FCαʔϏε͕୲ͬͨͷίϯςϯπαʔϏεͰ͋Γʮۀͷ෦ʯͱҧͬͨ͠
40"Ͱ࡞ͬͨࣾαʔϏεɺެ։ͨ͠ΑSFG4UFWFZT(PPHMF1MBUGPSNT3BOUIUUQTQMVTHPPHMFDPN3JQ3PXBOQPTUTF7FPVFTWB79͜͜Ͱಥવͷ
αʔϏεͱαʔϏεΛΈ߹Θͤͯ• ετϨʔδͷ"NB[PO4ͱ˓˓ΛΈ߹Θͤͯ– ͦΕΒ͕ϓϩάϥϚϒϧ "1*Ͱʹૢ࡞Ͱ͖Δʮ8FCΞϓϦέʔγϣϯʯͷ"1*Ͱͳ͍͕ɺฆΕͳ͘8FC"1*ʹΑΔαʔϏεͰ͋ͬͨ
"84ͱ8FC"1*• "84ͷ֤ίϯϙʔωϯτʮޙ͚Ͱ"1*Խ͞ΕͨαʔϏεʯͰͳ͘ʮ"1*ͰαʔϏε͢Δʯ͜ͱΛલఏʹ͞Εͨͷ– 1SPHSBNNBCMFͭʮधཁʯ͕ઌʹ͋ͬͨ– ͦ͏ͦ͏"1*ͬͯ͜Εͷ͜ͱ8FCαΠτʹޙ͔Β෦తʹ"1*Λੜ͢ɺͷͰͳ͘จࣈ௨Γ"QQMJDBUJPO1SPHSBNNJOH*OUFSGBDF
ͦͯ͠Ϋϥυͷ࣌ŋŋŋ˞్தɺ+40/ͱ͔ϞόΠϧͱ͔ιʔγϟϧήʔϜ 0QFO4PDJBMͱ͔͍Ζ͍Ζ͋Δ͚ͲׂѪ
BTB4FSWJDF$JSDMF$*$*BTB4FSWJDF
1BSTFDPNNPCJMF#BDLFOEBTB4FSWJDF
4USJQF1BZNFOU1MBUGPSNBTB4FSWJDF
(PPHMF#JH2VFSZ#JH%BUBBTB4FSWJDF
BTB4FSWJDFͱ8FC"1*• ࡢࠓͷBTB4FSWJDFͷଟ͘8FC)551Λհͯ͠αʔϏεΛఏڙ͢Δ• ϓϩάϥϜͷͨΊͷ෦Ͱ͋Δͱ͍͏ੑ্֨"1*Λ༗͢Δ
BTB4FSWJDFΛۦͯ͠ۀΛߏங͢Δ ΠϚίί• ྫ1BSTFDPNͰϞόΠϧόοΫΤϯυΛ͍#JH2VFSZͰϩάղੳͯ͠4USJQFͰ՝ۚ͢Δ• ΫϥυαʔϏεͷ಄ͱ͍͏ܗͰɺ͔ͭͯʮ9.-8FCαʔϏεʯ͕ࢦ͍ͯͨ͠ੈք͕ݱ࣮ʹͳͬͨ– 40"16%%*84%-తͳखஈͰͳ͔͕ͬͨɺͦΕΛܨ͍ͩͷ͕8FC"1*– ˞3&45ɺͱݴͬͯͳ͍ɻ೦ͷͨΊɻ
·͞ʹ͜͜ͷ
ͲΜͳ෩ʹ͍ͬͯΔ͔Ϣʔεέʔε
NFSHF͞ΕΔͱͦΕΛݕͯ͠ɺίʔυΛ(JU)VC͔Βऔಘมߋ͕ө͞ΕΔΠϯϑϥߏͷܧଓతσϦόϦʔ&$ʹରͯ͠$JSDMF$*͔Β$IFGద༻σϦόϦ༻1VMM3FRVFTU͕࡞͞ΕΔνϟοτͰΠϯϑϥͷ$IFGίʔυͷద༻Λࢦࣔ
νϟοτͰࢦࣔ
σϦόϦʔ༻1VMM3FRFTU͕࡞ΒΕΔσϦόϦʔ༻ϒϥϯνʹϝΠϯϒϥϯνΛNFSHF͢Δ
$JSDMF$*͕ݕ࣮ͯ͠ߦ
ؒΛͭͳ͙8FC"1*• 4MBDL"1*– )VCPU͕4MBDL"1*ܦ༝Ͱνϟοτʹৗற• (JU)VC"1*– )VCPU͔Β(JU)VC"1*Ͱ1VMM3FRVFTU࡞• $JSDMF$*"1*– (JU)VCͷ8FC)PPLͰ$JSDMF$*௨• "84– ߹ʹΑͬͯ"84ͷ"1*ͰߏΛௐ
΄͔ʹ͜Μͳͷ• #VH4OBHŋŋŋ3BJMT+4ͷྫ֎ݕ• 4USJQFŋŋŋܾࡁ• 1BHFS%VUZŋŋŋΠϯϑϥͷΞϥʔτ• 1JOHEPNŋŋŋࢹ• .BDLFSFMŋŋŋϦιʔεϞχλϦϯά• .BOESJMM.BJM$IJNQŋŋŋϝʔϧ• (PPHMF#JH2VFSZŋŋŋϩάղੳɺ%8)• #SPXTFS4UBDLŋŋŋΫϩεϒϥβςετ• ΄͔ʹŋŋŋ%.1 %BUB.BOBHFNFOU1MBUGPSNͱ͔αʔόʔαΠυͷ3BJMTΞϓϦ͕άϧʔ HMVFʹͳͬͯɺۀΛ͙
ൃͷస• ͔ͭͯ– Կ͔ࣗಈԽ͠Α͏͔ͳ– ख࣋ͪͷϥΠϒϥϦɺ044ͳͲΛબࢶʹҊΛ࿅Δ– Α͠ɺίʔυॻ͜͏• ͍·– Կ͔ࣗಈԽ͠Α͏͔ͳ– ΫϥυαʔϏε୳͢– ͋ͷαʔϏεͱ͜ͷαʔϏεΛΈ߹Θͤͯŋŋŋ– Α͠ɺίʔυΛॻ͜͏ʮίϯςϯπͷϚογϡΞοϓʯͷΑ͏ͳݶΒΕͨঢ়گͰͷࢥߟϓϩηεͩͬͨͷ͕ɺͦ͏Ͱͳ͍ঢ়گͰ
8FCγεςϜͷΞʔΩςΫνϟτϨϯυͱ1SPHSBNNBCMF8FC͔͜͜Βໝ
ࣗతͳΩʔϫʔυ• NJDSPTFSWJDFT• *NNVUBCMF*OGSBTUSVDUVSF"KBYBTB4FSWJDF͕8FC"1*ͷൃలΛ֦େͤͨ͞Α͏ʹɺ͜ΕΒͷΩʔϫʔυͦΕΛޙԡ͢͠Δ༧ײ
NJDSPTFSWJDFTh"p://mar)nfowler.com/ar)cles/microservices.html
NJDSPTFSWJDFT• ϞϊϦγοΫͳ8FCΞϓϦέʔγϣϯ͕Ͱ͔͘ͳΔͱϝϯςφϏϦςΟ͕མͪΔ• దͳׂͰ͘͘Γͩͯ͠8FC"1* ͳͲͰܨ͛·͠ΐ͏• ΤϯλʔϓϥΠζग़ͷ40"ʹରͯ͠1SBDUJDBMͳNJDSPTFSWJDFT– 9.-8FCαʔϏεͱ8FC"1*ʹࣅͯΔ
*NNVUBCMF*OGSBTUSVDUVSF• BLB%JTQPTBCMF$PNQPOFOU– ҰՔಇͤͨ͞αʔόʔೋͱมߋ͠ͳ͍– ඞཁʹͳͬͨΒ৽͍͠ͷ࡞ͬͯݹ͍ͷࣺͯΔ• ྫ)FSPLVͷίϯςφ
*NNVUBCMF*OGSBTUSVDUVSFͱ8FCΞϓϦέʔγϣϯͷަՄೳੑ• *NNVUBCMFͦͷ্Ͱಈ͘8FCΞϓϦ࠶ݱՄೳͰͳ͚ΕͳΒͳ͍– ͍ࣺͭͯΒΕͯɺશ͘ಉ͡ߏͰσϓϩΠՄೳʹͳΔͱ͍͏͜ͱ– Ωʔ(FNpMFɺ1SPDpMFɺ4IBSFE/PUIJOH• ࠶ݱՄೳঢ়ଶΛ࣋ͨͳ͍ εςʔτϨεਓʹͤΔ
)FSPLV#VUUPO
)FSPLV#VUUPOͷΈ• IFSPLVDPNEFQMPZʹϦϯΫͯ͠Δ• IFSPLVDPNEFQMPZΛ)551(&5͢ΔͱɺϦϑΝϥ͔Β(JU)VCϨϙδτϦΛಛఆ• BQQKTPOΛಡΈऔΓɺͦΕʹै͍ηογϣϯओͷ)FSPLVΞΧϯτʹσϓϩΠ
)FSPLV#VUUPOΛ͋ΔࢹͰΈΔͱ• 63*Ͱ8FCΞϓϦέʔγϣϯަ– )551(&5ͱ͍͏౷ҰΠϯλϑΣʔεͰΞϓϦέʔγϣϯͱ͍͏ϦιʔεΛަ͍ͯ͠Δ– *NNVUBCMF*OGSBTUSVDUVSFˠ4UBUFMFTTˠ63*͕͋ΕɺަͰ͖Δ1SPHSBNNBCMF8FCͱͷަ͕ࠩͳΜͱͳ͘ݟ͖͑ͯ·͢ΑͶ
·ͱΊ• 8FC"1*ɺσʔλΛެ։͢ΔͨΊͷͷ͔Βɺຊདྷͷҙຯͷ"1*ʹ• ͔ͭͯʮ9.-8FCαʔϏεʯ͕ࢦ͍ͯͨ͠ੈք͕࣮ݱ͞Εͨ ͍ۙͮͨ– BTB4FSWJDF• 8FCγεςϜͷΞʔΩςΫνϟͷਐԽ͕ࠓޙ͞ΒʹͦΕΛޙԡ͢͠Δ– NJDSPTFSWJDFT*NNVUBCMF*OGSBTUSVDUVSF
5IBOLTֆCZ͋ΘΏ͖