PaaS(平臺(tái)即服務(wù))位于IaaS(基礎(chǔ)設(shè)施即服務(wù))之上,在云計(jì)算生態(tài)系統(tǒng)中扮演著一個(gè)有趣的角色。使用IaaS,你可以擁有主機(jī)或虛擬主機(jī),無需擔(dān)心物理層就按需地使用計(jì)算資源,IaaS典型的代表就是 Amazon EC2。PaaS則包括了基礎(chǔ)設(shè)施、存儲(chǔ)、數(shù)據(jù)庫、信息,并將這些資源作為服務(wù)提供。我們不妨將PaaS比作遠(yuǎn)程計(jì)算機(jī)、磁盤、數(shù)據(jù)庫、信息流及業(yè)務(wù)處理或者元應(yīng)用程序的提供者,它們都被封裝成“堆棧”或者“沙箱”。SaaS(軟件即服務(wù))一般可理解成提供具體業(yè)務(wù)邏輯的應(yīng)用程序,比如CMS(內(nèi)容管理系統(tǒng))或者CRM(客戶關(guān)系管理)系統(tǒng)。對比IaaS,PaaS的附加價(jià)值在于自動(dòng)提供所有資源和應(yīng)用程序,從而節(jié)省了大量時(shí)間。
時(shí)至今日,Red Hat的OpenShift和Pivotal的Cloud Foundry已成為兩大主要開源PaaS系統(tǒng),分別提供了三個(gè)版本:托管、企業(yè)和開源。本篇文章將著重對比這兩個(gè)平臺(tái)的企業(yè)版本,它們針對企圖內(nèi)部云或數(shù)據(jù)中心部署PaaS進(jìn)行了獨(dú)到的設(shè)計(jì)。當(dāng)然,不管是托管還是企業(yè)版本都是基于開源版本開發(fā)。
首先,請勿混淆PaaS系統(tǒng)和配置管理及調(diào)度工具,比如Puppet、Chef、Ansible、Salt等。當(dāng)然,不排除使用Puppet建立PaaS或SaaS的情況,或者只是簡單做大量服務(wù)器的配置管理。OpenShift其實(shí)就是使用了Puppet,當(dāng)然也集成了一些其他工具。Cloud Foundry則使用了另一個(gè)配置管理工具:BOSH。
細(xì)微的差別
Cloud Foundry和OpenShift功能和PaaS實(shí)現(xiàn)方法都非常相似,但是在術(shù)語的使用和部署方法略有差別:都提供了一個(gè)Linux平臺(tái),并使用輕量級容器,讓其可以使用不同開源語言及框架去運(yùn)行應(yīng)用程序;同時(shí)它們都搭載了一些通用的服務(wù),比如數(shù)據(jù)庫。
對于部署應(yīng)用程序源代碼,OpenShift使用了Git,但是同樣允許用戶部署二進(jìn)制軟件包。Cloud Foundry只允許二進(jìn)制(暫時(shí)只支持.WAR文件,后續(xù)肯定會(huì)有更多添加),然后自動(dòng)化將它們與語言buildpacks、框架(比如Java和Tomcat)和服務(wù)(比如數(shù)據(jù)庫)整合。 Buildpack格式由Heroku開發(fā)并貢獻(xiàn)給開源社區(qū),當(dāng)下已經(jīng)有大量buildpack被開發(fā),其中大部分為Cloud Foundry使用。
Cloud Foundry原生提供4個(gè)標(biāo)準(zhǔn)的buildpack:Java、Node.js、Ruby以及Go。大多數(shù)情況下,大部分的開源語言及框架都已有對應(yīng)的buildpack,你需要做的只是在Cloud Foundry上加載對應(yīng)的buildpack。如果你所需的技術(shù)并不存在對應(yīng)的buildpack也不用擔(dān)心,只需要幾行Ruby或者其他腳本語言代碼就可以建立。
OpenShift并不支持buildpack,取而代之它使用了cartridge,包含了數(shù)據(jù)庫、語言、框架及QuickStarts(提供了大量已配置應(yīng)用程序代碼和庫)。
OpenShift cartridge使用插件式設(shè)計(jì),因此可以將之整合到獨(dú)立的應(yīng)用程序中。OpenShift3個(gè)版本自帶的cartridge并不相同,但是都提供了非常豐富的選擇。這里需要注意的是,Origin(開源版本)中只支持Red Hat Enterprise Linux上存在的組件(或者是Fedora)。
QuickStarts整合了代碼與一個(gè)以上的cartridges,讓整個(gè)應(yīng)用程序的安裝變得簡單。當(dāng)OpenShift團(tuán)隊(duì)不再維護(hù)QucikStarts時(shí),任何愿意對安全問題進(jìn)行實(shí)時(shí)更新的技術(shù)人員都可以免費(fèi)建立和發(fā)布一個(gè)。WordPress、Drupal以及Ghost都在QucikStarts支持范疇。類似Cloud Foundry的buildpack,OpenShfit cartridges和QucikStarts建立起來都沒什么難度。
OpenShift使用gears在容器中運(yùn)行應(yīng)用程序,Cloud Foundry運(yùn)行建立和封包應(yīng)用程序的組件被稱為droplets,位于Droplet Execution Agents中。不管是OpenShift還是Cloud Foundry,容器間都是隔離的。同時(shí),對比虛擬機(jī)來說,它們都非常輕量。在未來,不管是Cloud Foundry還是Open Shift都將支持Doker容器。
大的特性
Cloud Foundry存在一個(gè)殺手級應(yīng)用,也就是Pivotal的兩個(gè)Cloud Foundry產(chǎn)品(Pivotal Web Services和Pivotal CF)都支持Pivotal Big Data Suite,其包含了 Pivotal HD(Pivotal的Hadoop發(fā)行版)、為Hadoop準(zhǔn)備的HAWQ SQL、GemFire XD 分析以及為Apache Hadoop Java提供的Spring框架。
通過Pivotal得知,管理員定義HDFS和MapReduce實(shí)例的服務(wù)池時(shí),使用Pivotal CF從零開始只需要5分鐘。然后開發(fā)者或者應(yīng)用程序就可以從服務(wù)池中取出自己想要的,這個(gè)過程也只需要2秒鐘,同時(shí)在后臺(tái)還可以在資源池中建立一個(gè)新的實(shí)例。當(dāng)被請求實(shí)例不再需求時(shí),它還可以被釋放。
Pivotal還提供了一個(gè)Mobile Services Suite,它可以與Pivotal CF和Pivotal HD進(jìn)行整合,這些得益于2013年價(jià)值6500萬美元的Xtreme Lab收購。這是Pivotal Paas上一個(gè)典型的MBaaS(移動(dòng)后端即服務(wù)),通過集成建立在PaaS上的應(yīng)用程序?qū)崿F(xiàn)。
OpenShift的一個(gè)特點(diǎn)則是自動(dòng)化應(yīng)用程序擴(kuò)展,在應(yīng)用程序過載時(shí),系統(tǒng)會(huì)自動(dòng)的添加gears甚至是節(jié)點(diǎn)。該功能被OpenShift原生支持,因此并不需要一個(gè)前端擴(kuò)展服務(wù)。在新的應(yīng)用程序建立時(shí),你只需要在一臺(tái)主機(jī)上打勾,然后配置流量觸發(fā)器來增加或移除gears。
同時(shí),OpenShift會(huì)自動(dòng)識(shí)別一個(gè)沒有任何HTTP流量的應(yīng)用程序,然后停止閑置的gears,這個(gè)過程并不需要任何開發(fā)者或運(yùn)營人員參與。當(dāng)這個(gè)應(yīng)用程序得到請求后,OpenStack會(huì)自動(dòng)將之加載到內(nèi)存并處理HTTP請求。在應(yīng)用產(chǎn)生問題時(shí),OpenShift會(huì)自動(dòng)開始和重啟對應(yīng)程序,這些特性都會(huì)降低監(jiān)視和運(yùn)營的工作量。
選擇一個(gè)PaaS
在本地安裝OpenShift時(shí)非常順利,期間只發(fā)生過一次錯(cuò)誤――安裝不支持的虛擬機(jī)管理器。然而這個(gè)操作在Clound Foundry上并不順利,雖然ActiveState的Stackato版本比Cloud Foundry的開源版本更容易安裝。這個(gè)體驗(yàn)讓我覺得在安裝上OpenShift更勝一籌,但是,從另一個(gè)角度來說,兩個(gè)平臺(tái)的在線版本使用都非常簡單。同時(shí),如果企業(yè)要在私有云或者自己數(shù)據(jù)中心安裝時(shí)必然會(huì)聘請一個(gè)非常有經(jīng)驗(yàn)的顧問。
在OpenShift上,空閑gear處理是一個(gè)非常大的亮點(diǎn),這將允許一個(gè)非常高的應(yīng)用程序密度,同時(shí)應(yīng)用程序自動(dòng)擴(kuò)展也非常有優(yōu)勢。因?yàn)槿鄙龠@些特性,Pivotal CF在管理上的得分只能達(dá)到8.1,同時(shí)我們相信這兩個(gè)特性是大部分企業(yè)喜聞樂見的。需要注意的是,Pivotal CF已經(jīng)將這兩個(gè)特性納入規(guī)劃圖中。
Cloud Foundry(Pivotal CF)最大的優(yōu)勢無疑是支持Pivotal的大數(shù)據(jù)和移動(dòng)服務(wù)套件,這個(gè)特性大幅度的提高了Pivotal CF的得分。在支持上,如果Pivotal CF的得分是9.0,那么OpenShift只能得到可憐的8分。當(dāng)然也許你并不在意這兩個(gè)特性,因?yàn)檫@些完全取決于部署的需求。
究竟該選擇哪個(gè)PaaS,這里受到多個(gè)因素影響,IT部門需要認(rèn)真的進(jìn)行審核。如果應(yīng)用程序密度驅(qū)動(dòng)了你們的安裝,那么OpenShift是個(gè)不錯(cuò)的選擇。同樣,如果你的開發(fā)者是Git重度控,他們也可能更喜歡OpenShift。但是,如果你們需要迎合大數(shù)據(jù)和移動(dòng)需求,那么Pivotal CF必將是完美的選擇。
Cloud Foundry和OpenShift特性對比
Cloud Foundry |
OpenShift |
|
優(yōu)勢 |
支持各種各樣的語言、web框架、數(shù)據(jù) 為開發(fā)者和云供應(yīng)商提供簡易和快速的自服務(wù)部署 應(yīng)用程序容器、服務(wù)和節(jié)點(diǎn)都被監(jiān)視,如果在預(yù)期狀態(tài)之外會(huì)自動(dòng)重啟 PaaS支持大數(shù)據(jù)和移動(dòng)服務(wù) 可以使用命令行、Eclipse、Spring Tools Suite、Maven、Gradle 進(jìn)行部署 |
支持各種各樣的語言、web框架、數(shù)據(jù)、應(yīng)用程序堆棧 為開發(fā)者和云供應(yīng)商提供簡易和快速的自服務(wù)部署 自動(dòng)應(yīng)用程序擴(kuò)展 在開源代碼等級整合Git,通過git push出發(fā)自動(dòng)部署 閑置gear終止允許更高的應(yīng)用程序密度 只要支持Red Hat Enterprise Linux就可以運(yùn)行在任何硬件、云或者是虛擬機(jī)上 |
缺點(diǎn) |
雖然自動(dòng)橫向擴(kuò)展只存在測試版,但是已計(jì)劃在第三季度的Pivotal CF中釋放;另一個(gè)Cloud Foundry發(fā)行版ActiveState的Stackato已經(jīng)支持這一特性 Cloud Foundry v2版本尚未提供可下載“微型”VM,但是你可以下載Stackato Micro,或者使用其中一個(gè)Cloud Foundry安裝程序在本地VM中進(jìn)行安裝 只支持 Ubuntu Linux上的有限應(yīng)用程序,除下你使用Cloud Foundry的Uhuru Windows版本,這個(gè)并未評測 |
很大程度受限于只支持 Red Hat Linux上運(yùn)行的應(yīng)用程序,除非你使用Uhuru OpenShift.Net產(chǎn)品,這一點(diǎn)并未評測 |
平臺(tái) |
Pivotal CF:VMware vSphere,OpenStac,Amazon Web Services,Google Cloud Platform |
OpenShift Enterprise:Red Hat Enterprise Linux。 OpenShift Origin:KVM、VirtualBox、VMware Fusion/Player |
原文鏈接: PaaS shoot-out: Cloud Foundry vs. OpenShift (翻譯/童陽 責(zé)編/仲浩)