在整合完成后再更改開源云開發(fā)工具是很困難的事。開發(fā)人員和IT員工必須對使用和支持該工具都感到得心應(yīng)手,并且做好長期使用的準(zhǔn)備。這需要對開源工具進(jìn)行廣泛的研究,以及豐富的評估測試。
云開發(fā)平臺實(shí)現(xiàn)的目標(biāo)都類似,但仍然需要為企業(yè)獨(dú)特的業(yè)務(wù)和開發(fā)需求選擇合適的平臺。兩種最常見的開源平臺即服務(wù)(PaaS)工具是Red Hat公司的OpenShift,以及Pivotal軟件公司的CloudFroundry。要確定哪一個工具更適合,需要評估三個重要的關(guān)鍵特性:所支持的編程語言、架構(gòu)以及如何與第三方工具集成。
OpenShift vs.Cloud Foundry:語言支持和功能
企業(yè)希望選擇一個可以支持當(dāng)前和未來的語言偏好的開源PaaS工具。OpenShift使用模塊的概念,又叫做cartridges,支持Java、 PHP、Python、Perl、Node.js,數(shù)據(jù)庫語言則支持MySQL、MongoDB和PostgreSQL。另外,OpenShift還支持諸如Jenkins和Cron這樣的工具,和包括Oracle業(yè)務(wù)流程管理套件以及Red Hat Jboss業(yè)務(wù)規(guī)則管理系統(tǒng)(BRMS)。
與此相比,Cloud Foundry對語言的支持是以buildpack的形式或者是用來編譯平臺應(yīng)用程序的腳本。這些buildpack包括Java、Node.js、 Ruby、 binary、Go、PHP、Python以及其他。用戶還可以選擇編寫自己的buildpack。
接下來,考慮一個開源PaaS工具里所需要的基本特性和功能。記住,每種工具都有開源和商業(yè)的版本,同時還有托管和本地的不同。例如,Red Hat提供OpenShift在線版和OpenShift企業(yè)版,后者是托管在用戶的數(shù)據(jù)中心。兩者都提供自服務(wù)的開發(fā)平臺,多語言支持、自動化、協(xié)作、容器移植性和對不同云基礎(chǔ)架構(gòu)的支持。
Cloud Foundry提供安全性、監(jiān)控和管理、容器移植性、混合云支持、自動更新的功能,以及數(shù)據(jù)庫、分析器和其他中間件的服務(wù)集成。
架構(gòu)和集成也很重要
開源PaaS產(chǎn)品通常由多個模塊或組件構(gòu)成,因此IT決策人員要核查每個平臺的系統(tǒng)架構(gòu)。例如,Cloud Foundry包括一個路由器、認(rèn)證服務(wù)器、應(yīng)用生命周期管理器、應(yīng)用程序執(zhí)行引擎、服務(wù)代理、消息,以及指標(biāo)和日志的元素。
OpenShift使用的架構(gòu)同Cloud Foundry大相徑庭。它由單個節(jié)點(diǎn)組成,以容納應(yīng)用程序代碼和服務(wù),同時還有一系列的單獨(dú)代理來管理節(jié)點(diǎn)和提供服務(wù)。除此之外,OpenShift的架構(gòu)還包括一個消息系統(tǒng)將節(jié)點(diǎn)和代理綁定到一起,并且使用RESTful的API同外部工具整合。
開源開發(fā)平臺通常需要同其他工具整合來提供全套的功能。例如,Cloud Foundry通常同以下的平臺工具集成使用:
- Diego運(yùn)行環(huán)境:提供共享內(nèi)存,工作負(fù)載調(diào)度和不同的容器格式。
- Lattice:一個Pivotal工具用來在一個云集群中運(yùn)行容器化的工作負(fù)載。Lattice為Cloud Foundry提供路由,健康度,執(zhí)行,存儲和日志的功能。
- Bosh:一個用于云服務(wù)的版本控制,部署和生命周期管理的開源工具。
同樣,OpenShift也集成并依賴于幾個工具,包括RHC客戶端工具,主要用于創(chuàng)建,部署和管理應(yīng)用,以及使用JBoss Developer Studio創(chuàng)建基于Web的應(yīng)用。
除了以上提到的開源工具,企業(yè)還可以考慮亞馬遜Web服務(wù)、Google App Engine和微軟的Azure提供的公有云開發(fā)工具。但是當(dāng)評估任何開源開發(fā)平臺時,重要的是對所涉及的組成工具–尤其是那些第三方的產(chǎn)品,要有清醒的認(rèn)識。