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

クラウドサービスの Web API とそのユースケース #apijp

B4afc7d853d7f1cb6a253d3c7183c05a?s=47 Naoya Ito
August 29, 2014

クラウドサービスの Web API とそのユースケース #apijp

B4afc7d853d7f1cb6a253d3c7183c05a?s=128

Naoya Ito

August 29, 2014
Tweet

Transcript

  1. Ϋϥ΢υαʔϏεͷ8FC "1*ͱͦͷϢʔεέʔε /BPZB*UP ,"*;&/QMBUGPSN*OD  "1*.FFUVQ5PLZP

  2. ͓࿩͢Δ಺༰ •  <աڈ>ࢲ͕ݟ͖ͯͨ8FC"1*ͷมભ – ؼணͷͻͱͭŋŋŋ BTB4FSWJDF •  <ݱࡏ>ͦΕΛ࢖͏Ϣʔεέʔε •  <ະདྷ>8FCγεςϜͷΞʔΩςΫνϟτ Ϩϯυͱ1SPHSBNBCMF8FC

  3. ࢲ͕ݟ͖ͯͨ8FC"1*ͷมભ

  4. 8IZͳΜͰͦΜͳ࿩͢Δͷ  •  ࡢࠓͷ BTB4FSWJDF͸೥લʹඳ͍͍ͯͨ ཧ૝తͳϢʔεέʔεͷҰͭ –  ʮ͋ʔɺͦ͏ͦ͏ɺ͜Ε͕͔ͨͬͨ͠Μͩʯ –  ͦΕΛࢧ͑Δ8FC"1*

    •  ͜͜ʹࢸΔ·ͰɺͲ͏͍͏มભ͕͔͋ͬͨ –  NZQPJOUPGWJFX
  5. ஫ࢲ͕ݟ͖ͯͨ •  ͳͷͰɺ#$8FCۀքʹ࿩͕ภͬͯ·͢ɻ ྃ͝ঝ͍ͩ͘͞

  6. ͸͡Ίͯͷ"1* ͜ͷղ૾౓͔͠࢒ͬ ͯͳ͍ͬΆ͔ͬͨ͆ ೥ͷࡶࢽ

  7. ౰࣌ͷঢ়گ •  ্࢘ʮҏ౻܅ʂ9.-8FCαʔϏεͬͯ ஌ͬͯΔ͔ʁʯ – ଞʹ΋ʮҏ౻܅+&&ͬͯʯʮҏ౻܅ϒϩ άͬͯʯͳͲͷύλʔϯ͋Γ ˞͓͔͛Ͱϒϩά։ൃ୲౰ʹ ͳΕͨͷͰɺΑ্͍࢘Ͱͨ͠

  8. 9.-8FCαʔϏε •  ۀ຿ϩδοΫΛެ։αʔϏεͱͯ͠ɺͦΕΒͷ αʔϏεΛ૊Έ߹ΘͤͯҰͭͷۀ຿Λ࣮ݱ͢ Δŋŋŋ –  ྫཱྀߦ༧໿ϗςϧ ߤۭձࣾ ݸਓܾࡁ – 

    ·ͩ40"ͱ͍͏ݴ༿͸ฉ͔ͳ͔ͬͨΑ͏ʹهԱ͠ ͍ͯΔ •  40"16%%*84%-ŋŋŋ
  9. ΤϯλʔϓϥΠζ

  10. ౰࣌ࠔͬͨ͜ͱ •  9.-8FCαʔϏε͕όζͬͯΔΒ͍͠ ͚Ͳɺ࣮ྫ͕ݟ౰ͨΒͳ͍ – اۀ಺΍ɺۀ຿γεςϜͷόοΫΤϯυͰ͸ ಈ͍͍͔ͯͨ΋͠Εͳ͍͕Ұൠফඅऀ͔Β͸ ͳ͔ͳ͔ͦΕ͕ݟ͑ͳ͔ͬͨ ౰࣌ͷࣗ෼ʮ40"1ͱ͔ ݬͷٕज़ͳΜͰ͸ŋŋŋ ʯ

  11. ೥ࠒ •  ্࢘ʮҏ౻܅ʂϒϩάͬͯ஌ͬͯΔ͔ʁʯ OBPZBʮʯ

  12. ΊͬͪΌ࢖ΘΕͯΔ΍Μ ͷ4IJCVZBQNͰͷൃදࢿྉΑΓ 

  13. #MPHͷഎޙʹ͋ͬͨ8FC"1* •  ʮܰྔͳ8FCαʔϏεʯ –  344ɺ"UPNɺXFCMPH6QEBUFTQJOH •  ͻͱ͖Θ໨ΛҾ͍ͨ΋ͷ9.-31$ –  40"1ͷॳظͷυϥϑτ͔ΒΠϯεύΠΞ – 

    40"1ͷΤϯϕϩʔϓ΍ϔομͳͲΛऔͬ෷ͬͨ࢓ ༷   ඪ४ԽWTσϑΝΫτ ࣮ફతͳ8FCαʔϏε
  14. ݁Ռɺ8FCۀքͰىͬͨ͜͜ͱ •  8FC ɺ͋ͨΓ  –  "1*Λެ։͢Δͱ͔͍͍ͬ͜  தೋප 

     •  ͯ͞ɺۀ຿ϩδοΫΛެ։͠Α͏ͥͱ͍ͬͯ΋ –  8FCۀքʮۀ຿ϩδοΫʯͬͯԿͩ  •  ଟ͘͸എޙʹͦΕ΄Ͳ\େ͖͍ ॏཁ^ͳۀ຿Λ͍࣋ͬͯͳ͔ͬͨ •  㱤ϩδοΫͰ͸ͳ͘σʔλΛެ։͢Δͱ͍͏ํ޲ʹྲྀΕͨ –  8FCۀքʹ͸ϝσΟΞاۀ͕ଟ͔ͬͨ͠ –  #MPHχϡʔεͷ344ϑΟʔυɺ"NB[PO1SPEVDU "EWFSUJTFNFOU"1*౳Θ͔Γ΍͍͢ઌߦࣄྫ
  15. 3&45 •  લճͷZPIFJ͞Μͷ࿩ •  ౰࣌ –  ࣮૷ਥʮ40"1ͱ͔9.-31$ͱ͔ݴ͏͚Ͳɺ݁ ہ9.-Λ)551(&5ͰΑ͘Ͷ ʯ – 

    ΞʔΩਥʮͦ΋ͦ΋ͦΕ͸3FQSFTFOUBUJPOBM TUBUFUSBOTGFSͱݴͬͯͩͳʯ গͳ͘ͱ΋ࣗ෼ͷपғͰ͸ 3&45͸40"1ͳͲͱͷ ରൺͷจ຺ͰޠΒΕ࢝Ίͨ
  16. ͦ͏͜͏ͯ͠Δ͏ͪʹ"KBY ೥ʹ##8BUDIʹدߘͨ͠੿هࣄΑΓ IUUQCCXBUDIJNQSFTTDPKQDEBBMQIBHFFLIUNM

  17. 8FC"1*ͷ͜Ε·Ͱͱ͜Ε͔Β "1*NFFUVQ  IUUQXXXTMJEFTIBSFOFUZPIFJXFCBQJ

  18. 8FC"1*Խ͕ਐΜͩɺ͕ •  ʮ 9.- 8FCαʔϏεʯˠʮ8FC"1*ʯ –  ͍ͭͷؒʹ͔ϥϕϧ΋มΘͬͯͨ –  ʙ͘Β͍ 

    •  ʮϚογϡΞοϓʯ –  Ͱ΋ɺଟ͘ͷྫ͸˓˓ͱ˚˚ΛҰॹʹදࣔͯ͠Έ·ͨ͠ •  શମͱͯ͠σʔλͷެ։ʹ໨͕͍͔ͬͯͨΒ  •  ʮۀ຿Λߏங͢Δʯͱ͍͏ΑΓ͸ʮσʔλΛ૊Έ߹Θͤͨʯ͚ͩ
  19. αʔϏεͷ૊Έ߹ΘͤͰ ۀ຿Λߏங͢Δ  •  ʮ9.-8FCαʔϏεʯͷจ຺ͰޠΒΕ͍ͯͨʮ8FC αʔϏεͱ8FCαʔϏεΛ૊Έ߹Θͤͯۀ຿Λ๰͙ʯ ͱ͍͏ߟ͑ํ͸ؒҧͬͯͳ͍ •  8FCͷ8FC"1*͸ͳ͔ͳ͔ͦ͜·Ͱ౸ୡͰ͖ͯ ͳ͔ͬͨ

    –  5XJUUFS΍'BDFCPPLͳͲ8FCαʔϏε͕୲ͬͨͷ͸ ίϯςϯπαʔϏεͰ͋Γʮۀ຿ͷ෦඼ʯͱ͸ҧͬͨ͠
  20. 40"Ͱ࡞ͬͨࣾ಺αʔϏ εɺެ։ͨ͠Α SFG4UFWFZT(PPHMF1MBUGPSNT3BOU IUUQTQMVTHPPHMFDPN 3JQ3PXBOQPTUTF7FPVFTWB79 ͜͜Ͱಥવͷ

  21. αʔϏεͱαʔϏεΛ ૊Έ߹Θͤͯ •  ετϨʔδͷ"NB[PO4ͱ˓˓Λ૊Έ ߹Θͤͯ – ͦΕΒ͕ϓϩάϥϚϒϧ "1*Ͱ ʹૢ࡞Ͱ ͖Δ ʮ8FCΞϓϦέʔγϣ

    ϯʯͷ"1*Ͱ͸ͳ͍͕ɺ ฆΕ΋ͳ͘8FC"1*ʹΑ ΔαʔϏεͰ͋ͬͨ
  22. "84ͱ8FC"1* •  "84ͷ֤ίϯϙʔωϯτ͸ʮޙ෇͚Ͱ"1*Խ͞ ΕͨαʔϏεʯͰ͸ͳ͘ʮ"1*ͰαʔϏε͢ Δʯ͜ͱΛલఏʹ͞Εͨ΋ͷ –  1SPHSBNNBCMF׌ͭʮधཁʯ͕ઌʹ͋ͬͨ –  ͦ͏ͦ͏"1*ͬͯ͜Εͷ͜ͱ 8FCαΠτʹޙ͔Β෦෼తʹ

    "1*Λੜ΍͢ɺͷͰ͸ͳ͘จ ࣈ௨Γ"QQMJDBUJPO 1SPHSBNNJOH*OUFSGBDF
  23. ͦͯ͠Ϋϥ΢υͷ࣌୅΁ŋŋŋ ˞్தɺ+40/ͱ͔ϞόΠϧͱ͔ιʔγϟϧήʔϜ 0QFO4PDJBM ͱ͔͍Ζ ͍Ζ͋Δ͚ͲׂѪ

  24. BTB4FSWJDF $JSDMF$* $*BTB4FSWJDF

  25. 1BSTFDPN NPCJMF#BDLFOEBT B4FSWJDF

  26. 4USJQF 1BZNFOU1MBUGPSN BTB4FSWJDF

  27. (PPHMF#JH2VFSZ #JH%BUBBTB4FSWJDF

  28. BTB4FSWJDFͱ8FC"1* •  ࡢࠓͷ BTB4FSWJDFͷଟ͘͸8FC )551 Λհͯ͠αʔϏεΛఏڙ͢Δ •  ϓϩάϥϜͷͨΊͷ෦඼Ͱ͋Δͱ͍͏ੑ্֨ "1*Λ༗͢Δ

  29. BTB4FSWJDFΛۦ࢖ͯ͠ ۀ຿Λߏங͢Δ ΠϚίί  •  ྫ1BSTFDPNͰϞόΠϧόοΫΤϯυΛ࿫͍ #JH2VFSZͰϩάղੳͯ͠4USJQFͰ՝ۚ͢Δ •  Ϋϥ΢υαʔϏεͷ୆಄ͱ͍͏ܗͰɺ͔ͭͯʮ9.- 8FCαʔϏεʯ͕໨ࢦ͍ͯͨ͠ੈք͕ݱ࣮ʹͳͬͨ

    –  40"16%%*84%-తͳखஈͰ͸ͳ͔͕ͬͨɺͦΕΛܨ͍ͩͷ ͕8FC"1* –  ˞3&45ɺͱ΋ݴͬͯͳ͍ɻ೦ͷͨΊɻ 
  30. ·͞ʹ͜͜ͷ࿩

  31. ͲΜͳ෩ʹ࢖͍ͬͯΔ͔ Ϣʔεέʔε 

  32. NFSHF͞ΕΔͱ ͦΕΛݕ஌ͯ͠ɺ ίʔυΛ(JU)VC͔ Βऔಘ มߋ͕൓ө͞Ε Δ Πϯϑϥߏ੒ͷܧଓతσϦόϦʔ &$ʹରͯ͠ $JSDMF$*͔Β$IFG ద༻

    σϦόϦ༻1VMM 3FRVFTU͕࡞੒͞ ΕΔ νϟοτͰΠϯϑ ϥ΁ͷ$IFGίʔυͷ ద༻Λࢦࣔ
  33. νϟοτͰࢦࣔ

  34. σϦόϦʔ༻ 1VMM3FRFTU͕࡞ΒΕΔ σϦόϦʔ༻ϒϥϯ νʹϝΠϯϒϥϯν ΛNFSHF͢Δ

  35. $JSDMF$*͕ݕ஌࣮ͯ͠ߦ

  36. ؒΛͭͳ͙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*Ͱߏ੒Λௐ੔
  37. ΄͔ʹ΋͜Μͳͷ •  #VH4OBHŋŋŋ3BJMT+4ͷྫ֎ݕ஌ •  4USJQFŋŋŋܾࡁ •  1BHFS%VUZŋŋŋΠϯϑϥͷΞϥʔτ •  1JOHEPNŋŋŋ؂ࢹ • 

    .BDLFSFMŋŋŋϦιʔεϞχλϦϯά •  .BOESJMM.BJM$IJNQŋŋŋϝʔϧ •  (PPHMF#JH2VFSZŋŋŋϩάղੳɺ%8) •  #SPXTFS4UBDLŋŋŋΫϩεϒϥ΢βςετ •  ΄͔ʹ͸ŋŋŋ%.1 %BUB.BOBHFNFOU1MBUGPSN ͱ͔΋ αʔόʔαΠυͷ 3BJMTΞϓϦ͕άϧ ʔ HMVF ʹͳͬͯɺ ۀ຿Λ๰͙
  38. ൃ૝ͷస׵ •  ͔ͭͯ –  Կ͔ࣗಈԽ͠Α͏͔ͳ –  ख࣋ͪͷϥΠϒϥϦɺ044ͳͲΛબ୒ࢶʹҊΛ࿅Δ –  Α͠ɺίʔυॻ͜͏ • 

    ͍· –  Կ͔ࣗಈԽ͠Α͏͔ͳ –  Ϋϥ΢υαʔϏε୳͢ –  ͋ͷαʔϏεͱ͜ͷαʔϏεΛ૊Έ߹Θͤͯŋŋŋ –  Α͠ɺίʔυΛॻ͜͏ ʮίϯςϯπͷϚογϡ ΞοϓʯͷΑ͏ͳݶΒΕͨ ঢ়گͰͷࢥߟϓϩηεͩͬ ͨͷ͕ɺͦ͏Ͱͳ͍ঢ়گͰ ΋
  39. 8FCγεςϜͷΞʔΩςΫνϟτϨϯ υͱ1SPHSBNNBCMF8FC ͔͜͜Β͸ໝ૝ 

  40. ࣗ෼తͳ ஫໨Ωʔϫʔυ •  NJDSPTFSWJDFT •  *NNVUBCMF*OGSBTUSVDUVSF "KBY΍ BTB4FSWJDF͕ 8FC"1*ͷൃలΛ֦େͤ͞ ͨΑ͏ʹɺ͜ΕΒͷΩʔ

    ϫʔυ΋ͦΕΛޙԡ͢͠Δ ༧ײ
  41. NJDSPTFSWJDFT h"p://mar)nfowler.com/ar)cles/microservices.html

  42. NJDSPTFSWJDFT •  ϞϊϦγοΫͳ8FCΞϓϦέʔγϣϯ͕Ͱ͔͘ͳΔͱ ϝϯςφϏϦςΟ͕མͪΔ •  ద౰ͳ໾ׂͰ͘͘Γͩͯ͠8FC"1* ͳͲ Ͱܨ͛· ͠ΐ͏ • 

    ΤϯλʔϓϥΠζ೿ग़ͷ40"ʹରͯ͠1SBDUJDBMͳ NJDSPTFSWJDFT –  9.-8FCαʔϏεͱ8FC"1*ʹࣅͯΔ
  43. *NNVUBCMF*OGSBTUSVDUVSF •  BLB%JTQPTBCMF$PNQPOFOU – Ұ౓Քಇͤͨ͞αʔόʔ͸ೋ౓ͱมߋ͠ͳ͍ – ඞཁʹͳͬͨΒ৽͍͠ͷ࡞ͬͯݹ͍ͷࣺͯΔ •  ྫ)FSPLVͷίϯςφ

  44. *NNVUBCMF*OGSBTUSVDUVSFͱ8FC ΞϓϦέʔγϣϯͷަ׵Մೳੑ •  *NNVUBCMFͦͷ্Ͱಈ͘8FCΞϓϦ͸࠶ݱՄೳͰ ͳ͚Ε͹ͳΒͳ͍ –  ͍ࣺͭͯΒΕͯ΋ɺશ͘ಉ͡ߏ੒ͰσϓϩΠՄೳʹͳΔͱ͍͏ ͜ͱ –  Ωʔ(FNpMFɺ1SPDpMFɺ4IBSFE/PUIJOH

    •  ࠶ݱՄೳঢ়ଶΛ࣋ͨͳ͍ εςʔτϨε ਓʹ౉ͤ Δ
  45. )FSPLV#VUUPO

  46. )FSPLV#VUUPOͷ࢓૊Έ •  IFSPLVDPNEFQMPZʹϦϯΫͯ͠Δ •  IFSPLVDPNEFQMPZΛ)551(&5͢Δͱɺ ϦϑΝϥ͔Β(JU)VCϨϙδτϦΛಛఆ •  BQQKTPOΛಡΈऔΓɺͦΕʹै͍ηογϣϯ ओͷ)FSPLVΞΧ΢ϯτʹσϓϩΠ

  47. )FSPLV#VUUPOΛ͋Δ ࢹ఺ͰΈΔͱ •  63*Ͱ8FCΞϓϦέʔγϣϯަ׵ –  )551(&5ͱ͍͏౷ҰΠϯλϑΣʔεͰΞϓϦέʔ γϣϯͱ͍͏ϦιʔεΛަ׵͍ͯ͠Δ –  *NNVUBCMF*OGSBTUSVDUVSFˠ4UBUFMFTTˠ63* ͕͋Ε͹ɺަ׵Ͱ͖Δ

    1SPHSBNNBCMF8FC ͱͷަࠩ఺͕ͳΜͱͳ ͘ݟ͖͑ͯ·͢ΑͶ
  48. ·ͱΊ •  8FC"1*͸ɺσʔλΛެ։͢ΔͨΊͷ΋ͷ͔Βɺຊདྷ ͷҙຯͷ"1*ʹ •  ͔ͭͯʮ9.-8FCαʔϏεʯ͕໨ࢦ͍ͯͨ͠ੈք͕ ࣮ݱ͞Εͨ ͍ۙͮͨ  – 

    BTB4FSWJDF •  8FCγεςϜͷΞʔΩςΫνϟͷਐԽ͕ࠓޙ͞Βʹͦ ΕΛޙԡ͢͠Δ –  NJDSPTFSWJDFT*NNVUBCMF*OGSBTUSVDUVSF
  49. 5IBOLT ֆCZ͋ΘΏ͖