iT邦幫忙

DAY 12
1

Cloud Foundry 雲端應用開發實戰系列 第 12

Cloud Foundry 雲端應用開發實戰(12/30)Node.js 介紹

Cloud Foundry 是開放源碼的 PaaS 解決方案,支援多種程式語言、開發框架及資料庫等服務,而且更容易開發、測試及佈署。本系列文章將從零開始,和學習者一起開啟雲端應用程式開發的大門。

Cloud Foundry 也很適合作為 Node.js 的 PaaS。
Node.js 是近來非常熱門的新興技術,它是一個網站後端開發框架,使用 Google Chrome 的 V8 JavaScript Engine 為基礎,相當輕量化且速度極快。其事件驅動(event-driven)及非阻斷式(non-blocking)I/O的特性,用於建構高擴充性(scalable)網站應用程式,有相當優秀的表現。

由於 Node.js 速度快、系統資源消耗少,一般而言在相同的硬體配置下,使用 Node.js 可以提供更多的負載量;基於 Node.js 帶來的各種益處,它已經是許多 PaaS 平台支援的開發框架,以下是一些比較常見支援 Node.js 的 PaaS,其中包括微軟的 Windows Azure。

* Cloud Foundry(http://docs.cloudfoundry.com/frameworks/nodejs/nodejs.html)
* Heroku(https://devcenter.heroku.com/articles/nodejs)
* Joyent(http://joyent.com/technology/nodejs)
* Nodejitsu(http://nodejitsu.com/)
* Nodester(http://nodester.com/)
* NodeSocket(http://www.nodesocket.com/)
* Windows Azure(http://www.windowsazure.com/en-us/develop/nodejs/)

由於 Node.js 尚處在發展速度飛快的階段,發行版本不斷躍進。目前 Cloud Foundry 支援的三個 Node.js 的主要版本:

* Node.js 0.4.12(node)
* Node.js 0.6.8(node06)
* Node.js 0.8.2(node08)

括號內的代碼是 Cloud Foundry 定義的執行環境(runtime)名稱,在建立新的 Node.js 應用程式時,必須依照版本需求做選擇。

最簡易的 Node.js 範例,是一個連接埠(port)為 8000 的網頁服務。從這個範例可以看到,Node.js 本身並不需要依賴其他網站伺服器(如 Apache、Tomcat 或 Nginx),就可以單獨執行運作。對於設計高效能的網站應用程式,Node.js 帶給開發者不少彈性。

::

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8000, '127.0.0.1');
console.log('Server running at http://127.0.0.1:8000/');

使用 Node.js 開發網站應用程式,通常會搭配其他 Web Application Framework,讓程式撰寫者事半功倍:

* Express(http://expressjs.com/)
* RailwayJS(http://railwayjs.com/)

Cloud Foundry 與 Node.js 的搭配是很不錯的組合,如果再加上 Cloud9 雲端程式編輯器、GitHub 專案托管,甚至可以讓整個網站的開發都在瀏覽器中完成。

* GitHub(http://github.com/)
* Cloud9 IDE(https://c9.io/)

目前 Cloud Foundry 提供的三種主要程式語言:Ruby、Java、Node.js,筆者相當看好 Node.js 的發展。對於記憶體用量斤斤計較的一般 PaaS 收費方案,對於剛開始起步的 Web Application,Node.js 可以說開發快速又省錢,未來要遷移到不同 PaaS 也有非常多選擇。

延伸閱讀

* Node.js 官方網站(http://nodejs.org/)
* Node.js Taiwan 社群(http://nodejs.tw/)
* Node.js 中文電子書(http://book.nodejs.tw/)


上一篇
Cloud Foundry 雲端應用開發實戰(11/30)建置 MySQL 資料庫
下一篇
Cloud Foundry 雲端應用開發實戰(13/30)建立 Node.js 開發環境
系列文
Cloud Foundry 雲端應用開發實戰31

尚未有邦友留言

立即登入留言