VMware Cloud Foundry 試玩小小小之在小不過的心得

話說十天前看到了 Cloud Foundry 的網頁 可以 Request an invite account 當下馬上就申請了一個 XD

他的特色是… 就是 VMware 的雲 沒了! 屬於 PaaS (Platform as a Service) 最大的特色應該算是他們強調是 Open 的 (Open Source !) 主要是社群維護 cloudfoundry.org Source Code 在這裡 不過在 VMware 的平台(cloudfoundry.com)上營運要付錢 所以免費版就是下載回去自己架起來 XD (目前是 Beta 一切免費!)

目前支援 Java, Ruby, Node.js (via FAQ)

資料庫選擇有 MongoDB、MySQL和Redis

Java 的話可以搭配 Spring 或其他 JVM 可以吃的 framework

Ruby 可以選用 Rails 或者 Sinatra (沒玩過 Sinatra 可是看起來好像很簡單耶)

Node.js 則可以原生就可以支援或者搭配 expressnpm 的 bundle

然後九天後…也就是昨天晚上就收到通知信啦!

今天早上馬上來試玩一下

以下是小小小小小小試玩心得
歡迎切磋指教 :P
參考 VMware 官方手冊

首先要裝好 rubygems


(建議 Mac OS X 的用戶先更新 RubyGems) 因為 小於 RubyGems 1.3.6 都很 buggy (SnowLeopard 搭載 1.3.5) via Gems, Eggs and Perl Modules 升級指令也可以參考這裡

裝好 gem 後打


就是這麼簡單 VMware Cloud Foundry 的控制指令 - vmc 就裝好了

首先要登入


login 時會問 帳號 密碼

接下來介紹如何 deploy node.js 順便帶過一些基本指令 (我想 Ruby on Rails 很多人玩眾高手比我熟 - - Java Spring 我不會 XD)

首先 node.js 要搭配 npm bundle 所以先裝一下 npm


準備好 npm 後建立一個資料夾 (資料夾名稱跟計畫可以無關)


如果是 node.js 的程式的話主程式一定要叫做 app.js (VMware Cloud Foundry 的要求 - -)

所以先編輯 app.js

內容先隨便寫吧 依照標準的 express 的 demo 就是


然後編輯一個 package.json (給 npm 的 package 看的)

填入下列內容


所以我們的目錄現在是長這樣…


接下來就是產生 bundle 啦 在同一個目錄下打


npm 就會自己產生一堆鬼 info ~ (略…)

成功後在看看資料夾變成這樣了!


主要就是多了 hello.js 跟 node_modules 的資料夾

這時候我們回頭改一下 app.js

在最前面加入 require.paths.unshift(‘./node_modules’)

最後面的 app.listen(3000); 改成 app.listen(process.env.VMC_APP_PORT||3000);

也就是完整的檔案如下


這樣就全部準備完成啦 可以 deploy 到 VMware Cloud Foundry 上了

同樣在 hello 的資料夾下打 vmc push (表示要新增計畫)


他會互動式的問一些問題 比方說計畫名稱(管理用的) deploy 的網址 偵測程式的 type (Node.js/Ruby/Java) Memory 用量 如下圖


成功後就可以到你設定的網址去看成果了!

最後 如果計畫案有修改想要更新的話一樣先打 npm bundle 之後指令是 vmc update <appname> (比方說 nodejs-hello)


其他的指令就打 vmc help 看吧
重要的大概就
start <appname> Start the application
stop <appname> Stop the application
restart <appname> Restart the application
delete <appname> Delete the application
rename <appname> <newname> Rename the application