Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クラウドサービスの Web API とそのユースケース #apijp
Search
Naoya Ito
August 29, 2014
Technology
64
31k
クラウドサービスの Web API とそのユースケース #apijp
Naoya Ito
August 29, 2014
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Functional TypeScript
naoya
12
5.4k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
60
27k
シェルの履歴とイクンリメンタル検索を使う
naoya
7
3k
20230227-engineer-type-talk.pdf
naoya
83
40k
関数型プログラミングと型システムのメンタルモデル
naoya
59
74k
TypeScript による GraphQL バックエンド開発
naoya
27
29k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
66
23k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
143
58k
一休の現在と、ここまでの道のり
naoya
89
40k
Other Decks in Technology
See All in Technology
日経電子版のStoreKit2フルリニューアル
shimastripe
1
140
Zennのパフォーマンスモニタリングでやっていること
ryosukeigarashi
0
160
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
190
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
600
The Role of Developer Relations in AI Product Success.
giftojabu1
0
140
ISUCONに強くなるかもしれない日々の過ごしかた/Findy ISUCON 2024-11-14
fujiwara3
8
880
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
13k
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
700
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
210
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
440
強いチームと開発生産性
onk
PRO
35
11k
Featured
See All Featured
Building Applications with DynamoDB
mza
90
6.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
430
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Typedesign – Prime Four
hannesfritz
40
2.4k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Producing Creativity
orderedlist
PRO
341
39k
Building Adaptive Systems
keathley
38
2.3k
How to Ace a Technical Interview
jacobian
276
23k
Gamification - CAS2011
davidbonilla
80
5k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Transcript
ΫϥυαʔϏεͷ8FC "1*ͱͦͷϢʔεέʔε /BPZB*UP ,"*;&/QMBUGPSN*OD "1*.FFUVQ5PLZP
͓͢Δ༰ • <աڈ>ࢲ͕ݟ͖ͯͨ8FC"1*ͷมભ – ؼணͷͻͱͭŋŋŋ BTB4FSWJDF • <ݱࡏ>ͦΕΛ͏Ϣʔεέʔε • <ະདྷ>8FCγεςϜͷΞʔΩςΫνϟτ Ϩϯυͱ1SPHSBNBCMF8FC
ࢲ͕ݟ͖ͯͨ8FC"1*ͷมભ
8IZͳΜͰͦΜͳ͢Δͷ • ࡢࠓͷ BTB4FSWJDFલʹඳ͍͍ͯͨ ཧతͳϢʔεέʔεͷҰͭ – ʮ͋ʔɺͦ͏ͦ͏ɺ͜Ε͕͔ͨͬͨ͠Μͩʯ – ͦΕΛࢧ͑Δ8FC"1*
• ͜͜ʹࢸΔ·ͰɺͲ͏͍͏มભ͕͔͋ͬͨ – NZQPJOUPGWJFX
ࢲ͕ݟ͖ͯͨ • ͳͷͰɺ#$8FCۀքʹ͕ภͬͯ·͢ɻ ྃ͝ঝ͍ͩ͘͞
͡Ίͯͷ"1* ͜ͷղ૾͔ͬ͠ ͯͳ͍ͬΆ͔ͬͨ͆ ͷࡶࢽ
࣌ͷঢ়گ • ্࢘ʮҏ౻܅ʂ9.-8FCαʔϏεͬͯ ͬͯΔ͔ʁʯ – ଞʹʮҏ౻܅+&&ͬͯʯʮҏ౻܅ϒϩ άͬͯʯͳͲͷύλʔϯ͋Γ ˞͓͔͛Ͱϒϩά։ൃ୲ʹ ͳΕͨͷͰɺΑ্͍࢘Ͱͨ͠
9.-8FCαʔϏε • ۀϩδοΫΛެ։αʔϏεͱͯ͠ɺͦΕΒͷ αʔϏεΛΈ߹ΘͤͯҰͭͷۀΛ࣮ݱ͢ Δŋŋŋ – ྫཱྀߦ༧ϗςϧ ߤۭձࣾ ݸਓܾࡁ –
·ͩ40"ͱ͍͏ݴ༿ฉ͔ͳ͔ͬͨΑ͏ʹهԱ͠ ͍ͯΔ • 40"16%%*84%-ŋŋŋ
ΤϯλʔϓϥΠζ
࣌ࠔͬͨ͜ͱ • 9.-8FCαʔϏε͕όζͬͯΔΒ͍͠ ͚Ͳɺ࣮ྫ͕ݟͨΒͳ͍ – اۀɺۀγεςϜͷόοΫΤϯυͰ ಈ͍͍͔ͯͨ͠Εͳ͍͕Ұൠফඅऀ͔Β ͳ͔ͳ͔ͦΕ͕ݟ͑ͳ͔ͬͨ ࣌ͷࣗʮ40"1ͱ͔ ݬͷٕज़ͳΜͰŋŋŋ ʯ
ࠒ • ্࢘ʮҏ౻܅ʂϒϩάͬͯͬͯΔ͔ʁʯ OBPZBʮʯ
ΊͬͪΌΘΕͯΔΜ ͷ4IJCVZBQNͰͷൃදࢿྉΑΓ
#MPHͷഎޙʹ͋ͬͨ8FC"1* • ʮܰྔͳ8FCαʔϏεʯ – 344ɺ"UPNɺXFCMPH6QEBUFTQJOH • ͻͱ͖ΘΛҾ͍ͨͷ9.-31$ – 40"1ͷॳظͷυϥϑτ͔ΒΠϯεύΠΞ –
40"1ͷΤϯϕϩʔϓϔομͳͲΛऔͬͬͨ ༷ ඪ४ԽWTσϑΝΫτ ࣮ફతͳ8FCαʔϏε
݁Ռɺ8FCۀքͰىͬͨ͜͜ͱ • 8FC ɺ͋ͨΓ – "1*Λެ։͢Δͱ͔͍͍ͬ͜ தೋප
• ͯ͞ɺۀϩδοΫΛެ։͠Α͏ͥͱ͍ͬͯ – 8FCۀքʮۀϩδοΫʯͬͯԿͩ • ଟ͘എޙʹͦΕ΄Ͳ\େ͖͍ ॏཁ^ͳۀΛ͍࣋ͬͯͳ͔ͬͨ • 㱤ϩδοΫͰͳ͘σʔλΛެ։͢Δͱ͍͏ํʹྲྀΕͨ – 8FCۀքʹϝσΟΞاۀ͕ଟ͔ͬͨ͠ – #MPHχϡʔεͷ344ϑΟʔυɺ"NB[PO1SPEVDU "EWFSUJTFNFOU"1*Θ͔Γ͍͢ઌߦࣄྫ
3&45 • લճͷZPIFJ͞Μͷ • ࣌ – ࣮ਥʮ40"1ͱ͔9.-31$ͱ͔ݴ͏͚Ͳɺ݁ ہ9.-Λ)551(&5ͰΑ͘Ͷ ʯ –
ΞʔΩਥʮͦͦͦΕ3FQSFTFOUBUJPOBM TUBUFUSBOTGFSͱݴͬͯͩͳʯ গͳ͘ͱࣗͷपғͰ 3&4540"1ͳͲͱͷ ରൺͷจ຺ͰޠΒΕ࢝Ίͨ
ͦ͏͜͏ͯ͠Δ͏ͪʹ"KBY ʹ##8BUDIʹدߘͨ͠هࣄΑΓ IUUQCCXBUDIJNQSFTTDPKQDEBBMQIBHFFLIUNM
8FC"1*ͷ͜Ε·Ͱͱ͜Ε͔Β "1*NFFUVQ IUUQXXXTMJEFTIBSFOFUZPIFJXFCBQJ
8FC"1*Խ͕ਐΜͩɺ͕ • ʮ 9.- 8FCαʔϏεʯˠʮ8FC"1*ʯ – ͍ͭͷؒʹ͔ϥϕϧมΘͬͯͨ – ʙ͘Β͍
• ʮϚογϡΞοϓʯ – Ͱɺଟ͘ͷྫ˓˓ͱ˚˚ΛҰॹʹදࣔͯ͠Έ·ͨ͠ • શମͱͯ͠σʔλͷެ։ʹ͕͍͔ͬͯͨΒ • ʮۀΛߏங͢Δʯͱ͍͏ΑΓʮσʔλΛΈ߹Θͤͨʯ͚ͩ
αʔϏεͷΈ߹ΘͤͰ ۀΛߏங͢Δ • ʮ9.-8FCαʔϏεʯͷจ຺ͰޠΒΕ͍ͯͨʮ8FC αʔϏεͱ8FCαʔϏεΛΈ߹ΘͤͯۀΛ͙ʯ ͱ͍͏ߟ͑ํؒҧͬͯͳ͍ • 8FCͷ8FC"1*ͳ͔ͳ͔ͦ͜·Ͱ౸ୡͰ͖ͯ ͳ͔ͬͨ
– 5XJUUFS'BDFCPPLͳͲ8FCαʔϏε͕୲ͬͨͷ ίϯςϯπαʔϏεͰ͋Γʮۀͷ෦ʯͱҧͬͨ͠
40"Ͱ࡞ͬͨࣾαʔϏ εɺެ։ͨ͠Α SFG4UFWFZT(PPHMF1MBUGPSNT3BOU IUUQTQMVTHPPHMFDPN 3JQ3PXBOQPTUTF7FPVFTWB79 ͜͜Ͱಥવͷ
αʔϏεͱαʔϏεΛ Έ߹Θͤͯ • ετϨʔδͷ"NB[PO4ͱ˓˓ΛΈ ߹Θͤͯ – ͦΕΒ͕ϓϩάϥϚϒϧ "1*Ͱ ʹૢ࡞Ͱ ͖Δ ʮ8FCΞϓϦέʔγϣ
ϯʯͷ"1*Ͱͳ͍͕ɺ ฆΕͳ͘8FC"1*ʹΑ ΔαʔϏεͰ͋ͬͨ
"84ͱ8FC"1* • "84ͷ֤ίϯϙʔωϯτʮޙ͚Ͱ"1*Խ͞ ΕͨαʔϏεʯͰͳ͘ʮ"1*ͰαʔϏε͢ Δʯ͜ͱΛલఏʹ͞Εͨͷ – 1SPHSBNNBCMFͭʮधཁʯ͕ઌʹ͋ͬͨ – ͦ͏ͦ͏"1*ͬͯ͜Εͷ͜ͱ 8FCαΠτʹޙ͔Β෦తʹ
"1*Λੜ͢ɺͷͰͳ͘จ ࣈ௨Γ"QQMJDBUJPO 1SPHSBNNJOH*OUFSGBDF
ͦͯ͠Ϋϥυͷ࣌ŋŋŋ ˞్தɺ+40/ͱ͔ϞόΠϧͱ͔ιʔγϟϧήʔϜ 0QFO4PDJBM ͱ͔͍Ζ ͍Ζ͋Δ͚ͲׂѪ
BTB4FSWJDF $JSDMF$* $*BTB4FSWJDF
1BSTFDPN NPCJMF#BDLFOEBT B4FSWJDF
4USJQF 1BZNFOU1MBUGPSN BTB4FSWJDF
(PPHMF#JH2VFSZ #JH%BUBBTB4FSWJDF
BTB4FSWJDFͱ8FC"1* • ࡢࠓͷ BTB4FSWJDFͷଟ͘8FC )551 Λհͯ͠αʔϏεΛఏڙ͢Δ • ϓϩάϥϜͷͨΊͷ෦Ͱ͋Δͱ͍͏ੑ্֨ "1*Λ༗͢Δ
BTB4FSWJDFΛۦͯ͠ ۀΛߏங͢Δ ΠϚίί • ྫ1BSTFDPNͰϞόΠϧόοΫΤϯυΛ͍ #JH2VFSZͰϩάղੳͯ͠4USJQFͰ՝ۚ͢Δ • ΫϥυαʔϏεͷ಄ͱ͍͏ܗͰɺ͔ͭͯʮ9.- 8FCαʔϏεʯ͕ࢦ͍ͯͨ͠ੈք͕ݱ࣮ʹͳͬͨ
– 40"16%%*84%-తͳखஈͰͳ͔͕ͬͨɺͦΕΛܨ͍ͩͷ ͕8FC"1* – ˞3&45ɺͱݴͬͯͳ͍ɻ೦ͷͨΊɻ
·͞ʹ͜͜ͷ
ͲΜͳ෩ʹ͍ͬͯΔ͔ Ϣʔεέʔε
NFSHF͞ΕΔͱ ͦΕΛݕͯ͠ɺ ίʔυΛ(JU)VC͔ Βऔಘ มߋ͕ө͞Ε Δ ΠϯϑϥߏͷܧଓతσϦόϦʔ &$ʹରͯ͠ $JSDMF$*͔Β$IFG ద༻
σϦόϦ༻1VMM 3FRVFTU͕࡞͞ ΕΔ νϟοτͰΠϯϑ ϥͷ$IFGίʔυͷ ద༻Λࢦࣔ
νϟοτͰࢦࣔ
σϦόϦʔ༻ 1VMM3FRFTU͕࡞ΒΕΔ σϦόϦʔ༻ϒϥϯ νʹϝΠϯϒϥϯν ΛNFSHF͢Δ
$JSDMF$*͕ݕ࣮ͯ͠ߦ
ؒΛͭͳ͙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*ͰߏΛௐ
΄͔ʹ͜Μͳͷ • #VH4OBHŋŋŋ3BJMT+4ͷྫ֎ݕ • 4USJQFŋŋŋܾࡁ • 1BHFS%VUZŋŋŋΠϯϑϥͷΞϥʔτ • 1JOHEPNŋŋŋࢹ •
.BDLFSFMŋŋŋϦιʔεϞχλϦϯά • .BOESJMM.BJM$IJNQŋŋŋϝʔϧ • (PPHMF#JH2VFSZŋŋŋϩάղੳɺ%8) • #SPXTFS4UBDLŋŋŋΫϩεϒϥβςετ • ΄͔ʹŋŋŋ%.1 %BUB.BOBHFNFOU1MBUGPSN ͱ͔ αʔόʔαΠυͷ 3BJMTΞϓϦ͕άϧ ʔ HMVF ʹͳͬͯɺ ۀΛ͙
ൃͷస • ͔ͭͯ – Կ͔ࣗಈԽ͠Α͏͔ͳ – ख࣋ͪͷϥΠϒϥϦɺ044ͳͲΛબࢶʹҊΛ࿅Δ – Α͠ɺίʔυॻ͜͏ •
͍· – Կ͔ࣗಈԽ͠Α͏͔ͳ – ΫϥυαʔϏε୳͢ – ͋ͷαʔϏεͱ͜ͷαʔϏεΛΈ߹Θͤͯŋŋŋ – Α͠ɺίʔυΛॻ͜͏ ʮίϯςϯπͷϚογϡ ΞοϓʯͷΑ͏ͳݶΒΕͨ ঢ়گͰͷࢥߟϓϩηεͩͬ ͨͷ͕ɺͦ͏Ͱͳ͍ঢ়گͰ
8FCγεςϜͷΞʔΩςΫνϟτϨϯ υͱ1SPHSBNNBCMF8FC ͔͜͜Βໝ
ࣗతͳ Ωʔϫʔυ • NJDSPTFSWJDFT • *NNVUBCMF*OGSBTUSVDUVSF "KBY BTB4FSWJDF͕ 8FC"1*ͷൃలΛ֦େͤ͞ ͨΑ͏ʹɺ͜ΕΒͷΩʔ
ϫʔυͦΕΛޙԡ͢͠Δ ༧ײ
NJDSPTFSWJDFT h"p://mar)nfowler.com/ar)cles/microservices.html
NJDSPTFSWJDFT • ϞϊϦγοΫͳ8FCΞϓϦέʔγϣϯ͕Ͱ͔͘ͳΔͱ ϝϯςφϏϦςΟ͕མͪΔ • దͳׂͰ͘͘Γͩͯ͠8FC"1* ͳͲ Ͱܨ͛· ͠ΐ͏ •
ΤϯλʔϓϥΠζग़ͷ40"ʹରͯ͠1SBDUJDBMͳ NJDSPTFSWJDFT – 9.-8FCαʔϏεͱ8FC"1*ʹࣅͯΔ
*NNVUBCMF*OGSBTUSVDUVSF • BLB%JTQPTBCMF$PNQPOFOU – ҰՔಇͤͨ͞αʔόʔೋͱมߋ͠ͳ͍ – ඞཁʹͳͬͨΒ৽͍͠ͷ࡞ͬͯݹ͍ͷࣺͯΔ • ྫ)FSPLVͷίϯςφ
*NNVUBCMF*OGSBTUSVDUVSFͱ8FC ΞϓϦέʔγϣϯͷަՄೳੑ • *NNVUBCMFͦͷ্Ͱಈ͘8FCΞϓϦ࠶ݱՄೳͰ ͳ͚ΕͳΒͳ͍ – ͍ࣺͭͯΒΕͯɺશ͘ಉ͡ߏͰσϓϩΠՄೳʹͳΔͱ͍͏ ͜ͱ – Ωʔ(FNpMFɺ1SPDpMFɺ4IBSFE/PUIJOH
• ࠶ݱՄೳঢ়ଶΛ࣋ͨͳ͍ εςʔτϨε ਓʹͤ Δ
)FSPLV#VUUPO
)FSPLV#VUUPOͷΈ • IFSPLVDPNEFQMPZʹϦϯΫͯ͠Δ • IFSPLVDPNEFQMPZΛ)551(&5͢Δͱɺ ϦϑΝϥ͔Β(JU)VCϨϙδτϦΛಛఆ • BQQKTPOΛಡΈऔΓɺͦΕʹै͍ηογϣϯ ओͷ)FSPLVΞΧϯτʹσϓϩΠ
)FSPLV#VUUPOΛ͋Δ ࢹͰΈΔͱ • 63*Ͱ8FCΞϓϦέʔγϣϯަ – )551(&5ͱ͍͏౷ҰΠϯλϑΣʔεͰΞϓϦέʔ γϣϯͱ͍͏ϦιʔεΛަ͍ͯ͠Δ – *NNVUBCMF*OGSBTUSVDUVSFˠ4UBUFMFTTˠ63* ͕͋ΕɺަͰ͖Δ
1SPHSBNNBCMF8FC ͱͷަ͕ࠩͳΜͱͳ ͘ݟ͖͑ͯ·͢ΑͶ
·ͱΊ • 8FC"1*ɺσʔλΛެ։͢ΔͨΊͷͷ͔Βɺຊདྷ ͷҙຯͷ"1*ʹ • ͔ͭͯʮ9.-8FCαʔϏεʯ͕ࢦ͍ͯͨ͠ੈք͕ ࣮ݱ͞Εͨ ͍ۙͮͨ –
BTB4FSWJDF • 8FCγεςϜͷΞʔΩςΫνϟͷਐԽ͕ࠓޙ͞Βʹͦ ΕΛޙԡ͢͠Δ – NJDSPTFSWJDFT*NNVUBCMF*OGSBTUSVDUVSF
5IBOLT ֆCZ͋ΘΏ͖