紅帽O(jiān)penShift:讓應(yīng)用程序部署與協(xié)作更快捷
譯文【2014年1月3日 51CTO外電頭條】平臺即服務(wù)(簡稱PaaS)是一種專門針對應(yīng)用程序開發(fā)所設(shè)計(jì)的云基礎(chǔ)托管環(huán)境,目的是在無需部署昂貴內(nèi)部基礎(chǔ)設(shè)施的前提下提供功能全面的開發(fā)、分期以及生產(chǎn)環(huán)境。
PaaS的其它優(yōu)勢還包括配置快捷、便于協(xié)作以及自動負(fù)載平衡能力。
我們對紅帽的PaaS OpenShift Online與開源版本OpenShift Origin兩個版本進(jìn)行了測試。紅帽方面還另外提供了OpenShift企業(yè)版本,但我們并沒有進(jìn)行測試。總體來說,相較于OpenShift Origin來說、我們更偏愛OpenShift Online版本,因?yàn)楹笳叩脑O(shè)置更簡單、而且令人意外的是性能表現(xiàn)也更出色。兩款產(chǎn)品在協(xié)作方面的表現(xiàn)同時勝出,都很搶眼。在協(xié)作環(huán)境下,團(tuán)隊(duì)中的開發(fā)者們可以輕松從所處的不同位置向OpenShift提交變更。其實(shí)這一點(diǎn)正是PaaS真正的便捷性所在、也是它能引發(fā)廣泛關(guān)注的主要原因。
OpenShift Online既可以作為免費(fèi)方案使用,也可以作為"Premium Silver方案"(我們測試的是免費(fèi)版本)使用。OpenShift的所有版本全部基于RHEL(即紅帽企業(yè)Linux)或者Fedora的OpenShift Origin版本。在開發(fā)方面,OpenShift支持多種編程語言、框架以及工具,其中包括PHP、Ruby、JBoss以及Python,外加數(shù)據(jù)庫選項(xiàng)(例如MySQL、MariaDB以及PostreSQL等等)與一套DIY模式。OpenShift由兩大主要單元構(gòu)成:Broker,用于管理登錄、DNS以及應(yīng)用程序狀態(tài);以及Cartridges,負(fù)責(zé)為各類工具、數(shù)據(jù)庫以及應(yīng)用程序提供提供"插件"功能。應(yīng)用程序可以通過命令行或者圖形用戶界面工具進(jìn)行創(chuàng)建。紅帽公司承諾,如果一款應(yīng)用程序可以運(yùn)行在紅帽企業(yè)Linux 64位版本上,那么它就一定可以運(yùn)行在OpenShift環(huán)境下。
OpenShift Online
我們首先測試的是OpenShift Online,大家只需在OpenShift Online管理控制臺中設(shè)置一個賬戶即可輕松開始訪問?;赪eb的管理控制臺界面非常友好,同時提供非常實(shí)用的"工具提示"信息,能夠幫助用戶在幾分鐘之內(nèi)創(chuàng)建自己的賬戶并準(zhǔn)備好投入應(yīng)用程序開發(fā)。在完成了賬戶設(shè)置并通過導(dǎo)航在門戶頁面中轉(zhuǎn)了一圈之后,我們開始將著眼點(diǎn)轉(zhuǎn)移到底層架構(gòu)方面。OpenShift利用紅帽所謂"gear"來實(shí)現(xiàn)資源分配,分配方案分為兩種--小型與中型。小型gear提供單一單元,配備512MB內(nèi)存與1GB存儲空間;中型gear則分別擁有1GB的內(nèi)存與存儲空間。免費(fèi)版本允許我們將最多三套gear結(jié)合起來,從而實(shí)現(xiàn)總體1.5GB內(nèi)存與3GB磁盤空間。OpenShift Online Silver方案提供更為強(qiáng)大的性能,可同時支持最多16套中型gear。要升級到Silver版本,我們需要每個月為平臺支付20美元的使用費(fèi),并在兩個版本免費(fèi)提供的三套小型gear之外為每套gear每小時再額外掏出3、10或者13美分使用費(fèi)。
管理門戶允許用戶限制一款應(yīng)用程序所能使用的gear數(shù)量,同時也控制著應(yīng)用程序是否可以自動實(shí)現(xiàn)擴(kuò)展。擴(kuò)展工作由一套位于應(yīng)用程序與公共互聯(lián)網(wǎng)之間的負(fù)載平衡cartridge所控制。HAProxy cartridge會與應(yīng)用程序一道運(yùn)行在首套gear當(dāng)中,而當(dāng)應(yīng)用程序擴(kuò)展至三套gear以上時、首套gear中的應(yīng)用將被關(guān)閉,從而保證HAProxy能夠使用該gear中的所有可用資源。
產(chǎn)品評測:
產(chǎn)品 | OpenShift Online與OpenShift Origin |
公司 | 紅帽 |
優(yōu)勢 | 安裝、配置、應(yīng)用程序部署以及協(xié)作都非常簡便。強(qiáng)大的工具與友善的用戶在線管理控制臺值得稱贊。說明文檔與背景幫助信息非常出色。前期成本投入很低甚至無需成本。 |
缺點(diǎn) | 應(yīng)用程序推送速度有可能比較慢。Origin版本中的DNS配置難度較大。在Online版本中,使用成本會隨著自動擴(kuò)展的進(jìn)行而迅速飆升。對托管環(huán)境的控制比較有限。 |
為了判斷何時需要添加新gear,HAProxy會整理往來數(shù)據(jù)流量以確保各gear之上的負(fù)載能夠平衡。紅帽公司為每套gear分配了十六條連接,一旦應(yīng)用程序運(yùn)行所使用的資源達(dá)到整體資源的九成,新gear將立即加入進(jìn)來。在Silver版本中,我們進(jìn)行了計(jì)算:如果用戶每月三十天、每天二十四小時不間斷使用資源,那么一個月的出去大約在一千美元左右。不過由于大部分應(yīng)用程序都存在峰值時段,因此我們不太可能遇到十六套gear全部長時間滿載的狀況。
在服務(wù)器上完成賬戶設(shè)置之后,下一步就是配置客戶端工具。雖然OpenShift應(yīng)用能夠直接通過紅帽的RHC命令行程序加以管理,但我們?nèi)匀贿x擇了Eclipse以及方便快捷的JBoss GUI--除了實(shí)際效果拔群之外,這樣的處理方式還不會給我們部署好的應(yīng)用帶來任何額外開銷。為了進(jìn)一步保護(hù)我們的GUI工具,大家還需要使用調(diào)試功能、從而更輕松地實(shí)現(xiàn)對潛在問題的追蹤。
Eclipse要求用戶提前安裝Java JDK或者JRE,而通過Eclipse向OpenShift發(fā)布則需要用到一款插件--不過別擔(dān)心,大家可以從Eclipse MartketPlace網(wǎng)站上輕松完成安裝。不過,需要提醒大家的是這些先決條件只來源于本地Eclipse開發(fā)平臺;如果大家利用RHC命令行工具來管理應(yīng)用程序,那么完全可以不理會上述組件。OpenSift應(yīng)用的全部源代碼都由GIT庫負(fù)責(zé)管理,其運(yùn)作方式可本地可遠(yuǎn)程、而且能夠在客戶端與服務(wù)器之間實(shí)現(xiàn)同步。
我們參照的是紅帽公司官方網(wǎng)站上的說明,其內(nèi)容非常詳盡,但事實(shí)證明這些指導(dǎo)信息有點(diǎn)陳舊--而且直接導(dǎo)致配置成果無法正常起效。這類狀況在開源文檔當(dāng)中經(jīng)常發(fā)生,因?yàn)檫@種失誤往往源自不斷涌現(xiàn)的產(chǎn)品及開發(fā)工具新版本。在進(jìn)行了一系列深層研究后,我們意識到雖然已經(jīng)安裝了Eclipse最新版本(即Kepler),但JBoss工具說明中所提到的其實(shí)是另一個推出時間更晚的修正版本;因此我們需要安裝這套更新版本,從而使開發(fā)環(huán)境正常運(yùn)行。
在開發(fā)環(huán)境被正確配置完成之后,接下來要做的就是利用Apache Tomcat作為Web服務(wù)器、以PostgreSQL數(shù)據(jù)庫為后端Web內(nèi)容安裝第一款應(yīng)用程序了。為了初步驗(yàn)證概念,我們的第一基進(jìn)在網(wǎng)頁中顯示一條簡單消息、其內(nèi)容則提取自數(shù)據(jù)庫。
在創(chuàng)建發(fā)安全密鑰之后,我們又相繼完成了數(shù)據(jù)庫設(shè)置、連接字符串與網(wǎng)頁構(gòu)建,現(xiàn)在是時候開發(fā)并部署新應(yīng)用程序了。對于首次創(chuàng)建來說,這個過程相當(dāng)耗費(fèi)時間,不過后續(xù)開發(fā)(增量式開發(fā))的過程則相當(dāng)快捷。在經(jīng)過調(diào)整之后我們的"Hello World"頁面終于如預(yù)期般通過遠(yuǎn)程瀏覽器顯示在混合OpenShift/用戶分配域名之上,而且整個過程無需涉及DNS。聽起來很簡單,總體來說也確實(shí)不難,但剛剛接角OpenShift的開發(fā)人員需要在應(yīng)用程序被"推送"至服務(wù)器時多加注意。
當(dāng)接收所推送的變更時,Openshift會在默認(rèn)情況下中止對應(yīng)應(yīng)用程序、對其進(jìn)行重建而后重啟該應(yīng)用。這一過程耗時很長,而且會給生產(chǎn)型應(yīng)用程序帶來我們不希望看到的停機(jī)時間。為了解決停機(jī)問題,OpenShift提供一套熱部署選項(xiàng),允許開發(fā)人員在無需重啟應(yīng)用程序的前提下實(shí)現(xiàn)變更推送。大部分應(yīng)用程序類型都能夠利用熱部門機(jī)制實(shí)現(xiàn)推送,只有Jenkins以及HAProxy等少數(shù)應(yīng)用屬于例外。
OpenShift Origin
在OpenShift Online上成功建立并測試了幾款應(yīng)用程序之后,我們決定轉(zhuǎn)而嘗試OpenShift Origin。OpenShift Origin的源文件可以作為虛擬機(jī)(可用于KVM、VMware或者VirtualBox)從GitHub上下載,也可以直接下載源代碼并通過Puppet以及RPM創(chuàng)建屬于自己的版本。為了節(jié)省時間,我們選擇了VirtualBox虛擬機(jī)。在紅帽在線說明的指引下,我們以最低要求運(yùn)行了mDNS(一種備選、組播主機(jī)名稱解析服務(wù)),從而快速完成了部署工作。
在OpenShift Origin的導(dǎo)入部署指南當(dāng)中,我們發(fā)現(xiàn)其描述方式"詳盡到令人發(fā)指"的程度--是的,我們敢保證事實(shí)正是如此。不過這只是種委婉的贊揚(yáng),絕不屬于批評。這份指南非常出色,而且在我們看來完全應(yīng)該成為其它開源產(chǎn)品說明文檔的執(zhí)行標(biāo)準(zhǔn)。
紅帽公司推薦使用mDNS,它能夠幫助我們擺脫對DHCP的依賴。不過無論是否使用mDNS,DNS配置對于我們來說都是場艱難卓絕的斗爭。我們的服務(wù)器已經(jīng)運(yùn)行有DHCP,因此我們希望能讓它在測試當(dāng)中發(fā)揮作用。最后,我們通過主機(jī)IP與OpenShift中分配的FQDN(即完全限定域名)實(shí)現(xiàn)了測試應(yīng)用的訪問。這其實(shí)算是一種小瑕疵,因此我們在利用專有DNS服務(wù)器的生產(chǎn)環(huán)境中不可能實(shí)際采用這種形式。
性能表現(xiàn)的問題就更嚴(yán)重了。在我們的測試服務(wù)器上,OpenShift管理控制臺的響應(yīng)速度相當(dāng)緩慢--即使我們?yōu)槠浞峙錇?GB內(nèi)存(相較于最低配置要求高出3GB)并采用了多核心服務(wù)器級設(shè)備。我們原本以為本地方案在運(yùn)行速度上會優(yōu)于在線版本,但事實(shí)卻恰恰相反。我們猜測,這可能是由前面提到的DNS問題所引發(fā)。
在Eclipse方面,即使是在閱讀了非常詳盡的安全密鑰管理與本地主機(jī)新密鑰分配說明之后,我們發(fā)現(xiàn)自己仍然需要一套額外的獨(dú)立Eclipse設(shè)置--因?yàn)镺penShift Origin無法與我們的安全密鑰正常對接。在這里我們再次作出小小妥協(xié),同絕大多數(shù)開發(fā)人員一樣單獨(dú)選擇了OpenShift Online版本或者OpenShift Origin版本,而沒有將二者加以結(jié)合。
最后,我們成功在自己的本地OpenShift Origin主機(jī)上開發(fā)并部署了幾種類型的應(yīng)用程序,并用到了一系更設(shè)置與數(shù)據(jù)庫方案。這臺主機(jī)設(shè)備曾經(jīng)有幾次崩潰及卡死的狀況出現(xiàn),我們不得不對其進(jìn)行冷啟動。開發(fā)過程沒有出現(xiàn)問題,不過我們意識到在實(shí)際生產(chǎn)環(huán)境中仍然可能遇上問題--舉例來說,將OpenShift Origin用于托管那些擁有與互聯(lián)網(wǎng)托管應(yīng)用類似的服務(wù)水平協(xié)議的企業(yè)內(nèi)網(wǎng)應(yīng)用。
出于測試的目的,我們最終將勝者頭銜頒發(fā)給了速度更快、使用更簡單的OpenShift Online--它徹底消除了DNS帶來的麻煩,單從這個角度講就比我們的OpenShift Origin本地版本好上太多了。不過它仍然要求使用安全密鑰。安全密鑰的管理同樣令人抓狂,但總體來說我們對于能在開源產(chǎn)品中看到這樣的安全改進(jìn)而感到振奮,由此可見如今的技術(shù)行業(yè)終于開始對一直困擾著開源方案的安全缺陷著手改進(jìn)了,非常好!不過話雖如此,要滿足安全最初實(shí)踐要求,我們?nèi)匀唤ㄗh大家通過購買供應(yīng)商技術(shù)支持與服務(wù)水平協(xié)議來保證生產(chǎn)環(huán)境中的云計(jì)算產(chǎn)品能擁有更為完善的保護(hù)機(jī)制。
最典型的例子就是,紅帽公司幾乎沒有為OpenShift Online以及OpenShift Origin提供任何擔(dān)保承諾,并特別聲明稱該公司不會對大部分與托管相關(guān)的重要運(yùn)營項(xiàng)目提供保障,其中包括運(yùn)行時間、備份以及恢復(fù)等。
即使在Silver版本當(dāng)中,對于服務(wù)水平感到不滿的客戶也無法獲得任何與自身支出相符的承諾。其實(shí)這種"誰用誰負(fù)責(zé)"的論調(diào)在開源產(chǎn)品當(dāng)中極為常見,因?yàn)樵絹碓蕉嗟膹S商開始將開源方案視為發(fā)掘潛在客戶的重要手段--他們只在乎能領(lǐng)先商業(yè)競爭對手一步奪取客戶,而根本沒有充分評估產(chǎn)品的誠意。但這并不能影響我們對開源的支持熱情,畢竟其真正優(yōu)勢不可忽視,即能夠自由且充分地對產(chǎn)品進(jìn)行評估、并從架構(gòu)及核心的深度加以研究。不過在實(shí)際使用開源代碼的時候,請大家務(wù)必認(rèn)真提前考慮到現(xiàn)實(shí)問題、并為其準(zhǔn)備一套健康的實(shí)測環(huán)境。
原文鏈接:http://www.networkworld.com/reviews/2013/120213-red-hat-openshift-test-276332.html?page=1