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,其它廠商能夠自由參與開發社群,支援的程式語言及開發框架也日益豐富。目前比較活躍的社群夥伴開發商有:
除了對程式語言及開發框架的支援,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 應用程式等。