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
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
17
5.6k
Functional TypeScript
naoya
15
6.2k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
71
34k
シェルの履歴とイクンリメンタル検索を使う
naoya
8
3.2k
20230227-engineer-type-talk.pdf
naoya
89
76k
関数型プログラミングと型システムのメンタルモデル
naoya
62
100k
TypeScript による GraphQL バックエンド開発
naoya
28
35k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
144
60k
Other Decks in Technology
See All in Technology
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
13k
How Do I Contact Jetblue Airlines® Reservation Number: Fast Support Guide
thejetblueairhelpsupport
0
150
Maintainer Meetupで「生の声」を聞く ~講演だけじゃないKubeCon
logica0419
0
110
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
3
1.5k
クラウド開発の舞台裏とSRE文化の醸成 / SRE NEXT 2025 Lunch Session
kazeburo
1
590
アクセスピークを制するオートスケール再設計: 障害を乗り越えKEDAで実現したリソース管理の最適化
myamashii
1
670
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
230
Transformerを用いたアイテム間の 相互影響を考慮したレコメンドリスト生成
recruitengineers
PRO
2
440
Four Keysから始める信頼性の改善 - SRE NEXT 2025
ozakikota
0
420
VS CodeとGitHub Copilotで爆速開発!アップデートの波に乗るおさらい会 / Rapid Development with VS Code and GitHub Copilot: Catch the Latest Wave
yamachu
3
460
ロールが細分化された組織でSREは何をするか?
tgidgd
1
420
三視点LLMによる複数観点レビュー
mhlyc
0
230
Featured
See All Featured
Producing Creativity
orderedlist
PRO
346
40k
Balancing Empowerment & Direction
lara
1
450
Making the Leap to Tech Lead
cromwellryan
134
9.4k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Code Review Best Practice
trishagee
69
19k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
How to Ace a Technical Interview
jacobian
278
23k
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͋ΘΏ͖