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