Slide 1

Slide 1 text

WebαʔϏεʹ͓͚ΔΠϯϑϥΞʔΩςΫνϟ ͷମܥԽͱ ΠϯϑϥΞʔΩςΫνϟͷબ୒ࣗಈԽͷݚڀ՝୊ ʹ͍ͭͯͷ੔ཧͱߟ࡯

Slide 2

Slide 2 text

ΞδΣϯμ • ݚڀςʔϚ • ݚڀഎܠ • ݚڀ՝୊ͷ੔ཧͱํ਑ • طଘͷΠϯϑϥΞʔΩςΫνϟͷௐࠪͱ෼ྨ • ࠓޙͷํ਑ͱ·ͱΊ

Slide 3

Slide 3 text

ݚڀςʔϚ

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

ݚڀഎܠ

Slide 8

Slide 8 text

ݚڀഎܠ • WebαʔϏεͷߴ౓Խ • Πϯϑϥߏ੒ͷબ୒ࢶͷ૿Ճ • Πϯϑϥઃܭͷ҉໧஌ • ΤϯδχΞͱͯ͠ͷࢥ͍

Slide 9

Slide 9 text

ݚڀഎܠ ~WebαʔϏεͷߴ౓Խ~ 8FCαʔϏε Λࢧ͑ΔͨΊͷ ߴ౓ͳΠϯϑϥཁٻ ࣮ݱ͢ΔͨΊͷ ϛυϧ΢ΣΞɺ γεςϜͷ։ൃ 044΍αʔϏε ͱͯ͠ެ։ ޿͘࢖͑ΔΑ͏ʹ Πϯϑϥ͕ڧ͘ͳΓ ΑΓߴ౓ͳ8FCαʔϏε͕ ߏஙՄೳʹ

Slide 10

Slide 10 text

ݚڀഎܠ ~Πϯϑϥߏ੒ͷબ୒ࢶͷ૿Ճ~ • աڈ(2000೥୆ॳ಄) • σʔληϯλͰ • ෺ཧαʔόΛ࢖ͬͯ • Web, App, DBߏ੒ΛLAMPͰ࡞Δ • ࠓ • σʔληϯλ or Ϋϥ΢υ Ͱ • ෺ཧαʔό or Ծ૝αʔό or ίϯςφ or X as a Service ্Ͱ • Web, App, DB, Batch, Cacheߏ੒Λ,
 ༷ʑͳϛυϧ΢ΣΞͱαʔϏεͱ࿈ܞ͠࡞Δ

Slide 11

Slide 11 text

ݚڀഎܠ ~ΠϯϑϥΞʔΩςΫνϟͷύλʔϯԽ~ • աڈ • ઃܭͷબ୒ࢶ͕গͳ͍ • ࣮ݱ͢ΔͨΊͷϛυϧ΢ΣΞ͕ͳ͍ͨΊ࣮૷͕ඞཁ • ߏஙʹ͸͕͔͔࣌ؒΔ • ࠓ • ઃܭͷબ୒ࢶ͸ඇৗʹଟ͘ɺۛຯ͕ඞཁ • ػೳΛ࣮ݱͰ͖Δϛυϧ΢ΣΞɺαʔϏε͕ଟ਺ଘࡏ • ΑΓগͳ͍࣌ؒͰߏங͕Մೳʹͳͬͨ ߏங࣌ؒ͸୹͘ɺઃܭʹ͔͚Δ(ΒΕΔ)͕࣌ؒ૿େ

Slide 12

Slide 12 text

ݚڀഎܠ ~Πϯϑϥઃܭͷ҉໧஌~ • Πϯϑϥઃܭ͸ઃܭऀͷ҉໧஌ʹΑΔͱ͜Ζ͕େ͖͍ • ߏங͍ͨ͠αʔϏε͔ΒΠϯϑϥཁ݅ͷ೺Ѳ • ྨࣅͨ͠αʔϏεͷߏஙܦݧɺࣄྫΛݟͨ͜ͱ͕͋Δ • Πϯϑϥཁ݅Λຬͨͨ͢Ίͷ࣮૷ɺαʔϏεͷ೺Ѳ • ͦΕ͸hogehogeͱ͍͏ϛυϧ΢ΣΞͰग़དྷΔ • ͋ͷαʔϏε͸ΞϨ͕͋Δ • ϝϦοτɺσϝϦοτͷ൑அ(ಛʹӡ༻ίετͳͲ) • hogehoge͸ػೳ͕ศར͚ͩͲɺӡ༻͕େม • ͋ͷαʔϏε͸͕͔͔ۚΔ͚Ͳɺӡ༻ָ͕

