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