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
Monolithic Architecture is Dead
Search
potato2003
August 29, 2014
Technology
4
760
Monolithic Architecture is Dead
社内 TeckTalk 資料 - Microservices の紹介
potato2003
August 29, 2014
Tweet
Share
Other Decks in Technology
See All in Technology
A2Aのクライアントを自作する
rynsuke
1
160
~宇宙最速~2025年AWS Summit レポート
satodesu
1
1.7k
Oracle Audit Vault and Database Firewall 20 概要
oracle4engineer
PRO
3
1.7k
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
120
Agentic Workflowという選択肢を考える
tkikuchi1002
1
470
急成長を支える基盤作り〜地道な改善からコツコツと〜 #cre_meetup
stefafafan
0
110
Кто отправит outbox? Валентин Удальцов, автор канала Пых
lamodatech
0
320
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
610
原則から考える保守しやすいComposable関数設計
moriatsushi
3
530
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
4
630
解析の定理証明実践@Lean 4
dec9ue
0
160
実践! AIエージェント導入記
1mono2prod
0
150
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Designing for humans not robots
tammielis
253
25k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
Being A Developer After 40
akosma
90
590k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Producing Creativity
orderedlist
PRO
346
40k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Transcript
Monolithic Architecture is Dead
ƺȉǕ✣ǣǙǞƑԚ௹ HTTPD Browser • μΠΞϧΞοϓଓ • ίϯςϯπςΩετத৺ • ςΩετΛฦ͚ͩ͢ͷγϯϓϧͳΞʔΩςΫνϟ
1990ޙʙυοτίϜόϒϧ่յޙ PHP Browser • ܝࣔ൘ɺϒϩάɺECαΠτɺνϟοτͱ͔ • ͱΓ͋͑ͣPHPͱ͔MySQL͋ΕͳΜͱ͔ͳͬͨ MySQL
Web2.0 ʙ 2000ޙ Rails Browser • SNSɺCGMɺಈըαʔϏε ʙ ͳΜ͔͍ͬͺ͍ •
AjaxɺFlash ! • Rails ͕͋ΕͳΜͱ͔ͳͬͨ • PHP ͰϑϨʔϜϫʔΫΛ࡞ΔͱḿͬͨΒ͍͠ • ͳ͔ͥɺΈΜͳ࡞ͬͯͨ MySQL Memcached
࠷ۙ Rails Browser MySQL Redis Elasticsearch Fluenttd Hadoop Android iOS
ϓογϡ௨ɺWebSocketͰϦΞϧλΠϜ௨৴ɺϒϥβ༻ʹ HTMLͭͬͨ͘ΓɺεϚϗΞϓϦ༻ʹAPIͭͬͨ͘Γɺݕࡧػೳ ఏڙͨ͠ΓɺϏοΫσʔλ࣌ͩ͠ϩΪϯάͨ͠Γɺະొͷ ϢʔβʔʹIDৼͬͯཧͨ͠ΓɺOpenIDɺ2ཁૉೝূɺ WebRTCɺࣾγεςϜͱ௨৴ͨ͠Γɺɺɺɺɺɺɺɺɺ
࠷ۙ Rails Browser MySQL Redis Elasticsearch Fluenttd Hadoop Android iOS
ϓογϡ௨ɺWebSocketͰϦΞϧλΠϜ௨৴ɺϒϥβ༻ʹ HTMLͭͬͨ͘ΓɺεϚϗΞϓϦ༻ʹAPIͭͬͨ͘Γɺݕࡧػೳ ఏڙͨ͠ΓɺϏοΫσʔλ࣌ͩ͠ϩΪϯάͨ͠Γɺະొͷ ϢʔβʔʹIDৼͬͯཧͨ͠ΓɺOpenIDɺ2ཁૉೝূɺ WebRTCɺࣾγεςϜͱ௨৴ͨ͠Γɺɺɺɺɺɺɺɺɺ
ະདྷ Rails Browser MySQL Redis Elasticsearch Fluenttd Hadoop Android iOS
Robot
ະདྷ Rails Browser MySQL Redis Elasticsearch Fluenttd Hadoop Android iOS
Robot ϩϘοτɺΣΞϥϒϧσόΠεɺWindows PhoneɺFire OSɺ! Firefox OS Έ͍ͨͳ৽͍͠σόΠεͨͪͷొɺطଘOSͷΞο ϓάϨʔυ(iOS, Android)ɺطଘٕज़༷ͷ֦ு(HTMLɺ JavaScriptɺHTTP)ɺ৽ٕज़ɺ৽धཁɺͬͱͬͱάϩʔόϦ θʔγϣϯɺɺɺɺɺɺɺɺɺ
Rails! Browser MySQL Redis Elasticsearch Fluenttd Hadoop Android iOS Robot
ϩϘοτɺΣΞϥϒϧσόΠεɺWindows PhoneɺFire OSɺ! Firefox OS Έ͍ͨͳ৽͍͠σόΠεͨͪͷొɺطଘOSͷΞο ϓάϨʔυ(iOS, Android)ɺطଘٕज़༷ͷ֦ு(HTMLɺ JavaScriptɺHTTP)ɺ৽ٕज़ɺ৽धཁɺͬͱͬͱάϩʔόϦ θʔγϣϯɺɺɺɺɺɺɺɺɺ ະདྷ
ιϑτΣΞෳࡶԽ͍ͯ͘͠!
• ΞʔΩςΫνϟෳࡶԽ͍͚ͯ͘͠ͲɺৗʹมԽ ͷରԠ͕ٻΊΒΕΔ ! ! ! ! ! • ͔͠͠ංେԽͨ͠ΞϓϦέʔγϣϯมԽʹऑ͍
• มԽʹऑ͍ͱɺαʔϏε͕ಷ͘ͳΔ
͢ΔαʔϏεͷαΠΫϧ ࣮ ֶश Ծઆ
! ! ! ! • αʔϏεϓϩάϥϛϯάͱಉ͡ • ϓϩάϥϜ1ճͰॻ͍ͯɺᘳͳΜͯͳ͍ • ίʔυॻ͍ͯɺΤϥʔग़ͯɺमਖ਼ͯ͠ɺֶशͯ͠ɺΛ܁Γฦ͠ਖ਼͍͠ίʔ
υʹ͍ͯ͘͠ • αʔϏεมߋͯ͠Έͯɺܭଌͯ͠ɺֶशͯ͠ɺ܁Γฦ ͍ͯͯ͘͠͠ ࣮ ֶश Ծઆ
! ! ! ! • ϓϥάϥϛϯάͰίʔυॻ͍ͯɺΤϥʔग़ͯɺमਖ਼ ͯ͠ɺֶश ! • ͔͠͠ɺԾʹίϯύΠϧ͕1͔͔࣌ؒΔͱɺमਖ਼ͷα
ΠΫϧ͕ಷΓɺʹͱ͕͔͔ͯ࣌ؒΔ ࣮ ֶश Ծઆ
αʔϏεಉ͡ զʑαʔϏεΛͤ͞ΔͨΊɺมߋʹ ڧ͍ΞʔΩςΫνϟ͕ඞཁ ࣮ ֶश Ծઆ αΠΫϧΛԿɺૉૣ͘ճ͢͜ͱͰɺૉ ૣ͘͢Δ
ΞʔΩςΫνϟͷ͜Ε͔Β! Microservices
͜Ε·ͰɺෳࡶԽʹରԠ͖ͯͨ͠ • lߦͷίʔυΛόάແ͠Ͱॻ͘͜ͱ؆୯͚ͩͲɺສߦͷίʔ υΛόάແ͠Ͱॻ͘͜ͱ͍͠ɻz ( by Matsumoto Yukihiro ) !
• ؔ৺ࣄΛؔɺΫϥεɺϞδϡʔϧʹͯ͠ૄ݁ ߹ʹ͖ͯͨ͠
ΞʔΩςΫνϟΛɺؔ৺ࣄͰ͢Δ App API Notification! Service Search Service Browser Android iOS
Browser Android iOS
Microservices • খ͍͞ΞϓϦέʔγϣϯʹׂ͢Δߟ͑ํɺੲ͔Β͋Δ • αʔϏεࢦΞʔΩςΫνϟ • AmazonɺTwitterɺCookpadɺฐࣾͷϓϩδΣΫτͳͲ • ͍͜͠ͱͰͳ͍ !
• ͦ͜ʹ࠷ۙɺϚʔςΟϯɾϑΝϥʔ໊͕લΛ ͚ͭͨ
API Browser MySQL Redis Elasticsearch Android iOS Notification Service Search
Service খ͍͞ΞϓϦέʔγϣϯʹׂ
• ৽ਓѲ͢Δ͜ͱ͕গͳ͘ɺ͙͢։ൃࢀՃͰ͖Δ • ʑͷ git ϩάΏͬ͘ΓͰѲ͍͢͠ ! • ಠཱ͓ͯ͠Γɺখ͘͞อͨΕΔ͜ͱͰมߋΛڪΕͳ͍ ֤ʑΛখ͍͞νʔϜͰಠཱͯ͠։ൃͰ͖Δ
API Notification! Service Search Service
API Browser MySQL Redis Elasticsearch Android iOS Notification Service Search
Service ֤ʑʹద࣮ͨ͠Λબ HTML Render WebSocket
API Notification Service Search Service ֤ʑʹݴޠɺϑϨʔϜϫʔΫͷ! όʔδϣϯΞοϓ͕Մೳ • ංେԽͨ͠ιϑτΣΞͷόʔδϣϯΞοϓਏ͍ •
εϞʔϧεςοϓͰਫ਼ਆతʹ͍͞͠
͋ͷ ϚʔςΟϯɾϑΝϥʔ ͕ • ϚʔςΟϯɾϑΝϥʔ͕هࣄʹͯ͠ɺݴ༿Λఆٛ ! • ΤϯλʔϓϥΠζΞϓϦέʔγϣϯύλʔϯຊ • ϦϑΝΫλϦϯάຊ
• Agile Manifesto • ͱ͔ͷਓ
͋ͷ ThoughtWorks • ٕज़ಈΛ·ͱΊͨ Technology Radar (JULY 2014) Ͱհ
• ͋ͷ ϚʔςΟϯɾϑΝϥʔ ࡏ੶
ٕज़ੈքΛม͖͑ͯͨ • पғʹ͋Δͷɺٕͯ͢ज़Ͱ࡞ΒΕ͍ͯΔ ! • ٕज़ɺٕज़ऀੈքΛม͖͑ͯͨ ! • ٕज़ʹҰ൪ৄ͍͠ΤϯδχΞ͕ɺෳࡶԽɺංେԽͨ͠ ιϑτΣΞͷมߋΛڪΕͯɺੈքΛม͑ΒΕͳ͍
! • มԽʹڧ͍ΞʔΩςΫνϟɺαʔϏεΛͤ͞ɺ ੈքΛม͍͑ͯ͘ୈҰาͰ͢
·ͱΊ • ະདྷෳࡶԽ͍ͯ͘͠ ! • ͜Ε·ͰΫϥεɺϞδϡʔϧʹؔ৺ࣄΛ͖ͯ͠ ͨΑ͏ʹɺΞʔΩςΫνϟͰ͢Δ ! • มߋʹڧ͍ΞʔΩςΫνϟΛ࡞ΓɺੈքΛม͍͑ͯ
͘
Thank you
Photos • https://www.flickr.com/photos/sophiadphotography/7585744722/in/photolist-68dujb-46W9RR-bRCPZM-iA2uir-4715E7-sPYJ8-tbUSE-471ePb-cyjVC7- gpKtiB-8vDKm8-oTUvZ-4rKrMD-6RroHF-BJuEk-46W9vM-56u5fn-iA2HmQ-dPjyLR-cm77s-iA2Vmn-4JC1fH-iA3cPU-689o3H-46W9hk-guANK3-2Qm8A5- hXvYqd-8vGMsE-2usKdV-nRWxvT-dz4vQ5-8vGNuA-A5eo-5yF9qU-bRCPBr-iA3eUH-8vDLzB-6f878H-6fch8J-6f87rz-6f87Jz-eeg1i9-46Zy7J- imrYkz-2Qm7Ku-5bj1Uf-5wLEJg-5GMyZV-iA3qH6 ! • https://www.flickr.com/photos/26335052@N06/14182713587/in/photolist-cFzfnJ-nBh7CB-nEf5rr-gkk69-9py3t-b7ynoa-dvN574-5syy- nzCAmh-69rkbP-6wmUYN
! • https://www.flickr.com/photos/rtarga/93573864/in/photolist-9gAfu-5BKjGR-bqjC46-apxGy8-4JjgYK-6WBQhd-8KZeDC-cA4NMm-j9fm-71Jvbc-8P5iQ8- y5Z88-cA4Pz5-7xgMsZ-8vRV3A-5nJkm9-6r8Vx4-8P5iPX-cA4PK7-5rvCYK-92Eao-mEbvW-adswkD-7GP2Eq-cXMkF-8Dww5Q- e4vrS1-8DtpUk-8DwwBN-8DtpMv-9qu92s-cA4Ni7-L1Bm7-97t61R-7TpmiZ-7xgMs8-ouUHe-c3V8sC-hPsU8w-cA4Q8E-5rvCWM-71NvsC-eSpCSL- buCJsa-5yzYaW-3BtQGi-fGhDM-uTKQj-4HPHHB-8Hwdfy