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

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

Naoya Ito
August 29, 2014

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

Naoya Ito

August 29, 2014
Tweet

More Decks by Naoya Ito

Other Decks in Technology

Transcript

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

    "1*.FFUVQ5PLZP

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. ஫ࢲ͕ݟ͖ͯͨ
    •  ͳͷͰɺ#$8FCۀքʹ࿩͕ภͬͯ·͢ɻ
    ྃ͝ঝ͍ͩ͘͞

    View Slide

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

    View Slide

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

    View Slide

  8. 9.-8FCαʔϏε
    •  ۀ຿ϩδοΫΛެ։αʔϏεͱͯ͠ɺͦΕΒͷ
    αʔϏεΛ૊Έ߹ΘͤͯҰͭͷۀ຿Λ࣮ݱ͢
    Δŋŋŋ
    –  ྫཱྀߦ༧໿ϗςϧߤۭձࣾݸਓܾࡁ
    –  ·ͩ40"ͱ͍͏ݴ༿͸ฉ͔ͳ͔ͬͨΑ͏ʹهԱ͠
    ͍ͯΔ
    •  40"16%%*84%-ŋŋŋ

    View Slide

  9. ΤϯλʔϓϥΠζ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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



    ඪ४ԽWTσϑΝΫτ
    ࣮ફతͳ8FCαʔϏε

    View Slide

  14. ݁Ռɺ8FCۀքͰىͬͨ͜͜ͱ
    •  8FC ɺ͋ͨΓ

    –  "1*Λެ։͢Δͱ͔͍͍ͬ͜ தೋප


    •  ͯ͞ɺۀ຿ϩδοΫΛެ։͠Α͏ͥͱ͍ͬͯ΋
    –  8FCۀքʮۀ຿ϩδοΫʯͬͯԿͩ
    •  ଟ͘͸എޙʹͦΕ΄Ͳ\େ͖͍ ॏཁ^ͳۀ຿Λ͍࣋ͬͯͳ͔ͬͨ
    •  㱤ϩδοΫͰ͸ͳ͘σʔλΛެ։͢Δͱ͍͏ํ޲ʹྲྀΕͨ
    –  8FCۀքʹ͸ϝσΟΞاۀ͕ଟ͔ͬͨ͠
    –  #MPHχϡʔεͷ344ϑΟʔυɺ"NB[PO1SPEVDU
    "EWFSUJTFNFOU"1*౳Θ͔Γ΍͍͢ઌߦࣄྫ

    View Slide

  15. 3&45
    •  લճͷZPIFJ͞Μͷ࿩
    •  ౰࣌
    –  ࣮૷ਥʮ40"1ͱ͔9.-31$ͱ͔ݴ͏͚Ͳɺ݁
    ہ9.-Λ)551(&5ͰΑ͘Ͷ ʯ
    –  ΞʔΩਥʮͦ΋ͦ΋ͦΕ͸3FQSFTFOUBUJPOBM
    TUBUFUSBOTGFSͱݴͬͯͩͳʯ
    গͳ͘ͱ΋ࣗ෼ͷपғͰ͸
    3&45͸40"1ͳͲͱͷ
    ରൺͷจ຺ͰޠΒΕ࢝Ίͨ

    View Slide

  16. ͦ͏͜͏ͯ͠Δ͏ͪʹ"KBY
    ೥ʹ##8BUDIʹدߘͨ͠੿هࣄΑΓ
    IUUQCCXBUDIJNQSFTTDPKQDEBBMQIBHFFLIUNM

    View Slide

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

    IUUQXXXTMJEFTIBSFOFUZPIFJXFCBQJ

    View Slide

  18. 8FC"1*Խ͕ਐΜͩɺ͕
    •  ʮ 9.-
    8FCαʔϏεʯˠʮ8FC"1*ʯ
    –  ͍ͭͷؒʹ͔ϥϕϧ΋มΘͬͯͨ
    –  ʙ͘Β͍
    •  ʮϚογϡΞοϓʯ
    –  Ͱ΋ɺଟ͘ͷྫ͸˓˓ͱ˚˚ΛҰॹʹදࣔͯ͠Έ·ͨ͠
    •  શମͱͯ͠σʔλͷެ։ʹ໨͕͍͔ͬͯͨΒ
    •  ʮۀ຿Λߏங͢Δʯͱ͍͏ΑΓ͸ʮσʔλΛ૊Έ߹Θͤͨʯ͚ͩ

    View Slide

  19. αʔϏεͷ૊Έ߹ΘͤͰ
    ۀ຿Λߏங͢Δ
    •  ʮ9.-8FCαʔϏεʯͷจ຺ͰޠΒΕ͍ͯͨʮ8FC
    αʔϏεͱ8FCαʔϏεΛ૊Έ߹Θͤͯۀ຿Λ๰͙ʯ
    ͱ͍͏ߟ͑ํ͸ؒҧͬͯͳ͍
    •  8FCͷ8FC"1*͸ͳ͔ͳ͔ͦ͜·Ͱ౸ୡͰ͖ͯ
    ͳ͔ͬͨ
    –  5XJUUFS΍'BDFCPPLͳͲ8FCαʔϏε͕୲ͬͨͷ͸
    ίϯςϯπαʔϏεͰ͋Γʮۀ຿ͷ෦඼ʯͱ͸ҧͬͨ͠

    View Slide

  20. 40"Ͱ࡞ͬͨࣾ಺αʔϏ
    εɺެ։ͨ͠Α
    SFG4UFWFZT(PPHMF1MBUGPSNT3BOU
    IUUQTQMVTHPPHMFDPN3JQ3PXBOQPTUTF7FPVFTWB79
    ͜͜Ͱಥવͷ

    View Slide

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

    View Slide

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

    View Slide

  23. ͦͯ͠Ϋϥ΢υͷ࣌୅΁ŋŋŋ
    ˞్தɺ+40/ͱ͔ϞόΠϧͱ͔ιʔγϟϧήʔϜ 0QFO4PDJBM
    ͱ͔͍Ζ
    ͍Ζ͋Δ͚ͲׂѪ

    View Slide

  24. BTB4FSWJDF
    $JSDMF$*
    $*BTB4FSWJDF

    View Slide

  25. 1BSTFDPN
    NPCJMF#BDLFOEBT
    B4FSWJDF

    View Slide

  26. 4USJQF
    1BZNFOU1MBUGPSN
    BTB4FSWJDF

    View Slide

  27. (PPHMF#JH2VFSZ
    #JH%BUBBTB4FSWJDF

    View Slide

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

    View Slide

  29. BTB4FSWJDFΛۦ࢖ͯ͠
    ۀ຿Λߏங͢Δ ΠϚίί

    •  ྫ1BSTFDPNͰϞόΠϧόοΫΤϯυΛ࿫͍
    #JH2VFSZͰϩάղੳͯ͠4USJQFͰ՝ۚ͢Δ
    •  Ϋϥ΢υαʔϏεͷ୆಄ͱ͍͏ܗͰɺ͔ͭͯʮ9.-
    8FCαʔϏεʯ͕໨ࢦ͍ͯͨ͠ੈք͕ݱ࣮ʹͳͬͨ
    –  40"16%%*84%-తͳखஈͰ͸ͳ͔͕ͬͨɺͦΕΛܨ͍ͩͷ
    ͕8FC"1*
    –  ˞3&45ɺͱ΋ݴͬͯͳ͍ɻ೦ͷͨΊɻ

    View Slide

  30. ·͞ʹ͜͜ͷ࿩

    View Slide

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

    View Slide

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

    View Slide

  33. νϟοτͰࢦࣔ

    View Slide

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

    View Slide

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

    View Slide

  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*Ͱߏ੒Λௐ੔

    View Slide

  37. ΄͔ʹ΋͜Μͳͷ
    •  #VH4OBHŋŋŋ3BJMT+4ͷྫ֎ݕ஌
    •  4USJQFŋŋŋܾࡁ
    •  1BHFS%VUZŋŋŋΠϯϑϥͷΞϥʔτ
    •  1JOHEPNŋŋŋ؂ࢹ
    •  .BDLFSFMŋŋŋϦιʔεϞχλϦϯά
    •  .BOESJMM.BJM$IJNQŋŋŋϝʔϧ
    •  (PPHMF#JH2VFSZŋŋŋϩάղੳɺ%8)
    •  #SPXTFS4UBDLŋŋŋΫϩεϒϥ΢βςετ
    •  ΄͔ʹ͸ŋŋŋ%.1 %BUB.BOBHFNFOU1MBUGPSN
    ͱ͔΋
    αʔόʔαΠυͷ
    3BJMTΞϓϦ͕άϧ
    ʔ HMVF
    ʹͳͬͯɺ
    ۀ຿Λ๰͙

    View Slide

  38. ൃ૝ͷస׵
    •  ͔ͭͯ
    –  Կ͔ࣗಈԽ͠Α͏͔ͳ
    –  ख࣋ͪͷϥΠϒϥϦɺ044ͳͲΛબ୒ࢶʹҊΛ࿅Δ
    –  Α͠ɺίʔυॻ͜͏
    •  ͍·
    –  Կ͔ࣗಈԽ͠Α͏͔ͳ
    –  Ϋϥ΢υαʔϏε୳͢
    –  ͋ͷαʔϏεͱ͜ͷαʔϏεΛ૊Έ߹Θͤͯŋŋŋ
    –  Α͠ɺίʔυΛॻ͜͏
    ʮίϯςϯπͷϚογϡ
    ΞοϓʯͷΑ͏ͳݶΒΕͨ
    ঢ়گͰͷࢥߟϓϩηεͩͬ
    ͨͷ͕ɺͦ͏Ͱͳ͍ঢ়گͰ
    ΋

    View Slide

  39. 8FCγεςϜͷΞʔΩςΫνϟτϨϯ
    υͱ1SPHSBNNBCMF8FC
    ͔͜͜Β͸ໝ૝

    View Slide

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

    View Slide

  41. NJDSPTFSWJDFT
    h"p://mar)nfowler.com/ar)cles/microservices.html

    View Slide

  42. NJDSPTFSWJDFT
    •  ϞϊϦγοΫͳ8FCΞϓϦέʔγϣϯ͕Ͱ͔͘ͳΔͱ
    ϝϯςφϏϦςΟ͕མͪΔ
    •  ద౰ͳ໾ׂͰ͘͘Γͩͯ͠8FC"1* ͳͲ
    Ͱܨ͛·
    ͠ΐ͏
    •  ΤϯλʔϓϥΠζ೿ग़ͷ40"ʹରͯ͠1SBDUJDBMͳ
    NJDSPTFSWJDFT
    –  9.-8FCαʔϏεͱ8FC"1*ʹࣅͯΔ

    View Slide

  43. *NNVUBCMF*OGSBTUSVDUVSF
    •  BLB%JTQPTBCMF$PNQPOFOU
    – Ұ౓Քಇͤͨ͞αʔόʔ͸ೋ౓ͱมߋ͠ͳ͍
    – ඞཁʹͳͬͨΒ৽͍͠ͷ࡞ͬͯݹ͍ͷࣺͯΔ
    •  ྫ)FSPLVͷίϯςφ

    View Slide

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

    View Slide

  45. )FSPLV#VUUPO

    View Slide

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

    View Slide

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

    View Slide

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

    –  BTB4FSWJDF
    •  8FCγεςϜͷΞʔΩςΫνϟͷਐԽ͕ࠓޙ͞Βʹͦ
    ΕΛޙԡ͢͠Δ
    –  NJDSPTFSWJDFT*NNVUBCMF*OGSBTUSVDUVSF

    View Slide

  49. 5IBOLT
    ֆCZ͋ΘΏ͖

    View Slide