iT邦幫忙

DAY 2
3

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

Cloud Foundry 雲端應用開發實戰(2/30)Cloud Foundry 的平台及工具

Cloud Foundry 是開放源碼的 PaaS 解決方案,支援多種程式語言、開發框架及資料庫等服務,而且更容易開發、測試及佈署。本系列文章將從零開始,和學習者一起開啟雲端應用程式開發的大門。
Cloud Foundry 目前開放的網站有兩個,CloudFoundry.com 是 VMWare 公司以 vSphere 產品為基礎架構的開放服務,開發者只需要註冊一組帳號,就能將應用程式發佈到這個免費的 PaaS 平台。而 CloudFoundry.org 網站則是提供給開放原始碼社群,想要深入了解 Cloud Foundry 的技術、取得原始碼及參與討論等,可以利用這個網站提供的資訊。

VMWare 也發行名為 Micro Cloud Foundry 的虛擬機器,它的功能與 CloudFoundry.com 提供的服務相同,但是縮小到可以在開發者自有的機器上運作,利用 VMWare Player / Workstation / Fushion 等虛擬機器軟體即可執行。

開發者或企業在區域網路架設私有的 Micro Cloud Foundry,即可任意將應用程式發佈到這個迷你雲。由於 Micro Cloud Foundry 的功能和 CloudFoundry.com 一致,應用程式在開發過程可以先發佈到 Micro Cloud Foundry,功能、安全機制尚未完整的應用程式,就可以在這個沙盒中進行測試,等到準備正式上線時,就可以直接發佈到 CloudFoundry.com 或其他以 Cloud Foundry 建立的 PaaS 服務。

Cloud Foundry 的原始碼專案使用 GitHub 托管,目前發行的兩個主要專案有 VMC 及 VCAP。VMC 是應用程式開發端的工具,採用 Ruby 程式語言開發,用於發佈、維護管理 PaaS 的應用程式。VCAP(VMWare Cloud Application Platform)是伺服器端的軟體,同樣以 Ruby 開發,它包含提供 PaaS 服務所需的元件(如 cloud controller、health manager、dea、router、...等),雖然 VCAP 的目標是建立雲端的平台,但使用 VCAP 的硬體環境也可以很精簡,即使只用一部虛擬機器也可以開始建構 PaaS。

Cloud Foundry 的 GitHub 專案位址 https://github.com/cloudfoundry

VMC 是 command-line 的指令工具,開發者需要熟悉在終端機下使用文字指令工作。Cloud Foundry 也提供 Eclipse 軟體的 Plugin 套件,造福習慣使用圖形化整合開發環境的開發者,最簡易的使用方式就是先取得 SpringSource 推出的 STS(SpringSource Tool Suite)開發工具,再以內建的 Dashboard 加裝 Cloud Foundry 套件。

SpringSource Tool Suite http://www.springsource.com/developer/sts

目前 VMWare 官方版本的 Cloud Foundry,可以支援 Java、Ruby、JavaScript 等程式語言,其中 Java 部分亦包含愈來愈盛行的 JVM Scripting 語言如 Groovy 與 Scala,開發框架也支援廣受歡迎的 Spring、Lift、Play 及 Grails。而 JavaScript 所指並非前端瀏覽器的 JavaScript,而是可以在伺服器執行的 CommonJS 規範,也就是目前相當受矚目的 Node.js。至於 Ruby on Rails 相信大多開發者都已耳熟能詳,Sinatra 對 Ruby 開發者也不陌生。

======== ============
開發框架   程式語言
======== ============
Spring   Java
Lift     Scala
Play     Scala/Java
Grails   Groovy
Sinatra  Ruby
Rails    Ruby
Node.js  JavaScript
======== ============

Cloud Foundry 是開放源碼的 PaaS,其它廠商能夠自由參與開發社群,支援的程式語言及開發框架也日益豐富。目前比較活躍的社群夥伴開發商有:

  1. Joyent
    提供軟體開發商雲端解決方案,其客戶包括 LinkedIn 等。Node.js 也是 Joyent 的產品,目前 Cloud Foundry 提供的 Node.js 就是由 Joyent 提供支援及維護。
  2. ActiveState
    推出 Stackato 用於建構私有雲,是以 Cloud Foundry 為基礎、相容 vSphere 的產品,並可支援擁有廣大開發者使用的 ActivePython 及 ActivePerl。
  3. AppFog
    目前提供 PHP Fog 是支援 PHP 及 MySQL 的 PaaS 服務,AppFog 也將支援 PHP 應用程式的 Cloud Foundry 開放原始碼回饋給社群。未來 AppFog 以 Cloud Foundry 發展的 PaaS,將能更廣泛支援 PHP、Node.js、Ruby、Python、Java、.NET 等技術。

除了對程式語言及開發框架的支援,Cloud Foundry 也提供服務(Services),包含關聯式資料庫 MySQL、PostgreSQL,以及 NOSQL 解決方案的 MongoDB 與 Redis,還有 RabbitMQ 訊息佇列服務。

若是 Cloud Foundry 及社群夥伴廠商提供的服務,也就是支援的程式語言、開發框架或資料庫種類,還是不能滿足應用程式開發的需求;或者需要自行架設私有雲 Private PaaS,就需要安裝建置 VCAP。VCAP 是 VMware's Cloud Application Platform 的縮寫,Cloud Foundry 提供的 PaaS 服務,就是利用 VCAP 建置的平台。

VCAP 是開放原始碼授權,開發者可以擴充它的程式,自行加上 Runtime(支援更多程式語言)、Framework(支援更多開發框架)或 Service(支援更多資料庫類型)。對於發展 PaaS 的廠商來說,使用 Cloud Foundry 開放的 VCAP 為基礎,就可以減少重複開發底層架構的成本,將重點擺在主要的功能擴充上,例如加上 Mono 以支援 .NET 應用程式等。


上一篇
Cloud Foundry 雲端應用開發實戰(1/30)開放源碼的平台即服務
下一篇
Cloud Foundry 雲端應用開發實戰(3/30)開發環境安裝及設定
系列文
Cloud Foundry 雲端應用開發實戰31

1 則留言

0
ted99tw
iT邦研究生 1 級 ‧ 4 年前

俺什麼都能喇賽,但對“雲端”就沒辦法了,因為總是讓人眼花瞭亂,所以.....

俺打怪獸去了!逃跑

我要留言

立即登入留言