Slide 13

Slide 13 text

ݚڀഎܠ ~Πϯϑϥઃܭͷ҉໧஌~ ϒϩάαʔϏεΛ࡞Δ ϒϩάαʔϏε͸ϢʔβͰ͋Δਓ͕ؒॻ͖ࠐΉͷͰDB΁ͷॻ͖ ࠐΈΑΓɺಡΈࠐΈͷํ͕ଟ͍ɻ͋ΔಛఆͷΤϯτϦ͕όζͬͯ τϥϑΟοΫ͕όʔετ͢ΔՄೳੑ͕͋Δɻจࣈ͕த৺ͳͷͰɺ ಈը΍ը૾͕ͳ͚Ε͹τϥϑΟοΫྔ͸গͳ͍ɻίϯςϯπ͸Ϧ ϦʔεޙʹϢʔβ͕౤ߘ͠૿͍͑ͯ͘ͷͰɺσʔλྔͱτϥϑΟο Ϋྔ͸ঃʑʹ૿͍͑ͯ͘ɻҎ্ͷ͜ͱΛ౿·͑ΔͱɺΩϟογϡ ઓུ͕༗ޮͦ͏ͩɻॻ͖ࠐΈ͕ൺֱతগͳ͍ͷͰΩϟογϡͷѻ ָ͍͕ͦ͏ͩ͠ɺΤϯτϦ͕όζͬͨͱ͖͸ΩϟογϡͰฦ͢͜ ͱ͕ग़དྷΔɻಛʹը૾ͱಈը͸τϥϑΟοΫ͕ؾʹͳΔͷͰɺ CDN͔Βฦ͢ɻϦϦʔεॳظ͸ෛՙ͕গͳͦ͏ͳͷͰɺӡ༻ɺඅ ༻౳Λߟ͑ɺεϞʔϧͳߏ੒ɺ୆਺͔Β੒௕ʹ߹Θͤͯ૿΍͢ɻ

Slide 14

Slide 14 text

ݚڀഎܠ ~Πϯϑϥઃܭͷ҉໧஌~ ͋Δηϯαʔ৘ใΛू໿ͯ͠ՄࢹԽ͢ΔαʔϏε ηϯαʔϊʔυͷૹ৴σʔλΛอଘ͢ΔͨΊɺDB΁ͷॻ͖ࠐΈ ͕ଟ͍ɻσʔλͷॻ͖ࠐΈͷྔɺτϥϑΟοΫྔ͸ηϯαʔϊʔ υ਺͔Β༧ଌ͕ग़དྷΔɻσʔλྔ͸ͲΜͲΜ૿Ճ͢Δɻσʔλ͸ ߏ଄Խ͠қ͍ɻఆظతʹσʔλΛूܭ͢Δඞཁ͕͋ΔɻҎ্ͷ͜ ͱΛ౿·͑ΔͱɺDBͷબ୒͸ॏཁͰ͋ΔɻηϯαʔσʔλΛѻ ͍΍͍࣌͢ܥྻσʔλϕʔεΛબ୒͠ूܭΛ༰қʹ͢Δɻ༰ྔͷ ૿Ճͱॻ͖ࠐΈͷεϧʔϓοτΛ্͛΍͍͢෼ࢄετϨʔδ্ʹ ߏங͢Δͷ͕ྑͦ͞͏Ͱ͋Δ͕ɺ෼ࢄετϨʔδ͸ӡ༻͕େมͱ Α͘ฉ͘ɻඅ༻͕ڐ͢ͳΒϚωʔδυDBαʔϏεΛϕʔεʹ૊ Ή͜ͱͰɺӡ༻ίετΛԼ͛ɺεέʔϧ͠ɺ༰ྔ͕૿͑ΔΑ͏ʹ ͍ͨ͠ɻඅ༻ݟੵ΋Γ͸σʔλྔ͕༧ଌՄೳͳͨΊՄೳɻ

