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