$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
マイクロサービスの思想から捉える Backends for Frontendsとその類似パター...
Search
qsona
June 07, 2018
Technology
19
26k
マイクロサービスの思想から捉える Backends for Frontendsとその類似パターン / Backends for Frontends and its similar pattern from the microservices perspective
UIT#3 The “Backends for Frontends” sharing
qsona
June 07, 2018
Tweet
Share
More Decks by qsona
See All by qsona
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
4
550
Backend エンジニア視点からの GraphQL / GraphQL from a perspective of backend engineer
qsona
28
8.8k
3 Practices about Service-to-Service GraphQL Ruby Client
qsona
1
1.1k
いかにして GraphQL を組織に導入するか (新規開発編) / how we introduce GraphQL on scratch development
qsona
6
4.1k
Well-organized Transaction Script - リファクタリングの妥協的手法 -
qsona
4
1.5k
GraphQL と Prisma から考える次のN年を見据えた技術選定 / Architecture decision for the next N years at StudySapuri
qsona
25
15k
最高のマスターデータ管理手法考察 & VSCode Extension を活用した話 / developing masterdata management tool by using vscode extension
qsona
9
6.6k
GraphQL を活用したスキーマ駆動開発の実践 / schema-driven development with GraphQL
qsona
6
5.7k
GraphQL を利用したアーキテクチャの勘所 / Architecture practices with GraphQL
qsona
37
16k
Other Decks in Technology
See All in Technology
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
2
190
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
1
400
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
400
普段使ってるClaude Skillsの紹介(by Notebooklm)
zerebom
8
2k
さくらのクラウド開発ふりかえり2025
kazeburo
2
950
Amazon Connect アップデート! AIエージェントにMCPツールを設定してみた!
ysuzuki
0
130
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
320
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
200
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
150
20251203_AIxIoTビジネス共創ラボ_第4回勉強会_BP山崎.pdf
iotcomjpadmin
0
130
Introduce marp-ai-slide-generator
itarutomy
0
110
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
19
7.5k
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
0
44
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
A Tale of Four Properties
chriscoyier
162
23k
What's in a price? How to price your products and services
michaelherold
246
13k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
27
Building an army of robots
kneath
306
46k
Building AI with AI
inesmontani
PRO
1
570
Transcript
ϚΠΫϩαʔϏεͷࢥ͔Βଊ͑Δ #BDLFOETGPS'SPOUFOETͱͦͷྨࣅύλʔϯ ٱଠ!RTPOB גࣜձࣾ'J/$ 6*55IFl#BDLFOETGPS'SPOUFOETzTIBSJOH
ࣗݾհ 2 • ໊લٱଠ !RTPOB • גࣜձࣾ'J/$ • ओʹαʔόαΠυΤϯδχΞ
͓खॊΒ͔ʹʂ • #''ྺ ʙ • .JDSPTFSWJDFT.FFUVQओ࠵
ΞδΣϯμ 3 ‣ ষ#''ͱɺͦͷҐஔ͚ͮͱత ‣ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ
ΞδΣϯμ 4 ▾ ষ#''ͱɺͦͷҐஔ͚ͮͱత ‣ #''ͱʁ ‣ #''ͷཱͪҐஔ ‣ #''ͷతɾղܾ͢Δ՝
‣ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ
#''ͱʁ 5 • ࢲݟ#'' #BDLFOETGPS'SPOUFOET ʹ গ͠༻ޠͷࠞཚ͕͋ΔΑ͏ʹࢥ͏ • ʮ4FSWFSTGPS'SPOUFOETʯ͕ΑΓ࣮ଶʹ͍ۙ •
'SPOUFOE#BDLFOEཧతͳྨ • $MJFOU4FSWFSཧతͳྨ
#''ͷཱͪҐஔ 6 • ཧత'SPOUFOEʹҐஔ͠ɺཧతʹ4FSWFSͰ͋Δ
#''ͷతɾղܾ͢Δ՝ 7 • ϚΠΫϩαʔϏεͷ"1*܈Λɺ6*͚ʹ߹͢Δ • ͜ͷൃදͰ͜ΕΛ۷ΓԼ͛Δ • ͦͷଞʹ͍Ζ͍Ζ͋Δ • Ωϟογϡ
6*ϨΠϠͷ"#ςετ FUD • ࠓ͍ΖΜͳࣄྫ͕ݟΕΔͣʂ
ΞδΣϯμ 8 ‣ ষ#''ͱɺͦͷҐஔ͚ͮͱత ▾ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ϚΠΫϩαʔϏεͱʁ ‣ ΫϥΠΞϯτͱϚΠΫϩαʔϏεͷؔ
‣ ϚΠΫϩαʔϏεͷ౷߹ͷํ๏ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ
ϚΠΫϩαʔϏεͱʁ 9 • ڠௐͯ͠ಈ࡞͢ΔɺখنͰࣗతͳαʔϏε • ֤ϏδωεΛ୲͢ΔνʔϜ͕ɺಠཱʹϦϦʔεαΠΫ ϧΛ࣋ͪɺߴʹ1%$"Λճ͢͜ͱ͕Ͱ͖Δ • 'J/$ͷαʔϏεΛྫʹͱͬͯઆ໌͢Δ •
'J/$ݸͷϚΠΫϩαʔϏεΛӡ༻த
10 'J/$ͷϓϩμΫτ ʙϔϧεέΞɾඒ༰ʹಛԽͨ͠&$αΠτʙ Ҩࢠใ ݂ӷݕࠪ݁Ռ ݈σʔλ νϟοτ ͍߹Θͤ ߪങཤྺ ࠂใ
ϩάΠϯ࣌ؒ ར༻ස ੜମใɾ׆ಈσʔλ ҩྍɾݕࠪσʔλ ߦಈཤྺ ͓Έ าɾ׆ಈྔ ݂ѹ ମௐɾؾ ৯ࣄ࣌ؒɾ༰ ਭɾब৸࣌ؒ ମॏɾମ ੜཧ ੜ׆श׳ ʙϨγϐϑΟοτωεϥΠϑϋοΫͷಈըίϯςϯ πʙ ࢟ ʙ'J/$๏ਓɾ݈อ͚ΣϧωειϦϡʔγϣϯʙ
'J/$ͷϓϩμΫτͱϚΠΫϩαʔϏε 11 • ֤ϓϩμΫτ͕ɺߋʹ༷ʑͳػೳΛแ͍ͯ͠Δ • ྫ'J/$ΞϓϦ • ϥΠϑϩά า ਭ
FUD • ϑΟοτωεத৺ͷಈըϝσΟΞ • ίϛϡχςΟػೳ • QVTI௨ ΦϯϘʔσΟϯά ͳͲ • ֤ػೳ૬ޓʹ࿈ܞ͍ͯ͠Δ • ྫา͘ͱϙΠϯτ͕Β͑Δ'J/$ϞʔϧͰ͑Δ • "1*࿈ܞඇಉظΠϕϯτ࿈ܞ
'J/$ͷϓϩμΫτͱϚΠΫϩαʔϏε 12 • ֤ػೳɺಠཱͯ͠େ͖ͳϏδωεʹҭ͍ͯͨ • 'J/$ͷϓϩμΫτͷػೳʹɺ୯ମͰࣄۀʹͳΓ͏Δ ͷ͕ͨ͘͞Μ͋Δ • ͦΕΒΛಠཱͯ͠αʔϏεʹΓग़͢͜ͱͰɺνʔϜ͕ ࣗɾಠཱͯ͠։ൃϦϦʔεαΠΫϧΛճ͠ɺߴʹ
1%$"͢Δ͜ͱ͕Ͱ͖Δ
• ϞϊϦγοΫαʔϏεͷ߹ • ΫϥΠΞϯτOαʔϏε ΫϥΠΞϯτͱαʔϏεͷؔ 13
• ϚΠΫϩαʔϏεͷ߹ • ΫϥΠΞϯτONαʔϏε ΫϥΠΞϯτͱαʔϏεͷؔ 14
• ͜ͷਤͷΑ͏ʹɺΓͱΓ͢ΔͱͲ͏ͳΔ͔ʁ ϚΠΫϩαʔϏεͷ౷߹ͷํ๏ 15
ΓͱΓ͢Δ 16 • ΫϥΠΞϯτʹछʑͷෳࡶ͕͋͞Δ • ༷ʑͳϗετΛΒͳ͚ΕͳΒͳ͍ • ը໘Λߏ͢Δͷʹෳճ"1*ϦΫΤετ͕ඞཁ •
୯Ұͷ#BDLFOEͰ͋Εɺ(SBQI2-͕Ұͭͷղܾࡦ • ෳͷϚΠΫϩαʔϏεͷݺͼग़͠ґવͱͯ͠ • ղܾࡦதؒʹαʔόΛஔʁ
"1*(BUFXBZύλʔϯ 17 • ͯ͢ͷαʔϏεΛू͠ɺ'SPOUFOE͚ʹఏڙ͢Δ ϨΠϠ
"1*(BUFXBZύλʔϯ 18 • ,POHͳͲͷ"1*(BUFXBZ͕͋Δ • "1*ूͷଞʹɺೝূɺྲྀྔ੍ޚͳͲΛͬͯ͘ΕΔ • جຊతʹ#BDLFOEͷΤϯδχΞ͕ཧ͢Δͷ
"1*(BUFXBZύλʔϯ 19 • "1*(BUFXBZʹಠࣗͷϩδοΫ࣋ͨͤʹ͍͘ • ϩδοΫΛ࣋ͭͱɺڊେͳ݁߹ϨΠϠʹͳΓɺΫϥΠΞϯ τͷ૿Ճʹରͯ͠εέʔϧ͠ͳ͍ • ༷ʑͳϩδοΫ͕ฆΕࠐΈ͘͢ͳΓɺ݁ՌతʹϚΠΫϩ
αʔϏεͷಠཱੑΛ્͍͢͠ • 'SPOUFOE͕ࣗ༝ʹ͑ΔϨΠϠͰͳ͍ • ෳͷϦιʔεΛϦΫΤετͰฒྻʹऔಘɺ Ͱ͖Δ ͋Δ • ෳͷϦιʔεΛϚʔδͯ͠ฦ͢ɺͳͲͰ͖ͳ͍
#''ύλʔϯ 20 • ΫϥΠΞϯτ͝ͱʹɺར༻͢ΔαʔϏεΛू͢Δ
#''ύλʔϯ 21 • "1*(BUFXBZύλʔϯͱࣅͯඇͳΔͷ • αʔϏεଆ͕ूͯ͠ఏڙ͢ΔͷͰͳ͘ɺ ϑϩϯτΤϯυଆ͕ࣗͰબΜͰू͍ͯ͠Δ • ϚΠΫϩαʔϏεͷࣗੑ͕อͨΕΔ
• ϑϩϯτΤϯυͷࣗ༝͕ߴ͍
'SPOUFOE❤#''❤#BDLFOE
#''ͷҙ 23 • ຊདྷόοΫΤϯυͰΔ͖ϩδοΫΛ #''ʹ࣋ͨͳ͍Α͏ʹ͢Δ • ྑ͘ͳ͍ྫ#''Ͱߋ৽ॲཧΛΦʔέετϨʔγϣϯ • ͍ͣΕ͔ͷόοΫΤϯυαʔϏε͕Ұٛతʹߋ৽ॲཧΛड ͚ɺͦͷαʔϏε͕ඇಉظΠϕϯτΛൃߦ͠ଞαʔϏεʹ
ͤ͞ΔͱΑ͍ • ϚΠΫϩαʔϏεශ݂ʹҙ • ۃྗόοΫΤϯυʹدͤΔҙࣝ
͜͜Ͱએ 24 • ٕज़ॻయͰʮ.JDSPTFSWJDFTBSDIJUFDUVSFΑΖͣຊʯ ͱ͍͏ಉਓࢽΛग़͠·ͨ͠ • 'J/$ͷΤϯδχΞਓͷڞஶ • ඇಉظΞʔΩςΫνϟ.JDSP'SPOUFOETͷͳͲΛղઆ ͍ͯ͠·͢ʂ
ΞδΣϯμ 25 ‣ ষ#''ͱɺͦͷҐஔ͚ͮͱత ‣ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ ‣ 'J/$ͷ৽ࣄྫ#''GPSJ04"OESPJE"QQ
‣ .JDSP'SPOUFOET
ΞδΣϯμ 26 ‣ ষ#''ͱɺͦͷҐஔ͚ͮͱత ‣ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ ‣ 'J/$ͷ৽ࣄྫ#''GPSJ04"OESPJE"QQ
‣ .JDSP'SPOUFOET
ߏਤ 27
J04 "OESPJEͰͭͷ#'' 28 • J04"OESPJEͰجຊతʹಉ͡ΞϓϦΛఏڙ͍ͯ͠Δ • ػೳɺը໘ߏɺભҠͳͲಉ͡ • ࡉ͔͍6*ϓϥοτϑΥʔϜ͝ͱʹҟͳΔ͕ɺ ͜Ε$MJFOUଆ͕୲͢Δɻ#''ͷͰͳ͍
• #''͕୲͢ΔϨΠϠɺΉ͠Ζڞ௨Խ͔ͨͬͨ͠ • %PNBJO%SJWFO%FTJHOͰݴ͏ͱ͜Ζͷ 3FQPTJUPSZͱ ͯ͠%PNBJO0CKFDUΛฦ͢ͱ͜Ζ·ͰΛຊ୲͍ͨ͠ • ݴޠͷน·ͨ͛ͳ͍ͷͰશͳ%PNBJO0CKFDUΛฦ͢ͷ ແཧ͕ͩɾɾɾ
8IZH31$ 29 • 31$ܗࣜͷݺͼग़͠ʹ͔ͨͬͨ͠ • ਖ਼֬ʹʮ3&45GVMආ͚͔ͨͬͨʯ͔ • ఏڙͷత͕୯ҰͰ͋ΓɺΫϥΠΞϯτΛڧ͘ҙࣝͨ͠"1* ʹͯ͠ͳ͍ Ή͠Ζ͢Δ͖
• 3&45GVMతͳ"1*ʹ͢Δͱɺ$MJFOUͰ+40/ΛϚοϓ͢Δίʔ υ͕ଟ͘ඞཁʹͳΔ • J04"OESPJEͰͷ࣮ͷࠩΛͳΔ͘ͳ͍ͨ͘͠ • ʮ#''31$తͳ"1*ఏڙΛ͖ͩ͢ʯͱ͍͏ࡶͳఏىΛ ͓ͯ͘͠ͷͰɺ࠙ձͱ͔Ͱ͍ٞͨ͠ • ܕཉ͔ͬͨ͠ 1SPUPDPM#VGGFST
8IZ,PUMJO 30 • 'SPOUFOEͷΤϯδχΞ͕ॻ͘͜ͱΛڧ͘ҙ͍ࣝͯ͠Δ • "OESPJEͰ,PUMJOΛ࠾༻͍ͯ͠Δ • J04 4XJGU ͔Βͷֶशίετ͍
• ʮฒྻॲཧʯͷཁ݅ΫϦΞͰ͖Δ • $PSPVUJOFTBSFFYQFSJNFOUBMJO,PUMJO • ฒྻॲཧɺ#''Ͱ΄΅ඞਢཁ݅Ͱ͋Δ • ฒྻॲཧͰ͍͑(P/PEFKTͷ͕ݱঢ়্
ΞδΣϯμ 31 ‣ ষ#''ͱɺͦͷҐஔ͚ͮͱత ‣ ষ#''ͱϚΠΫϩαʔϏεͷؔੑ ‣ ষ#''ͱͦͷྨࣅύλʔϯͷ࣮ફ ‣ 'J/$ͷ৽ࣄྫ#''GPSJ04"OESPJE"QQ
‣ .JDSP'SPOUFOET
ڀۃͷϚΠΫϩαʔϏε 32 • αʔϏε͕ಠཱͷσϓϩΠαΠΫϧΛ࣋ͪɺ Ϗδωεͷ1%$"ΛߴʹճͤΔ • ϏδωεόοΫΤϯυ͚ͩͰͳ͍ • 6*Ϗδωεʹؚ·ΕΔͣ •
νʔϜͷதʹ#BDLFOE୲ 'SPOUFOE୲͕͍ͯ ڠྗ͍ͯ͠Δͷ͕ཧ Ή͠Ζී௨ʁ • #'''SPOUFOEνʔϜͷ͚࣋ͪͩͲɺ 'SPOUFOEνʔϜͦͦϚΠΫϩαʔϏεͷཧͱ ͢Δʂ
αʔϏε͕6*ఏڙʁ 33 • ϚΠΫϩαʔϏε͕6*ίϯϙʔωϯτΛఏڙ͢Δ • $MJFOU͕ͦΕΛ౷߹͢Δ
JGSBNF 34 • JGSBNFΛར༻͢ΕͰ͖Δ • ֤αʔϏε௨ৗͷ)5.-Λఏڙ͢Δ • QPTU.FTTBHFͰΓͱΓ͢Δ
ڀۃͷ.JDSP'SPOUFOET 35 • ͦΕ8FC$PNQPOFOUTͰͰ͖ΔΑ • ֤αʔϏε$VTUPN&MFNFOUTΛఏڙ͢Δ • $VTUPN&WFOUTͰΓͱΓ͢Δ
.JDSP'SPOUFOETͷͱରࡦ 36 • 6* 69 ͷҰ؏ੑΛ୲อ͢Δͷ͕͍͠ • ΨΠυϥΠϯ6*ϥΠϒϥϦͰରॲ • খ͞ͳ'SPOUFOEνʔϜ͕
$MJFOUͱελΠϧΨΠυΛϝϯςφϯε͢Δ
.JDSP'SPOUFOETͷ͓ؾ࣋ͪ 37 • αʔϏεͷಠཱੑͱҰ؏ੑຊ࣭తʹτϨʔυΦϑ • τϨʔυΦϑΛཧղ͠ɺͦΕͧΕͰదͳબΛ • #''ͱͷϋΠϒϦουख๏औΕΔ • αʔϏεͷڥքͰ6*͕໌֬ʹ͔ΕΔͷɺ
αʔϏε͕6*࣋ͭ • ͦ͏Ͱͳ͍ͷ#''Ͱ"1*߹
ϋΠϒϦουख๏ 38
8FCҎ֎ͷ 39 • ωΠςΟϒΞϓϦͰʁ • جຊతʹ αʔϏε͕6*ΛఏڙͰ͖ͳ͍ • $MJFOUͷϞδϡʔϧԽΛۃྗϚΠΫϩαʔϏεͷ୯Ґʹ ߹Θ͍ͤͯ͘
• ߹ʹΑͬͯ8FC7JFX͋Δ
·ͱΊ 40 • ϚΠΫϩαʔϏεɺ֤ϏδωεΛಠཱͯ͠ߴʹ1%$" Λճ͍ͯͨ͘͠Ίͷख๏ • #''ɺϚΠΫϩαʔϏεͷ"1*౷߹Λߦ͏ • ֤'SPOUFOEͷॴ༗ͱͯ͠࡞Δ͜ͱͰɺ#BDLFOEͷಠཱੑ Λ୲อͨ͠··'SPOUFOE͕ࣗ༝ʹѻ͑Δ
• #''31$తͳ"1*ఏڙΛ͖ͩ͢ ࡶͳఏى • ͞ΒʹϏδωεͷಠཱΛߴΊΔख๏͕͋ΓɺτϨʔυ Φϑ͕ଘࡏ͢Δ