Slide 15

Slide 15 text

ΤϯδχΞͱͯ͠ͷࢥ͍ • ӡ༻,ߏங͸ࣗಈԽ΍αʔϏε,ϛυϧ΢ΣΞͷॆ࣮Ͱָʹ • ͚ͩͲઃܭ͸ָʹͳͬͨͩΖ͏͔ • ઃܭͷࣗಈԽ͸? (͍ͬ͢͝େมͦ͏ʂʂʂ) • Զୡ͸ܦݧ΍஌Γ߹͍ΤϯδχΞͷ࿩Λ΋ͱʹงғؾͰઃܭ͠ ͍ͯΔʂ • ٯʹબ୒ࢶ૿͑ͯେมʹͳ͍ͬͯΔ?(બ୒Λશͯࢼ͢ͷ΋େม) • (͍ΘΏΔ)ΠϯϑϥΤϯδχΞ͸ΞʔΩςΫτ • ຊ࣭͸ੲ͔ΒมΘ͍ͬͯͳ͍ͷͰ͸ͳ͍͔
 (2೥໨΋ΤϯδχΞ͍ͯ͠ͳ͍ͷͰਪଌ)

Slide 16

Slide 16 text

ݚڀ՝୊ͷ੔ཧͱํ਑

Slide 17

Slide 17 text

ݚڀ՝୊ͷ੔ཧͱํ਑ • ݚڀ՝୊ • ཁૉͱಛੑ • ॱ൪ɺํ਑

Slide 18

Slide 18 text

ΠϯϑϥΞʔΩςΫνϟબ୒ࣗಈԽ (࠶ܝ) Πϯϑϥ ΞʔΩςΫνϟ" Πϯϑϥ ΞʔΩςΫνϟ# Πϯϑϥ ΞʔΩςΫνϟ$ Πϯϑϥ ΞʔΩςΫνϟ ܾఆ܅ 8FCαʔϏε Πϯϑϥ ΞʔΩςΫνϟ%

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

ཁૉͱಛੑ • ཁૉ • αʔϏε΍Πϯϑϥͷߏ੒ཁૉͷ͜ͱ • ྫ͑͹ɺσΟεΫॻ͖ࠐΈ଎౓ɺந৅తͳ΋ͷͩͱอक ͷ೉͠͞(ఆྔԽ͕ඞཁ)ͳͲ • ಛੑ • ཁૉʹରͯ͠ॏΈ෇͚Λͯ͠ಘΒΕΔ΋ͷ • nݸཁૉͷn࣍ϕΫτϧʹॏΈΛ͚ͭͯಘΒΕͨϕΫτϧ

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

طଘͷΠϯϑϥΞʔΩςΫνϟͷௐࠪͱ෼ྨ

Slide 24

Slide 24 text

طଘͷΠϯϑϥΞʔΩςΫνϟͷௐࠪͱ෼ྨ • ͔͜͜Βઌ͸ͲͪΒ͔ͱݴ͏ͱΈͳ͞Μͱٞ࿦͍ͨ͠ ͱ͍͏಺༰ʹͳΓ·͢ • MicroserviceͱServerless • ෼ྨͱཁૉ • ௐࠪํ๏

Slide 25

Slide 25 text

MicroserviceͱServerless • બΜͩཧ༝͸୯७ʹ࠷ۙྲྀߦ͍ͬͯΔͷͰྫͱͨ͠ • ࠓ೔ͷൃදͰ΋࿩୊ͱ্͕ͯ͠ΔͩΖ͏ͱࢥͬͨ • ʮϚΠΫϩαʔϏεΞʔΩςΫνϟͷͨΊͷṷత࣮ ߦج൫ߏ૝ʯ • ʮαʔϏεͷύϑΥʔϚϯε਺஋ͱґଘؔ܎Λ༻͍ ͨαʔϏεಉ࢜ͷڠௐεέʔϧߏ૝ʯ • ʮ࣮ߦ؀ڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ ͭγεςϜΞʔΩςΫνϟʯ

