尼洪濤
摘要:近年來,云服務(wù)的概念越來越火,它是一種以云計(jì)算的模式將網(wǎng)絡(luò)中的各種軟硬件資源整合起來,實(shí)現(xiàn)數(shù)據(jù)的儲(chǔ)存、處理、共享的托管技術(shù)。越來越多的企業(yè)選擇將自己的系統(tǒng)部署到云平臺(tái)上,這樣不僅節(jié)省下來購(gòu)置服務(wù)器的費(fèi)用,而且也使得系統(tǒng)更加穩(wěn)定,企業(yè)則可以專注于自己的業(yè)務(wù)發(fā)展。文章首先介紹—下云服務(wù)的基本概念,然后從一個(gè)Web項(xiàng)目部署到云平臺(tái)的需求入手,簡(jiǎn)單分析—下其中遇到的一些問題以及相應(yīng)的解決方案。
關(guān)鍵詞:云服務(wù);Web項(xiàng)目;部署
1 基本概念
很多人都聽說過“云服務(wù)”,但“云”只是一個(gè)比喻,大家并不知道它到底是什么。下面就簡(jiǎn)單介紹一下云服務(wù)的基本概念。 云服務(wù)并不是一個(gè)單一的服務(wù),它主要分為3種模式:基礎(chǔ)設(shè)施即服務(wù)(Infrastructure-as-a-Service,IaaS)、平臺(tái)即服務(wù)( Platform-as-a- Service,PaaS)、軟件即服務(wù)(Software-as-a-Service, SaaS).
1.1 IaaS
以提供服務(wù)器,存儲(chǔ)和網(wǎng)絡(luò)硬件為服務(wù)的。如果一個(gè)企業(yè)想要在服務(wù)器上運(yùn)行一些企業(yè)的應(yīng)用,只需要租用云服務(wù)公司的IaaS服務(wù)即可,IaaS會(huì)提供給你所需要的一切硬件設(shè)備。這樣既節(jié)省了購(gòu)買硬件的成本,也無需對(duì)硬件設(shè)施進(jìn)行維護(hù)。通俗地講IaaS就是提供裸機(jī)的租用服務(wù)。
1.2 PaaS
以提供開發(fā)和分發(fā)應(yīng)用的解決方案為服務(wù)的。比如提供虛擬服務(wù)器和操作系統(tǒng),網(wǎng)絡(luò)安全,數(shù)據(jù)存儲(chǔ)以及應(yīng)用開發(fā)工具等。大多數(shù)公司的開發(fā)都是在這一層進(jìn)行,它使得不同開發(fā)部門之間的合作變得更容易。通俗地講PaaS就是提供安裝了操作系統(tǒng)和常用軟件的服務(wù)器網(wǎng)絡(luò)的租用服務(wù)。
1.3 SaaS
一種通過Internet提供軟件服務(wù)的模式,用戶不需要再購(gòu)買軟件,而改為向軟件提供商租用基于Web的軟件服務(wù),來管理企業(yè)經(jīng)營(yíng)活動(dòng),且無需對(duì)軟件進(jìn)行維護(hù),服務(wù)提供商會(huì)全權(quán)管理和維護(hù)軟件。通俗地講SaaS就是提供通過網(wǎng)絡(luò)訪問我們所需要的軟件的租用服務(wù)。
2選型分析
下面結(jié)合筆者不久前做過的一個(gè)項(xiàng)目來進(jìn)行具體分析。現(xiàn)有ORACLE公司一套成熟的PLM產(chǎn)品,以下簡(jiǎn)稱APLM。該產(chǎn)品由java語(yǔ)言開發(fā),主要運(yùn)行在Linux平臺(tái)上,需要在服務(wù)器上預(yù)裝JDK,Oracle DB,Weblogic等第三方軟件。目前APLM產(chǎn)品均部署在客戶自己公司的服務(wù)器上,客戶希望能將APLM產(chǎn)品部署在ORACLE公司的云平臺(tái)上,可通過簡(jiǎn)單地配置實(shí)現(xiàn)快速部署。
云服務(wù)有3種模式,到底選用哪種云服務(wù)模式來實(shí)現(xiàn)APLM產(chǎn)品在云平臺(tái)上的部署呢?
最初的設(shè)想是采用IaaS服務(wù),提供服務(wù)器裸機(jī)由客戶自行安裝APLM產(chǎn)品,這種模式最簡(jiǎn)單,但其實(shí)與現(xiàn)有的非云平臺(tái)部署模式并無太大的區(qū)別,客戶依然需要先安裝所有需要的軟件,再安裝APLM產(chǎn)品,并沒有體現(xiàn)出云服務(wù)的優(yōu)勢(shì)。
其次設(shè)想過采用SaaS服務(wù),在云平臺(tái)上提供一個(gè)已經(jīng)安裝配置好APLM產(chǎn)品的系統(tǒng)鏡像文件,客戶只要將系統(tǒng)鏡像文件掛載在云平臺(tái)服務(wù)器上即可使用,可謂簡(jiǎn)單快速。但實(shí)際上這種模式也不可行,因?yàn)锳PLM產(chǎn)品復(fù)雜,客戶的配置千差萬別,DB不同,部署模式不同,僅提供一個(gè)已經(jīng)安裝配置好的APLM產(chǎn)品并不能滿足所有客戶的需求。
所以最適合的是采用PaaS服務(wù)。設(shè)計(jì)方案同樣為提供一個(gè)系統(tǒng)鏡像文件,先在鏡像文件中預(yù)裝APLM產(chǎn)品安裝運(yùn)行時(shí)所需要的第三方軟件,省去了安裝這些第三方軟件的時(shí)間,同時(shí)在鏡像文件中包含APLM安裝文件(云平臺(tái)定制版),當(dāng)客戶將系統(tǒng)鏡像文件掛載到云平臺(tái)服務(wù)器上的時(shí)候,只需通過簡(jiǎn)單的客戶化配置即可完成安裝,開始使用。類似于我們新買手機(jī)第一次開機(jī)時(shí)的配置過程。
3 問題及解決方案
ORACLE公司為了方便開發(fā)公有云服務(wù)(ORACLEPublic Cloud,OPC),提供了一套叫作虛擬機(jī)服務(wù)器環(huán)境(Oracle VM Server,OVS),它模擬了真實(shí)的OPC運(yùn)行環(huán)境,可以在它上面進(jìn)行云服務(wù)開發(fā)和測(cè)試工作,同時(shí)開發(fā)完成后可方便地將整個(gè)系統(tǒng)打包成為OPC可用的系統(tǒng)鏡像文件,并上傳部署到OPC。
由于APLM產(chǎn)品主要運(yùn)行在Linux平臺(tái)上,我們采用了常用的Oracle Linux 6.8操作系統(tǒng)為模板來制作鏡像文件。
APLM產(chǎn)品通過InstaIIAnywhere這款第三方軟件制作安裝文件的,安裝時(shí)通過交互式的窗口來收集用戶輸入的產(chǎn)品配置信息。但在OPC的Linux操作系統(tǒng)中,為了安全性,默認(rèn)是沒有提供VNC服務(wù)的,沒有可視化界面之前的安裝文件便無法安裝,需要對(duì)原有的安裝文件進(jìn)行修改。
其實(shí)用InstaIIAnywhere制作的安裝文件,在可視化配置界面一步步引導(dǎo)用戶輸入配置信息的時(shí)候,只是在收集配置信息,真正的安裝過程并未開始。等到所有配置信息收集完畢,最后會(huì)生成一個(gè)包含所有配置信息的c onfig.property文件,真正安裝時(shí)會(huì)讀取該配置文件。
本文設(shè)計(jì)了3種方式來生成用戶的配置文件。
(l)將可視化界面的這些配置步驟用Linux scripts腳本來代替,采用命令行問答的方式引導(dǎo)用戶輸入所有配置信息,同時(shí)生成config.property文件,將用戶輸入的信息寫入到該文件中。
(2)提供一個(gè)包含所有默認(rèn)配置信息的config.property文件,安裝時(shí)如果用戶選擇默認(rèn)安裝的方式,則直接讀取該文件。
(3)用戶可以自己定義一個(gè)config.property文件,或者復(fù)制之前安裝過程中生成的配置文件。安裝時(shí)用戶可以指定配置文件的路徑,讀取其中的配置信息。
通過上面的3種生成配置文件的方式,我們可以跳過APLM原有的通過可視化界面收集客戶配置信息的過程,同時(shí)第2種、第3種生成配置文件的方式更是極大地簡(jiǎn)化了客戶的輸入操作。
APLM產(chǎn)品提供單機(jī)和集群兩種部署模式,同時(shí)OPC也提供數(shù)據(jù)庫(kù)云服務(wù)( Database Cloud Service,DBCS),將一臺(tái)或多臺(tái)數(shù)據(jù)庫(kù)服務(wù)器部署在云平臺(tái)上的。因此我們的部署方式也更加豐富靈活。
本文提供了如下3種部署方式。
(1) All-in-one部署方式,將所有軟件(包括APLM產(chǎn)品、第三方軟件、數(shù)據(jù)庫(kù)等)全部安裝在一臺(tái)云服務(wù)器上。此種部署方式主要用于客戶體驗(yàn)和培訓(xùn)。
(2) Multi-Node部署方式,即分布式的部署方式??筛鶕?jù)客戶需求將APLM產(chǎn)品安裝在不同的云服務(wù)器上。如單獨(dú)的Admin Node服務(wù)器,一個(gè)或多個(gè)Managed Node服務(wù)器,一個(gè)Admin Node+ -個(gè)或多個(gè)Managed Node服務(wù)器,單獨(dú)的數(shù)據(jù)庫(kù)服務(wù)器等。此種部署方式最為常見。
(3) DBCS部署方式,類似于分布式的安裝方式。將其中的數(shù)據(jù)庫(kù)服務(wù)器用DBCS服務(wù)所替代,APLM產(chǎn)品直接連接DBCS服務(wù)。
不僅支持3種部署方式,而且還要支持多種數(shù)據(jù)庫(kù)的導(dǎo)入。All-in-one模式因?yàn)橹饕糜诳蛻趔w驗(yàn)和培訓(xùn),因此導(dǎo)入的是Demo數(shù)據(jù)庫(kù),非常小。但是后兩種模式要導(dǎo)入的是客戶的數(shù)據(jù)庫(kù),大小差別很大。如果按照客戶最大的數(shù)據(jù)庫(kù)空間需求預(yù)留,顯然對(duì)于其他不需要大空間的客戶會(huì)造成浪費(fèi)。因此按照最小空間需求All-in-one模式制作系統(tǒng)鏡像文件(大小在40 G左右),然后根據(jù)客戶選擇數(shù)據(jù)庫(kù)的種類動(dòng)態(tài)分配額外的硬盤空間。
OPC支持標(biāo)準(zhǔn)的REST API,我們調(diào)用REST API來動(dòng)態(tài)分配硬盤空間。
首先通過用戶名和密碼連接OPC,獲取到OPC的Cookie。
最后利用獲取到的Cookie調(diào)用REST API,分配硬盤空間。
完成配置信息的收集和硬盤空間的分配,接下來就是軟件安裝的過程了。軟件安裝的過程與原來的一致,無需修改,在此不再贅述。
4結(jié)語(yǔ)
本文主要介紹了云服務(wù)的一些基本概念,以及將一個(gè)已有的Web項(xiàng)目部署到OPC上3種云服務(wù)的選型分析,部署中遇到的兩個(gè)技術(shù)難點(diǎn)以及解決方案。當(dāng)然整個(gè)部署過程還有其他很多工作需要完成,由于篇幅所限不再一一介紹,以后有機(jī)會(huì)再進(jìn)行深入探討。