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
小さなチーム 大きな仕事 - 個人開発でAIをフル活用する
himaratsu
0
130
退屈なことはDevinにやらせよう〜〜Devin APIを使ったVisual Regression Testの自動追加〜
kawamataryo
4
820
夢の印税生活 / Life on Royalties
tmtms
0
290
Claude Code x Androidアプリ 開発
kgmyshin
1
630
ドキュメントはAIの味方!スタートアップのアジャイルを加速するADR
kawauso
3
420
株式会社ARAV 採用案内
maqui
0
380
AIエージェントの開発に必須な「コンテキスト・エンジニアリング」とは何か──プロンプト・エンジニアリングとの違いを手がかりに考える
masayamoriofficial
0
440
Go で言うところのアレは TypeScript で言うとコレ / Kyoto.なんか #7
susisu
7
2k
トヨタ生産方式(TPS)入門
recruitengineers
PRO
4
890
イオン店舗一覧ページのパフォーマンスチューニング事例 / Performance tuning example for AEON store list page
aeonpeople
2
330
JuniorからSeniorまで: DevOpsエンジニアの成長ロードマップ
yuriemori
2
280
見てわかるテスト駆動開発
recruitengineers
PRO
6
1.6k
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Rails Girls Zürich Keynote
gr2m
95
14k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Code Reviewing Like a Champion
maltzj
525
40k
Embracing the Ebb and Flow
colly
87
4.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
GraphQLとの向き合い方2022年版
quramy
49
14k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Scaling GitHub
holman
462
140k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
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