Slide 26

Slide 26 text

Microservice Architecture http://microservices.io/patterns/microservices.html

Slide 27

Slide 27 text

Microservice • ϞϊϦγοΫͰ͸ͳ͘ɺෳ਺ͷαʔϏεʹ෼͚ͯͦΕΒΛڠௐͤ͞ɺ ҰͭͷαʔϏεΛߏ੒͢Δ • ಛʹɺෳࡶͰߴ౓ͳWebαʔϏεͰ͸༗ޮͱ͞ΕΔ • ػೳΛہॴԽ͠։ൃ΍ϦϦʔεΛ༰қʹ͢Δ • ӡ༻͸༰қʹͳΔ෦෼΋͋Ε͹ෳࡶԽ͢Δͱ͜Ζ΋͋Δ • ྫ͑͹αʔϏε૿ՃʹΑΔαʔόӡ༻ίετͷ૿Ճ • γϯϓϧͳαʔϏεʹద༻͢Δʹ͸ɺෳࡶͳΞʔΩςΫνϟ • ແବʹෳࡶͳߏ੒ɺΦʔόʔεϖοΫͱͳΔՄೳੑ • Developers must deal with the additional complexity of creating a distributed system. (http://microservices.io/patterns/microservices.htmlΑΓ ) • ؔ࿈ൃදʮαʔϏεͷύϑΥʔϚϯε਺஋ͱґଘؔ܎Λ༻͍ͨαʔϏεಉ࢜ͷڠௐεέʔϧߏ૝ʯ • ؔ࿈ൃදʮϚΠΫϩαʔϏεΞʔΩςΫνϟͷͨΊͷṷత࣮ߦج൫ߏ૝ʯ • ؔ࿈ൃදʮ࠶ར༻ੑͷߴ͍ Test Drive Intrastructure ࣮ߦ؀ڥʹؔ͢ΔऔΓ૊Έʯ

Slide 28

Slide 28 text

Serverless • AWS lambda ʹ୅ද͞ΕΔFaaS (Function as a Service)౳Λར༻͠ɺ αʔόΛҙࣝͤͣΞϓϦέʔγϣϯΛ࣮ߦ • αʔόӡ༻ίετ͕Լ͛ΒΕΔɺεέʔϧ͠қ͍ͳͲͷϝϦοτ • Microserviceͷӡ༻ίετͷ໰୊ͷղܾํ๏ͷҰͭ • Microservice Architectureͱڞʹ༻͍ΒΕΔ • ੍໿͕ଟ͍σϝϦοτ • ࣮ߦ؀ڥͳͲʹڧ੍͍໿͕ଘࡏ͢Δ • Significant limitation and constraints - A serverless deployment environment typically has far more constraints that a VM-based or Container-based infrastructure. (http://microservices.io/patterns/deployment/serverless- deployment.htmlΑΓ) • ؔ࿈ൃදʮ࣮ߦ؀ڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγεςϜΞʔΩςΫνϟʯ

Slide 29

Slide 29 text

MicroserviceͱServerless • Microservice͔ͭServerlessͰ͋ΔΠϯϑϥߏ੒͸Մೳ • ͦΕͧΕͷΞʔΩςΫνϟ͸ഉଞతͰ͸ͳ͍ɽ • ୯७ʹMicroserviceͱServerlessΛൺ΂ΔͳͲ͸ग़དྷͳ͍ • ServerlessͷΑ͏ʹ੍໿͕͋ΔΞʔΩςΫνϟ͕͋Δɽ • Serverless͸ϞϊϦγοΫͳαʔϏεߏ੒ͩͱ࠾༻͸೉͍͠ • ServerlessͷલʹMicroService͕͋Δͱ͍ͬͨґଘؔ ܎ɼ֊૚ߏ଄͕ଘࡏ͢Δɽ

Slide 30

Slide 30 text

෼ྨͱཁૉ • microservices.ioͰ͸ҎԼͷΑ͏ʹ෼͚ΒΕ͍ͯΔ • Core Patterns (Monolithic, Microservice) • Deployment patterns (Serverless deployment, etc…) • Web3૚ߏ੒ͱMicroservice͸ൺ΂ΒΕΔ͔ • ػೳຖʹߟ͑ΒΕͨΞʔΩςΫνϟ͸ൺ΂ΒΕΔ͔ • http://microservices.io/patterns/index.htmlΑΓ • ؔ࿈ൃදʮϚΠΫϩαʔϏεΞʔΩςΫνϟͷͨΊͷṷత࣮ߦج൫ߏ૝ʯ • ؔ࿈ൃදʮTimeFuzeΞʔΩςΫνϟߏ૝ - ॲཧͱσʔλͱλΠϚʔΛҰମԽͨ͠ఆظσʔλύΠϓϥΠϯʯ

Slide 31

Slide 31 text

෼ྨͱཁૉ • ΞʔΩςΫνϟͷϝϦοτɺσϝϦοτ • ΞʔΩςΫνϟͷ࣮૷͕༩͑Δཁૉ • ಉ͡ΞʔΩςΫνϟΛ࠾༻ͯ͠΋࣮૷ʹΑͬͯཁૉͷ ॏΈ͕มΘΔՄೳੑ͕͋Γͦ͏? • ࣮૷ͷΞʔΩςΫνϟ͸ߟྀ͢Δ͔? • ͋Δಛఆͷ༻్ʹয఺Λ౰࣮ͯͨ૷͕͋Δ৔߹ߟྀ͕ ͋Δͱྑͦ͞͏? • ؔ࿈ൃදʮ෼ࢄΞϓϦέʔγϣϯʹ͓͚Δෳ਺୺຤ར༻Λߟྀͨ͠ϓϥΠϕʔτσʔλͷ؅ཧʯ • ؔ࿈ൃදʮߴ଎ͳϩάݕࡧΤϯδϯHayabusaʹ͍ͭͯʯ

Slide 32

Slide 32 text

ௐࠪํ๏ • ؔ࿈ݚڀͷௐࠪ • ࿦จௐࠪ • microservice.ioͳͲͷWebαΠτ • ࣄྫͷݕূ • ٕज़ษڧձͷൃදࢿྉ • ΤϯδχΞಉ࢜ͷަྲྀ • ݚڀऀͱͷަྲྀ • WebSystemArchitectureݚڀձΛ׆༻

Slide 33

Slide 33 text

ࠓޙͷํ਑ͱ·ͱΊ

Slide 34

Slide 34 text

ࠓޙͷํ਑ • ؔ࿈ݚڀͷௐࠪ • ௐ͕ࠪ·ͩ·ͩ଍Γͳ͍ͷͰҾ͖ଓ͖΍Δ • ΠϯϑϥΞʔΩςΫνϟࣄྫͷௐࠪ • ௐ͕ࠪ·ͩ·ͩ଍Γͳ͍ͷͰҾ͖ଓ͖΍Δ • ٞ࿦

Slide 35

Slide 35 text

·ͱΊ • WebαʔϏεʹ͓͚ΔΠϯϑϥΞʔΩςΫνϟͷମܥԽͱ ΠϯϑϥΞʔΩςΫνϟͷબ୒ࣗಈԽΛ໨ࢦ͢ • WebαʔϏεͱɺΠϯϑϥΞʔΩςΫνϟͷϞσϧԽ͕ඞ ཁ • ·ͣ͸طଘΠϯϑϥΞʔΩςΫνϟͷௐࠪͱ෼ྨ͕ඞཁ • ࿦จͷௐࠪ͸΋ͪΖΜͷ͜ͱɺٕज़ษڧձͷൃදࢿྉʹ͋ Δࣄྫͷൺֱ΍ɺWSAݚͰఏҊ͞Εͨ৽ͨͳΞʔΩςΫ νϟͷٞ࿦Λߦ͍ɺΠϯϑϥΞʔΩςΫνϟͷ෼ྨΛݕ౼ ͢Δ