Cloud Foundry因其廣泛的應用支持和一流的易用性而熠熠生輝,但OpenShift也有著管理和自動化上的優勢。
PaaS(平臺即服務)在云生態系統中占據了一個有趣的利基市場。它通常基于IaaS(基礎設施即服務)提供的訪問遠程計算資源的能力。IaaS的一個典型例子就是Amazon EC2。
PaaS把基礎設施,存儲,數據庫,信息和流程作為服務,提供遠程計算機,磁盤,數據庫,信息流,業務流程或元的應用,所有這些都在一個“堆棧”或捆綁的“沙箱”里。這些應用程序很可能是SaaS(軟件即服務),比如CMS(內容管理系統)或CRM(客戶關系管理)系統。一旦PaaS的增加值超過IaaS便自動化操作資源和應用程序,節省了很多的時間。
兩個主要的開源PaaS系統是紅帽的OpenShift和Pivotal的Cloud Foundry。兩者均有三種方式可供選擇:托管,企業和開源的。在這次回顧中,我主要關注企業版的,它完全支持并且適用于要在自己的云或數據中心運行PaaS的企業。不過,托管和企業版都是基于開源的版本。
不要把PaaS系統與配置管理和業務流程工具混淆,比如Puppet, Chef, Ansible, and Salt。你可以使用Puppet或其他工具建立PaaS或SaaS,或者僅僅用來管理一大堆的服務器配置。 實際上,OpenShift確實使用Puppet,并且它與其他工具兼容。 Cloud Foundry則是使用一種不同的配置管理工具:BOSH。
小差異
Cloud Foundry和OpenShift在能力和對PaaS的方法上頗為相似。而他們所使用的術語和準確的部署方法則不同。兩者的共同點在于:當使用通用的服務如數據庫時,每提供一個有輕量級容器的Linux平臺,就可以運行開源語言和框架的應用程序。
對于應用程序源代碼的部署,OpenShift使用的是Git,但它也可以讓你部署二進制包。 Cloud Foundry中只需要你的二進制文件(現在是.WAR文件,其他格式將在之后支持),然后使用buildpack自動將它們組合為語言和框架(如Java和Tomcat)和服務(如數據庫)。該buildpack格式是由Heroku發展而來,它對開源社區做出了貢獻,并衍生出許多社區buildpacks,其中大部分工作都是基于Cloud Foundry。
在Cloud Foundry中四個buildpacks是標準的:Java, Node.js, Ruby, 和Go。在大多數情況下,你需要的開源語言或框架可作為buildpack加載,當運行app是你只會注意到Cloud Foundry命令行上的Git倉庫。如果必要的buildpack沒有現成的,你也可以很容易地在Ruby或其他腳本語言創建它。
OpenShift沒有buildpacks。但是,它擁有墨盒,其中包括數據庫以及語言和框架,以及QuickStarts,這都是已經為你配置應用程序代碼和庫。
Test Center Scorecard |
|||||||
|
|
|
|
|
|
|
|
20% |
20% |
20% |
15% |
15% |
10% |
||
Pivotal CF 1.2 |
9 |
8 |
9 |
8 |
7 |
9 |
8.4 VERY GOOD |
20% |
20% |
20% |
15% |
15% |
10% |
||
Red Hat OpenShift Enterprise 2.1 |
9 |
9 |
8 |
8 |
9 |
9 |
8.7 VERY GOOD |
OpenShift墨盒是可插拔的組件,可以由一個單一的應用程序組合而成。內置墨盒在OpenShift的三個版本中不同,但名單都是廣泛的,雖然僅限于在紅帽企業Linux(或者Fedora,原產地,OpenShift開源版本)上運行。
QuickStarts代碼和(一個或多個)墨盒的結合,使其易于安裝整個應用程序。而OpenShift隊不支持QuickStarts,但任何負責保持安全問題的更新都可以自由創建和發布。像Cloud Foundry中的buildpacks一樣,OpenShift盒和QuickStarts是很容易構建的。
OpenShift在稱為齒輪的容器中運行應用程序。 在Droplet 執行代理中,Cloud Foundry的運行構建和打包應用程序稱為Droplet。在PaaS中,這些容器是分離自其它齒輪或Droplet,相比于虛擬機它們重量較輕。今后,Cloud Foundry和OpenShift都將支持Docker容器。
較大注意事項
Cloud Foundry的一個關鍵不同點——Pivotal的兩個Cloud Foundry樣片。Pivotal 網絡服務和Pivotal CF——支持Pivotal的大數據套件,其中包括Pivotal HD(Pivotal的Hadoop發行版),HAWQ的SQL,GemFire XD分析,和Apache Hadoop的Java框架Spring。Pivotal的大數據套件是一個企業級數據倉庫,包括無限Pivotal HD。
據Pivotal透露,管理員定義的HDFS和MapReduce實例從開始到Pivotal CF需要大約五分鐘準備。一個開發員或應用程序可以從池中請求一個實例(獲得它大約需要兩秒鐘時間),然后一個新的實例就在后臺被創建。當所請求的實例不再需要,它就被釋放。
Pivotal還提供一種結合Pivotal CF和Pivotal HD的移動服務套件。它基本上是PivotalPaaS的一個MBaaS(移動后端即服務),用以整合延伸出內置在平臺上的移動應用。
OpenShift一個很大的特點是應用程序的自動縮放,當一個應用程序被過度使用時,它可以增加齒輪甚至是節點。它內嵌在OpenShift中,不需要前端縮放服務。你只需創建應用程序時核對盒子,然后就可以配置流量觸發點、添加和刪除。
同樣,當應用程序沒有得到任何HTTP流量時OpenShift能自動監測,最后通過開發員或者業務操作將沒有妨礙需求的齒輪清空。當應用程序再次請求的時候,OpenShift會自動加載到內存并處理HTTP請求。 OpenShift甚至會自動啟動和重新啟動行為不端的應用程序。所有這些功能都減少了監測數和運行在OpenShift應用工作所需的操作數。
選擇PaaS
你應該選擇哪一個PaaS的?這取決于很多因素,你的IT部門應該仔細評估。如果應用程序密度是安裝的主導因素,我希望你的團隊選擇OpenShift。同樣,如果你的開發人員偏重使用Git,他們可能傾向于penShift。另一方面,如果你PaaS集成中,大數據和移動服務在優先名單上。那么,為了大數據和移動服務的需求,你已經沒有其他的解決方案,你的團隊可能得選Pivotal CF。