SlideShare a Scribd company logo
May	 3,	 2012
node.JS雲端應用實例
Web再進化	 -	 很久很久以前	
 
·• 事件發生仰賴	 Refresh	 rate
·• 互動性差
·• 即時性更差
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
Web再進化	 –	 不久前…	
 
·• 事件觸發單向從Browser發出
·• 互動性略好些
·• 即時性還是很糟
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
Web再進化	 –	 現在	
 
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
現在網路服務的需求	
 

·• 互動功能多
·• 即時性要好
·• 網站上朋友要多
·• 最好正妹也要多
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
使用者需求越來越多(高?)	
 
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
但…	
 
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
我們回不去了…
我們碰到的瓶頸	
 

·• 主要後端語言PHP
·• PHP	 很讚
– 好開發/效率不差
– 除了寫起來有點醜
– 要做	 Comet	 /	 Web	 Socket	 也可以
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
我們碰到的瓶頸	
 
·• 持續連線數量大時
·• php-cgi	 會卡很大
·• 加機器?
·• php-cgi	 實在很肥…

©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
但…
所以需要找個連線成本低的方案	
 
·• Javascript:	 node.JS
·• Python:	 Twisted,	 Tornado
·• Ruby:	 Event	 Machine
·• Java:	 Jetty
·• Erlang….

©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
node.JS	 優點	
 
·• Javascript大家都會寫
·• 連線成本低,	 處理連線效率高
·• 大量開發者投入,	 api	 完整度越來越高
·• 有Joyent、Microsoft等商業公司投入
·• UNIX	 like	 /	 Microsoft	 solution都有不錯支援
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
node.JS	 注意事項	
 
·• 不適合大量運算場合
·• single	 thread	 serves	 js	 runtime
– non-blocking	 I/O,	 但寫爛程式還是	 blocking
– 謹慎控制每個	 callback	 執行時間
– 嚴格管控變數	 scope
·• Multi-core	 CPUs	 需要自己管控
·• JSON	 ->	 JavaScript	 Object	 Notation
– 但是在	 node.JS	 JSON.stringify/parse	 跑不快
– 還好	 0.6	 終於補回來
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
KKBOX哪邊用到	 node.JS?	
 
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
KKBOX一起聽
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
點播歌曲
點播歌曲
點播歌曲
創作者	 /	 
演唱者
聽眾
聽眾
聽眾
素人DJ
直接互動
直接互動
歌迷互動
node
slave
node
slave
node
slave
node
slave
KKBOX一起聽	 服務元件	 (原型)	
 
·• node.JS	 slave
·• node.JS	 master
·• memcached
·• Mysql
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
Users
Users
Users
mmc
node
master
node
master
mmc
mysql
mysql
node
slave
node
slave
node
slave
node
slave
KKBOX一起聽	 服務元件	 (now)	
 
·• node.JS	 slave
·• node.JS	 master
·• memcached
·• Mysql
·• RabbitMQ
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
Users
Users
Users
mmc
node
master
node
master
mmc
mysql
mysql
Rabbit
MQ
Rabbit
MQ
Summary	
 
·• node.JS	 已經足夠成熟
·• event	 driven	 帶來許多	 server-side	 開發優勢
– 雷也不少
– 但瑕不掩瑜
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
大家來寫	 Javascript	 吧~	
 
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
Thanks	
 
©2012.	 KKBOX	 Inc.	 All	 Rights	 Reserved
ericpi@kkbox.com

More Related Content

PPTX
MOPCON 2014 - 堅持在濁水溪以南的夢想
PPTX
Ecosan–Pit Opening
PDF
20151127 kh gov-data-training
PPTX
The ulitmate history prject
PDF
讓你的 Web App 跟 Native 一樣使用經驗 - PhoneJS
PDF
Aprendizagem e Tecnologias
PPTX
Top Ten Secrets of the Libraries of Mexico
PDF
COSCUP 2010 - node.JS 於互動式網站之應用
MOPCON 2014 - 堅持在濁水溪以南的夢想
Ecosan–Pit Opening
20151127 kh gov-data-training
The ulitmate history prject
讓你的 Web App 跟 Native 一樣使用經驗 - PhoneJS
Aprendizagem e Tecnologias
Top Ten Secrets of the Libraries of Mexico
COSCUP 2010 - node.JS 於互動式網站之應用

Similar to KSDG meet-up #1 (20)

PDF
NodeJS基礎教學&簡介
PPTX
深入淺出Node.JS
PDF
Node.js 入門 - 前端工程開發實務訓練
PDF
D2_node在淘宝的应用实践_pdf版
PDF
Yog Framework
PDF
Noder eyes for frontend guys
PPT
Node.js在淘宝的应用实践
KEY
D2_Node在淘宝的应用实践
PDF
Node.js從無到有 基本課程
PDF
如何在有限資源下實現十年的後端服務演進
PPT
Node Web开发实战
PDF
Nodejs & NAE
PDF
Node.js 進攻桌面開發
PDF
Node js q-con
PPT
Node Web开发实战
PPTX
Nodejs introduce - using Socket.io
PDF
Node js实践
PPT
课题二:Node.js那些事儿
PDF
Browser vs. Node.js Jackson Tian Shanghai
PDF
美团点评技术沙龙05 - Node.js业务应用实践和服务监控
NodeJS基礎教學&簡介
深入淺出Node.JS
Node.js 入門 - 前端工程開發實務訓練
D2_node在淘宝的应用实践_pdf版
Yog Framework
Noder eyes for frontend guys
Node.js在淘宝的应用实践
D2_Node在淘宝的应用实践
Node.js從無到有 基本課程
如何在有限資源下實現十年的後端服務演進
Node Web开发实战
Nodejs & NAE
Node.js 進攻桌面開發
Node js q-con
Node Web开发实战
Nodejs introduce - using Socket.io
Node js实践
课题二:Node.js那些事儿
Browser vs. Node.js Jackson Tian Shanghai
美团点评技术沙龙05 - Node.js业务应用实践和服务监控
Ad

More from ericpi Bi (13)

PDF
20160521 社群實務及組織協作
PDF
MOPCON 2015 intro
PPTX
20150630 kca big-data-with-cloud_output
PPTX
高雄市戶政資料視覺化 - 使用 C3.js
PDF
KSDG BaaS Intro
PPTX
KSDG LT: 6分鐘node.JS就上手
PDF
數位創業最好的技術顧問 - 技術社群
PDF
快快樂樂利用 PhoneGap 打造屬於自己的 App
PDF
前端也能變全端
PDF
AWS vs Azure
PDF
MOPCON intro
PPTX
MOPCON 2012 - 網路服務從 K 到 M
PPTX
KSDG web course #1 - git: 從零開始 - 如何利用版本控制提升網站開發團隊效益
20160521 社群實務及組織協作
MOPCON 2015 intro
20150630 kca big-data-with-cloud_output
高雄市戶政資料視覺化 - 使用 C3.js
KSDG BaaS Intro
KSDG LT: 6分鐘node.JS就上手
數位創業最好的技術顧問 - 技術社群
快快樂樂利用 PhoneGap 打造屬於自己的 App
前端也能變全端
AWS vs Azure
MOPCON intro
MOPCON 2012 - 網路服務從 K 到 M
KSDG web course #1 - git: 從零開始 - 如何利用版本控制提升網站開發團隊效益
Ad

KSDG meet-up #1