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

分散アプリケーションアーキテクチャ 2015

Naoya Ito
October 14, 2015

分散アプリケーションアーキテクチャ 2015

Developer Summit 2015 Autumn での講演資料です

Naoya Ito

October 14, 2015
Tweet

More Decks by Naoya Ito

Other Decks in Technology

Transcript

  1. ࡢࠓ •  όον –  )BEPPQ΍#JH2VFSZతͳ΋ͷʹ೚ͤΔ –  ͜ΕͰ೰Ήػձ͸গͳ͘ͳͬͨ  •  όονͰ͸ͳ͍ॲཧ

    ετϦʔϜ  –  ·ͩྗۀͰ৐Γ੾͍ͬͯΔˡ͍·͜͜ –  ,BJ[FO1MBUGPSNͰ͸ •  "#ςετͷMPHΛड͚औͬͯܭࢉ͢ΔαʔόʔFUD –  ඞવతʹ෼ࢄγεςϜʹ –  ͜ͷล͜Ε͔ΒͲ͏ͳ͍ͬͯ͘ΜͩΖ͏  σʔλॲཧج൫΍ෛՙ෼ࢄʹͭ ͍ͯ͸ॾઌഐ͕ޠΔͱࢥ͏ͷͰɺ ΞϓϦέʔγϣϯɾΞʔΩςΫ νϟʹ͍ͭͯ
  2. ϦΞϧλΠϜ8FC •  ͦ͏ݴΘΕͯ͸΍೥ –  ͋·Γฉ͔ͳ͘ͳͬͨ –  ഇΕͨΘ͚Ͱ͸ͳ͘ 5XJUUFS΍'BDFCPPL͕ୡ੒͠ɺࡢࠓ͸ ίϞσΟςΟʹ • 

    Ͱ΋ɺ·͚ͩͬ͜͏ྗۀͰ࡞͍ͬͯΔ –  Ұ෦ʹ1VC4VCͷϛυϧ΢ΣΞΛೖΕͯŋŋŋ –  ཪͰ͸1PMMJOHͯ͠ϦΞϧλΠϜʹݟ͔͚ͤͯŋŋŋ –  ಉظͳ+40/PWFS)551Ͱŋŋŋ
  3. 3FBDUJWF4ZTUFN •  4DBMBͷ1MBZ"LLB౳ͷ5ZQFTBGF͕ࣾఏҊ͢ΔϞ μϯͳ8FC ౳ͷ γεςϜํࣜ –  5ZQFTBGF3FBUJWF1MBUGPSN •  1MBZ"LLB4MJDL4QBSLͳͲΛ࢖ͬͯϦΞϧλΠϜͳγεςϜ

    Λମܥཱͬͨख๏ͰߏஙͰ͖Δ  •  3FBDUJWF.BOJGFTUPΛຬͨ͢ –  IUUQXXXSFBDUJWFNBOJGFTUPPSH –  ˞ͳ͓ɺ͜ͷจॻʹؔͯ͠͸3FBDUJWFͱ͍͏ݴ༿ͷ࢖͍ํʹ͍ͭͯ൷൑͕͋ΔͷͰ஫ҙ •  QPLBSJN͞Μͷ3FBDUJWF.BOJGFTUPʹؔ͢Δҹ৅IUUQUPHFUUFSDPNMJ
  4. 3FBDUJWF4ZTUFNͷ࣮ࡍ •  શͯͷίϯϙʔωϯτ͕ඇಉظΠϯλϑΣʔεΛ࣋ͭ –  8FCϑϨʔϜϫʔΫ 1MBZ ɺϝοηʔδج൫ "LLB ɺσʔλ 4MJDL

    4QBSL  –  'VUVSFͰந৅Խ –  ૬ޓ઀ଓ͸3FBDUJWF4USFBNTʹै͏ •  3FBDUJWF4USFBNT –  ͢΂͕ͯඇಉظˠྲྀྔ੍ޚ͕ඞཁ •  σʔλΛྲྀ͠·͘Δͱܾյͯ͠͠·͏ –  +7.ॲཧܥʹ͓͚Δ1VC4VC ྲྀྔ੍ޚ CBDLQSFTTVSF ͷ "1*࢓༷ͷඪ४Խ •  ϛυϧ΢ΣΞ޲͚ͷ"1*Ͱ͋ΓɺϢʔβʔ͸ҙࣝ͠ͳ͍
  5. ͱ͸͍͑ŋŋŋ •  ϓϩάϥϛϯάϞσϧͷ՝୊ –  ʮͬͨࣽ͝ʯγεςϜ͸͠ΜͲ͍ –  Կͷந৅Խٕ๏΋࣋ͨͣ+40/"1*͚ͩͰ͸ෳࡶ౓͸૿͢Ұํ •  Πϯϑϥͷ՝୊ – 

    ௨৴ʹ͋ͨͬͯߟྀ͢΂͖ཁ͍݅Ζ͍Ζŋŋŋ •  ϦτϥΠ •  ো֐ݕ஌ •  ෛՙ෼ࢄ ϩʔυόϥϯε  •  ϑΣΠϧΦʔόʔ •  ϑϩʔ੍ޚ CBDLQSFTTVSF 
  6. 'JOBHMF •  5XJUUFS •  4DBMBͷ31$ϑϨʔϜϫʔΫ •  ;ͨͭͷଆ໘ –   ϓϩάϥϛϯάϞσϧ

    •  :PVS4FSWFSBTB'VODUJPOͱ'VUVSFʹΑΔαʔϏεɺ ௨৴ͷந৅Խ –   31$ͷͨΊͷΠϯϑϥ •  ো֐ݕ஌ɺϩʔυόϥϯεŋŋŋ
  7. :PVS4FSWFSBTB'VODUJPO •  4FSWFS͸3FRΛड͚औΓ3FQΛ'VUVSFͰฦؔ͢਺ͱͯ͠ந৅Խ͞ΕΔ •  ෳ਺ͷαʔϏεݺͼग़͠Λؔ਺ݺͼग़͠ͷܨ͕Γͱͯ͠هड़Ͱ͖Δ class Service[-Req, +Rep] extends (Req

    => Future[Rep]) val service = new Service[httpx.Request, httpx.Response] { def apply(req: httpx.Request): Future[httpx.Response] = Future.value(httpx.Response(req.version, httpx.Status.Ok)) } val server = Httpx.serve(":8080", service) Await.ready(server)
  8. Θ͔Δ͜ͱ •  ैདྷͷํ๏Ͱ͸େن໛ͳετϦʔϜɺେ͖ͳ෼ࢄγ εςϜΛεϚʔτʹ͸ѻ͑ͳ͍ •  ૄ݁߹Խʹ൐͍ίϯϙʔωϯτؒͷ௨৴ͷந৅Խ͕ ՝୊ʹ •  ࣮૷Λ൐ͬͨ৽͍͠Ξϓϩʔν – 

    ந৅ϨΠϠΛඃͤͯϓϩάϥϛϯάϞσϧͱΠϯϑϥΛఏ ڙ •  5ZQFTBGF3FBDUJWF1MBUGPSN •  'JOBHMF$PMPTTVT –  ܥશମΛͲ͏ઃܭɾ࣮૷͢Δ͔ΛఏҊ  ͜ͷล͕τϨϯυ͔
  9. ༨ஊ JVM BEAM Erlang / Elixir Scala OTP Akka etc.

    Frameworks Frameworks Reac1ve Manifesto 的な ものの基盤