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
740
Monolithic Architecture is Dead
社内 TeckTalk 資料 - Microservices の紹介
potato2003
August 29, 2014
Tweet
Share
Other Decks in Technology
See All in Technology
KubeCon EU 2024 Recap “Kubernetes Policy Time Machine: Where to Next?”
ryysud
0
220
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
650
Terraformあれやこれ/terraform-this-and-that
emiki
8
1.4k
データベース02: データベースの概念
trycycle
0
160
APIファーストなプロダクトマネジメントの実践 〜SaaSus Platformでの例〜 / "Practicing API-First Product Management - An Example with SaaSus Platform
oztick139
0
100
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
200
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
2
530
VS CodeでAWSを操作しよう
smt7174
8
1.7k
LangSmith入門―トレース/評価/プロンプト管理などを担うLLMアプリ開発プラットフォーム
os1ma
3
140
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
220
MLOpsの「壁」を乗り越える、LINEヤフーの Data Quality as Code
lycorptech_jp
PRO
5
520
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
380
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
237
11k
Git: the NoSQL Database
bkeepers
PRO
422
63k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
Testing 201, or: Great Expectations
jmmastey
28
6.4k
RailsConf 2023
tenderlove
4
540
Adopting Sorbet at Scale
ufuk
68
8.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
Debugging Ruby Performance
tmm1
70
11k
Web Components: a chance to create the future
zenorocha
305
41k
Optimizing for Happiness
mojombo
370
69k
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