Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
クラウドサービスの Web API とそのユースケース #apijp
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Naoya Ito
August 29, 2014
Technology
31k
64
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クラウドサービスの Web API とそのユースケース #apijp
Naoya Ito
August 29, 2014
More Decks by Naoya Ito
See All by Naoya Ito
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
4.5k
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
13
4.8k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
8.1k
Functional TypeScript
naoya
19
6.9k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
77
38k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.9k
20230227-engineer-type-talk.pdf
naoya
91
87k
関数型プログラミングと型システムのメンタルモデル
naoya
64
110k
TypeScript による GraphQL バックエンド開発
naoya
29
38k
Other Decks in Technology
See All in Technology
Kiro Crewで「みのるん式」仕事術やってみた
minorun365
PRO
3
990
sue445's proposals 2026
sue445
0
120
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
2
370
【データ横丁主催】AI エージェント時代のTranslytical Data Platform
shisyu_gaku
0
190
導入から定着へ ~コーディングエージェントを日常業務に組み込む実践知~
yukisakai1225
0
150
Let's Change Our World—Again
snoozer05
PRO
4
280
国際カードブランドルール変更に伴うクレジットカード決済取引仕様変更について
k1style
0
120
Claude の新機能を、 出た日に触って社内に届けるまで
rfdnxbro
1
200
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
160
Codex を使った障害対応机上演習の実際
orgachem
PRO
0
230
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
3
250
データエンジニアの次の戦場は "プロセスエンジニアリング"
sansantech
PRO
1
150
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
The untapped power of vector embeddings
frankvandijk
2
1.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
The Cost Of JavaScript in 2023
addyosmani
55
10k
My Coaching Mixtape
mlcsv
0
360
How to Talk to Developers About Accessibility
jct
2
590
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
Fireside Chat
paigeccino
43
4.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Documentation Writing (for coders)
carmenintech
77
5.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
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͋ΘΏ͖