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

Webサービスにおけるインフラアーキテクチャの体系化と選択自動化の研究/study on web system architecture #1

masayoshi
December 27, 2017

Webサービスにおけるインフラアーキテクチャの体系化と選択自動化の研究/study on web system architecture #1

第一回WSA研の発表資料

masayoshi

December 27, 2017
Tweet

More Decks by masayoshi

Other Decks in Technology

Transcript

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

    ΞʔΩςΫνϟ# ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ෼ྨЌ ΞʔΩςΫνϟ$ ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ΞʔΩςΫνϟ% ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ ཁૉ
  2. ݚڀഎܠ ~Πϯϑϥߏ੒ͷબ୒ࢶͷ૿Ճ~ • աڈ(2000೥୆ॳ಄) • σʔληϯλͰ • ෺ཧαʔόΛ࢖ͬͯ • Web,

    App, DBߏ੒ΛLAMPͰ࡞Δ • ࠓ • σʔληϯλ or Ϋϥ΢υ Ͱ • ෺ཧαʔό or Ծ૝αʔό or ίϯςφ or X as a Service ্Ͱ • Web, App, DB, Batch, Cacheߏ੒Λ,
 ༷ʑͳϛυϧ΢ΣΞͱαʔϏεͱ࿈ܞ͠࡞Δ
  3. ݚڀഎܠ ~ΠϯϑϥΞʔΩςΫνϟͷύλʔϯԽ~ • աڈ • ઃܭͷબ୒ࢶ͕গͳ͍ • ࣮ݱ͢ΔͨΊͷϛυϧ΢ΣΞ͕ͳ͍ͨΊ࣮૷͕ඞཁ • ߏஙʹ͸͕͔͔࣌ؒΔ

    • ࠓ • ઃܭͷબ୒ࢶ͸ඇৗʹଟ͘ɺۛຯ͕ඞཁ • ػೳΛ࣮ݱͰ͖Δϛυϧ΢ΣΞɺαʔϏε͕ଟ਺ଘࡏ • ΑΓগͳ͍࣌ؒͰߏங͕Մೳʹͳͬͨ ߏங࣌ؒ͸୹͘ɺઃܭʹ͔͚Δ(ΒΕΔ)͕࣌ؒ૿େ
  4. ݚڀഎܠ ~Πϯϑϥઃܭͷ҉໧஌~ • Πϯϑϥઃܭ͸ઃܭऀͷ҉໧஌ʹΑΔͱ͜Ζ͕େ͖͍ • ߏங͍ͨ͠αʔϏε͔ΒΠϯϑϥཁ݅ͷ೺Ѳ • ྨࣅͨ͠αʔϏεͷߏஙܦݧɺࣄྫΛݟͨ͜ͱ͕͋Δ • Πϯϑϥཁ݅Λຬͨͨ͢Ίͷ࣮૷ɺαʔϏεͷ೺Ѳ

    • ͦΕ͸hogehogeͱ͍͏ϛυϧ΢ΣΞͰग़དྷΔ • ͋ͷαʔϏε͸ΞϨ͕͋Δ • ϝϦοτɺσϝϦοτͷ൑அ(ಛʹӡ༻ίετͳͲ) • hogehoge͸ػೳ͕ศར͚ͩͲɺӡ༻͕େม • ͋ͷαʔϏε͸͕͔͔ۚΔ͚Ͳɺӡ༻ָ͕
  5. ΤϯδχΞͱͯ͠ͷࢥ͍ • ӡ༻,ߏங͸ࣗಈԽ΍αʔϏε,ϛυϧ΢ΣΞͷॆ࣮Ͱָʹ • ͚ͩͲઃܭ͸ָʹͳͬͨͩΖ͏͔ • ઃܭͷࣗಈԽ͸? (͍ͬ͢͝େมͦ͏ʂʂʂ) • Զୡ͸ܦݧ΍஌Γ߹͍ΤϯδχΞͷ࿩Λ΋ͱʹงғؾͰઃܭ͠

    ͍ͯΔʂ • ٯʹબ୒ࢶ૿͑ͯେมʹͳ͍ͬͯΔ?(બ୒Λશͯࢼ͢ͷ΋େม) • (͍ΘΏΔ)ΠϯϑϥΤϯδχΞ͸ΞʔΩςΫτ • ຊ࣭͸ੲ͔ΒมΘ͍ͬͯͳ͍ͷͰ͸ͳ͍͔
 (2೥໨΋ΤϯδχΞ͍ͯ͠ͳ͍ͷͰਪଌ)
  6. Microservice • ϞϊϦγοΫͰ͸ͳ͘ɺෳ਺ͷαʔϏεʹ෼͚ͯͦΕΒΛڠௐͤ͞ɺ ҰͭͷαʔϏεΛߏ੒͢Δ • ಛʹɺෳࡶͰߴ౓ͳWebαʔϏεͰ͸༗ޮͱ͞ΕΔ • ػೳΛہॴԽ͠։ൃ΍ϦϦʔεΛ༰қʹ͢Δ • ӡ༻͸༰қʹͳΔ෦෼΋͋Ε͹ෳࡶԽ͢Δͱ͜Ζ΋͋Δ

    • ྫ͑͹αʔϏε૿ՃʹΑΔαʔόӡ༻ίετͷ૿Ճ • γϯϓϧͳαʔϏεʹద༻͢Δʹ͸ɺෳࡶͳΞʔΩςΫνϟ • ແବʹෳࡶͳߏ੒ɺΦʔόʔεϖοΫͱͳΔՄೳੑ • Developers must deal with the additional complexity of creating a distributed system. (http://microservices.io/patterns/microservices.htmlΑΓ ) • ؔ࿈ൃදʮαʔϏεͷύϑΥʔϚϯε਺஋ͱґଘؔ܎Λ༻͍ͨαʔϏεಉ࢜ͷڠௐεέʔϧߏ૝ʯ • ؔ࿈ൃදʮϚΠΫϩαʔϏεΞʔΩςΫνϟͷͨΊͷṷత࣮ߦج൫ߏ૝ʯ • ؔ࿈ൃදʮ࠶ར༻ੑͷߴ͍ Test Drive Intrastructure ࣮ߦ؀ڥʹؔ͢ΔऔΓ૊Έʯ
  7. 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ΑΓ) • ؔ࿈ൃදʮ࣮ߦ؀ڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγεςϜΞʔΩςΫνϟʯ
  8. ෼ྨͱཁૉ • microservices.ioͰ͸ҎԼͷΑ͏ʹ෼͚ΒΕ͍ͯΔ • Core Patterns (Monolithic, Microservice) • Deployment

    patterns (Serverless deployment, etc…) • Web3૚ߏ੒ͱMicroservice͸ൺ΂ΒΕΔ͔ • ػೳຖʹߟ͑ΒΕͨΞʔΩςΫνϟ͸ൺ΂ΒΕΔ͔ • http://microservices.io/patterns/index.htmlΑΓ • ؔ࿈ൃදʮϚΠΫϩαʔϏεΞʔΩςΫνϟͷͨΊͷṷత࣮ߦج൫ߏ૝ʯ • ؔ࿈ൃදʮTimeFuzeΞʔΩςΫνϟߏ૝ - ॲཧͱσʔλͱλΠϚʔΛҰମԽͨ͠ఆظσʔλύΠϓϥΠϯʯ
  9. ෼ྨͱཁૉ • ΞʔΩςΫνϟͷϝϦοτɺσϝϦοτ • ΞʔΩςΫνϟͷ࣮૷͕༩͑Δཁૉ • ಉ͡ΞʔΩςΫνϟΛ࠾༻ͯ͠΋࣮૷ʹΑͬͯཁૉͷ ॏΈ͕มΘΔՄೳੑ͕͋Γͦ͏? • ࣮૷ͷΞʔΩςΫνϟ͸ߟྀ͢Δ͔?

    • ͋Δಛఆͷ༻్ʹয఺Λ౰࣮ͯͨ૷͕͋Δ৔߹ߟྀ͕ ͋Δͱྑͦ͞͏? • ؔ࿈ൃදʮ෼ࢄΞϓϦέʔγϣϯʹ͓͚Δෳ਺୺຤ར༻Λߟྀͨ͠ϓϥΠϕʔτσʔλͷ؅ཧʯ • ؔ࿈ൃදʮߴ଎ͳϩάݕࡧΤϯδϯHayabusaʹ͍ͭͯʯ
  10. ௐࠪํ๏ • ؔ࿈ݚڀͷௐࠪ • ࿦จௐࠪ • microservice.ioͳͲͷWebαΠτ • ࣄྫͷݕূ •

    ٕज़ษڧձͷൃදࢿྉ • ΤϯδχΞಉ࢜ͷަྲྀ • ݚڀऀͱͷަྲྀ • WebSystemArchitectureݚڀձΛ׆༻
  11. ·ͱΊ • WebαʔϏεʹ͓͚ΔΠϯϑϥΞʔΩςΫνϟͷମܥԽͱ ΠϯϑϥΞʔΩςΫνϟͷબ୒ࣗಈԽΛ໨ࢦ͢ • WebαʔϏεͱɺΠϯϑϥΞʔΩςΫνϟͷϞσϧԽ͕ඞ ཁ • ·ͣ͸طଘΠϯϑϥΞʔΩςΫνϟͷௐࠪͱ෼ྨ͕ඞཁ •

    ࿦จͷௐࠪ͸΋ͪΖΜͷ͜ͱɺٕज़ษڧձͷൃදࢿྉʹ͋ Δࣄྫͷൺֱ΍ɺWSAݚͰఏҊ͞Εͨ৽ͨͳΞʔΩςΫ νϟͷٞ࿦Λߦ͍ɺΠϯϑϥΞʔΩςΫνϟͷ෼ྨΛݕ౼ ͢Δ