鄭偉平, 劉健敏
(華南師范大學計算機學院,廣州 510631)
基于圖模型的云平臺應用部署技術(shù)研究
鄭偉平*, 劉健敏
(華南師范大學計算機學院,廣州 510631)
為了實現(xiàn)與平臺無關(guān)的應用部署,提出了一種基于“部署圖”的應用部署方案,給出一個通用云平臺應用部署體系,重點介紹了部署工具的設計與實現(xiàn)技術(shù),并實現(xiàn)了一個原型系統(tǒng),結(jié)合部署實例證明所提部署方案是可行的且具有平臺無關(guān)、可視化和可復用等優(yōu)點.
云平臺; 應用部署; 部署圖; 平臺無關(guān); 子圖同構(gòu)
目前,云平臺被廣泛使用,應用系統(tǒng)面對的部署環(huán)境更加復雜[1]. 應用部署是云平臺核心功能,云平臺提供商通常都提供平臺專屬的部署工具(如命令行、網(wǎng)頁控制臺、API等). 例如,亞馬遜提供了AWS Cloud Formation、OpsWorks、CodePipeline和CodeDeploy等一系列部署工具、服務與系統(tǒng);OpenStack有dodai-deploy、Devstack以及Fuel等多種部署工具. 這些工具和接口與特定平臺相關(guān),缺乏普遍適用性,部署時需要針對不同云平臺進行重復配置和部署,效率較低,且容易出錯. PaaS云平臺不單提供了部署工具,還限定了平臺語言、服務、庫以及相關(guān)的部署流程與模型[1]. 考慮到PaaS平臺部署模型的不同及其在平臺遷移、學習成本和跨平臺部署等方面存在的問題,劉歡歡等[2]對亞馬遜、Google和微軟等PaaS平臺進行總結(jié),建立了PaaS平臺部署環(huán)境元模型,提出了一種元模型驅(qū)動的部署方法;SIMBAD團隊[3]開發(fā)的m-COAPS實現(xiàn)了面向異構(gòu)PaaS平臺的通用資源描述與操作接口,目前已經(jīng)對接了OpenShift、Amazon Elastic BeansTalk和Cloud Foundry等PaaS平臺;HOSSNY等[4]對COAPS進行擴展,使其支持GAE平臺. 針對云資源異構(gòu)問題,YONGSIRIWIT等[5]提出了一種使用TOSCA、OCCI以及CIMI等資源描述標準來構(gòu)建云資源的通用語義知識庫的語義框架,實現(xiàn)對異構(gòu)云資源描述的無縫轉(zhuǎn)化;NGUYEN等[6]基于面向?qū)ο蠓椒ㄔ谠破脚_之上構(gòu)建一個抽象層,以屏蔽云平臺的底層細節(jié),提高了云平臺應用開發(fā)與部署的通用性;BRANDTZ?G等[7]使用構(gòu)件和領(lǐng)域特定語言方法,提出了一種描述語言Pim4Cloud,實現(xiàn)IaaS平臺和PaaS平臺上應用軟件的部署建模.
與文獻[2-4,6,8]的研究(主要面向PaaS平臺)不同,本文研究IaaS云平臺的通用應用部署技術(shù),以圖模型為抽象語法,提出了一種云平臺應用部署描述工具——部署圖(Deploy Graph),闡述了基于部署圖的應用部署體系,并且實現(xiàn)了一個作為部署工具的云應用部署管理平臺. 文中還介紹了混合部署與增量部署技術(shù),展示了圖模型在應用部署上的靈活性與可擴展性.
為了實現(xiàn)與平臺無關(guān)的應用部署,必須對部署描述加以抽象,使其具備通用性. 本文以圖模型作為抽象語法,提出了用于描述部署任務的“部署圖”概念.
定義1 部署圖是六元組DG=(N,E,NT,ET,C,P),其中N是有限個節(jié)點的非空集合;E?N×N是有向邊的集合;節(jié)點類型集合NodeType={SG,VM,DU,CN},其中SG表示安全組,VM表示虛擬機器,DU表示可部署單元,CN表示復合節(jié)點. NT:N→NodeType是節(jié)點類型函數(shù);邊類型集合EdgeType={hoston,dependon,accesson},其中hoston表示托管、部署或安裝關(guān)系,dependon表示依賴關(guān)系,accesson表示通信關(guān)系,ET:E→EdgeType是邊類型函數(shù);C:EdgeType→NodeType×NodeType是邊類型約束函數(shù),對各種類型的邊兩端連接的節(jié)點類型進行了約束;P:N∪E→KEY×VALUE是從節(jié)點或邊到(key,value)對集合的映射函數(shù),表示節(jié)點或邊的相關(guān)屬性.
關(guān)于定義1,有幾點需要說明:
(1)定義1給出了節(jié)點類型集合、邊類型集合的最小集,實際使用時應根據(jù)資源種類、范圍以及云平臺所支持的技術(shù)屬性,對NodeType、EdgeType、KEY和VALUE等集合做進一步的界定和擴展.
(2)安全組SG用于設定VM節(jié)點之間的訪問規(guī)則(主要是訪問可達性);虛擬機器VM是物理機器在云平臺上的映射,其基本屬性包括CPU、內(nèi)存、存儲、網(wǎng)絡和虛擬機鏡像等,屬于部署環(huán)境描述的“硬件”部分;可部署單元DU是應用系統(tǒng)的“軟件”模塊,或者是軟件棧的其他組成成分(如數(shù)據(jù)庫、JVM等);復合節(jié)點CN是一種特殊節(jié)點,其本質(zhì)是一個部署子圖,但在圖中表示為一個節(jié)點,用于描述事先裝好軟件棧的機器節(jié)點,其虛擬機鏡像屬性應指向事先制作好的虛擬器件文件. 復合節(jié)點提供了部署描述粒度與部署管理的靈活性.
(3)邊類型hoston強調(diào)2個節(jié)點間的位置約束關(guān)系,即必須部署在同一虛擬機器上;dependon表示部署安裝的先后次序;accesson表示訪問可達性的約束. 總的來說,邊類型蘊含了位置約束、組件調(diào)用以及安裝次序等重要的部署語義信息.
(4)為了表達更豐富的部署語義,部署圖還為邊與節(jié)點設置了屬性信息. 屬性的KEY、VALUE信息可以從配置腳本、使用說明書和開發(fā)手冊等資料中學習和提取.
下面從部署模型、工具支持和部署流程等3個方面闡述基于部署圖的云平臺應用部署體系.
1.1 部署模型
部署模型由部署圖、部署工具、云平臺以及部署管理策略等4個要素組成. 部署圖是抽象描述工具,是通用部署的概念基礎(chǔ);部署工具實現(xiàn)了部署圖概念,是通用部署的實施基礎(chǔ);云平臺是管理對象,其部署接口是部署模型的重要組成成分;部署管理策略規(guī)約了部署模型支持的功能和特性,例如跨平臺部署、異常回滾和智能調(diào)度等,在一定程度上影響部署工具的實現(xiàn).
1.2 工具支持
部署圖是通用的部署語義描述工具,無法直接使用云平臺的原生部署接口. 因此需要設計一套部署工具,對部署圖進行解釋,并轉(zhuǎn)換成為適用于特定云平臺的部署代碼,實現(xiàn)通用部署功能. 本文將在第2節(jié)闡述部署工具“云應用部署管理平臺”的設計與實現(xiàn).
1.3 部署流程
在部署圖及其部署工具的支持下,本部署體系的部署流程(圖1)包括4個步驟:
(1)規(guī)劃描述. 與傳統(tǒng)應用部署相同,實施部署之前必須詳盡規(guī)劃,包括確定系統(tǒng)邊界、預估資源需求、劃分部署區(qū)域、制定計劃和制作鏡像等一系列準備工作. 但不同的是,不直接使用云平臺所提供的原生部署工具或接口. 在本步驟中,部署工作人員使用部署工具制作部署圖,描述部署任務,并將部署圖文件和應用系統(tǒng)代碼一起上傳到“部署信息存儲庫”中.
(2)解釋轉(zhuǎn)換. 在確定部署圖之后,部署引擎解釋部署圖,檢查部署圖的合法性,確定部署目標云平臺,然后將部署圖轉(zhuǎn)換成為調(diào)用目標云平臺原生接口的部署代碼. 如果實施跨平臺部署,引擎還需要按照不同平臺,先將部署圖分割成為多個部署子圖,再分別轉(zhuǎn)換成原生部署代碼.
(3)遠程部署. 部署平臺將轉(zhuǎn)換得到的部署代碼傳輸?shù)侥繕嗽破脚_上,調(diào)用云平臺的部署服務接口,完成遠程部署.
(4)過程管理. 事實上,部署流程的步驟(1)、(2)、(3)存在先后次序關(guān)系,而本步驟涵蓋部署流程的全過程. 其管理內(nèi)容包括圖版本管理、歷史記錄、狀態(tài)跟蹤和異常管理等.
圖1 云應用部署流程
2.1 平臺設計
本文采用分層模型設計了一個部署工具(圖2),即云應用部署管理平臺(以下簡稱平臺). 該平臺由應用層、調(diào)度層、適配層及資源層組成:
(1)應用層. 為管理人員提供了統(tǒng)一部署接口,包括部署圖管理、部署與監(jiān)控、應用元數(shù)據(jù)管理、云平臺信息管理和訪問控制等功能. 部署圖管理提供部署圖錄入、語法檢查、子圖定義和版本管理等功能;部署與監(jiān)控是該層核心功能,管理人員調(diào)取部署圖,填寫部署策略與平臺信息后實施部署,部署后可監(jiān)控應用系統(tǒng)實例的健康狀態(tài)和屬性信息;應用元數(shù)據(jù)管理完成各類軟件系統(tǒng)的屬性管理、定義部署圖基礎(chǔ)數(shù)據(jù)和管理代碼鏡像等;云平臺信息管理負責接入部署工具的各個云平臺的訪問、資源和特性等信息的獲取和設置;訪問控制功能驗證管理人員是否有權(quán)使用本平臺以及訪問云平臺的資源.
(2)調(diào)度層. 根據(jù)部署上下文以及云平臺資源情況,決定部署任務的實施位置與步驟等. 首先解析部署圖,完成語義檢查(包括一致性檢查、完整性檢查和權(quán)限檢查等),必要時分解部署圖;然后運行調(diào)度算法確定部署目標平臺、實施步驟和優(yōu)先級別. 如果涉及任務分解,還需要進行同步控制,并管控可能出現(xiàn)的異常和錯誤.
(3)適配層. 屏蔽了各云平臺的差異,向上提供統(tǒng)一部署接口與統(tǒng)一監(jiān)控接口. 該層承上啟下,通過“轉(zhuǎn)換引擎”將調(diào)度層輸入的部署圖轉(zhuǎn)換為目標云平臺上的部署代碼,再調(diào)用資源層的云平臺訪問代理,啟動遠程部署. 類似地,適配層也通過訪問代理獲取資源信息,向上封裝成為統(tǒng)一監(jiān)控接口.
(4)資源層. 由部署信息、云平臺資源信息、部署平臺管理信息以及存取上述信息的相關(guān)功能組成. 另外,部署平臺為接入的各個云平臺產(chǎn)生一個訪問代理實例,作為監(jiān)護進程長駐,負責與各云平臺的通信與控制.
圖2 部署平臺分層架構(gòu)
2.2 平臺實現(xiàn)
根據(jù)上述架構(gòu),本文使用Node.js+MongoDB技術(shù)實現(xiàn)了一個云應用部署管理平臺的原型系統(tǒng)(CloudDeployments),其主要功能如下:
(1)方案管理. 實現(xiàn)了“云平臺信息管理”的部分功能,包括云平臺認證、資源描述和特性服務等元數(shù)據(jù)管理. 云平臺接入系統(tǒng)時,先為其創(chuàng)建一套管理描述文件,同時在資源層生成相應的訪問代理實體.
(2)拓撲管理. 系統(tǒng)僅實現(xiàn)部署功能,尚未實現(xiàn)云平臺資源監(jiān)控功能,因此需要管理員人為地管理接入云平臺的拓撲結(jié)構(gòu),包括物理節(jié)點、連接關(guān)系、管理域和配置信息等. 在后續(xù)版本中將增加云平臺資源的自動發(fā)現(xiàn)功能.
(3)部署圖管理. 實現(xiàn)了圖形化的部署圖編輯、語法檢查、子圖定義、部署圖分層顯示和篩選過濾等功能. 子圖定義將部署圖作為構(gòu)件,提高了可復用性和制作效率.
(4)遠程部署. 實現(xiàn)了基于編排模板的部署引擎,可將部署圖轉(zhuǎn)換成為AWS Cloud Formation部署腳本,調(diào)用編排服務實現(xiàn)遠程部署. 系統(tǒng)還實現(xiàn)了簡單的部署日志管理和增量部署功能.
(5)系統(tǒng)管理. 實現(xiàn)了用戶身份認證、平臺訪問權(quán)限控制、云平臺訪問授權(quán)和部署策略設置等功能.
該平臺原型系統(tǒng)使用highttopo庫[9]實現(xiàn)拓撲圖、部署圖的圖形化操作功能,使用Cloud Formation做為云編排服務接口. 目前系統(tǒng)僅支持兼容AWS接口的云平臺. 部署功能是平臺的核心部分,下面從基本部署、混合部署和增量部署等3個方面介紹其實現(xiàn)技術(shù).
2.2.1 基本部署
(1)部署圖實現(xiàn). 平臺實現(xiàn)了一個圖形化的部署圖編輯器,通過拖拽元件和連線、雙擊元件圖標填寫屬性信息,可快速構(gòu)建部署圖實例. 根據(jù)部署圖的定義,平臺實現(xiàn)了SG、VM、DU和CN等4類節(jié)點,以及hoston、accesson和dependon等3類邊,為各實體設計了各種屬性(表1),其中屬性1~4為4類節(jié)點均有的通用屬性、屬性5~10為虛擬機器專有屬性,Layer屬性是為部署圖分層展示而設置的屬性,Region屬性是為部署圖劃分而設置的標記屬性. 篇幅所限,其余屬性就不再贅述. 建立概念模型后,將部署圖表示為BSON格式,存儲到MongoDB庫中.
表1 虛擬機器類型的屬性設置Table 1 Attribute settings for virtual machine type
(2)轉(zhuǎn)換引擎實現(xiàn). 將部署圖轉(zhuǎn)換成為目標云平臺的部署代碼時,可以根據(jù)實際選用不同的部署接口. 為了便于遠程部署,本文選用編排模板的部署方式. 下面以目標云平臺為AWS為例,介紹文中轉(zhuǎn)換引擎將部署圖轉(zhuǎn)換為Cloud Formation[10]的算法流程(圖3). 本文采用工廠設計模式為每類節(jié)點設計了一個工廠類,轉(zhuǎn)換時調(diào)用相應的工廠類生成模板實例,再將所有模板整合到主模板中. 在轉(zhuǎn)換可部署單元節(jié)點時,將下載地址配置信息轉(zhuǎn)化為模板的“files”屬性,將安裝命令轉(zhuǎn)化為模板的“commands”屬性,然后將此信息以AWS∷CloudFormaction∷Init類型的格式插入到宿主節(jié)點的模板里.
(3)遠程部署. 生成編排模板后,資源層中訪問代理調(diào)用目標云平臺的編排服務,實施遠程部署. 以AWS Cloud Formation為例,平臺使用基于Node.js的SDK開發(fā)包,調(diào)用AWS工廠類的awsConf方法配置云平臺認證信息;調(diào)用GetCloudFormation方法獲取服務編排功能對象;再調(diào)用DepStackMng類的newAndSave建立編排,完成部署.
2.2.2 混合部署 混合部署是一種跨云平臺的部署形式[11],其部署資源由多個同構(gòu)或異構(gòu)的云平臺[12]聯(lián)合提供. 利用前述基本部署功能,可以靈活地實現(xiàn)混合部署. 具體過程如下.
(1)混合部署規(guī)劃. 混合部署規(guī)劃可以由部署人員人為地決定,也可以由調(diào)度算法根據(jù)資源情況計算后決定,采用何種方式取決于平臺部署策略. 管理人員通過為虛擬機器節(jié)點VM或復合節(jié)點CN的Destination屬性設定目標云平臺值,可以實現(xiàn)混合部署,但劃分的合理性由管理員負責. 另一種情況,管理人員設置Region屬性,將部署圖劃分為多個連通區(qū)域,但并不指定Destination屬性,再由調(diào)度層負責計算各分區(qū)到云平臺的映射. 如果Region屬性與Destination屬性全部為空,則調(diào)度層負責全部規(guī)劃工作,包括決定是否劃分區(qū)域以及云平臺資源分配,這對調(diào)度算法提出較高要求.
圖3 編排模板轉(zhuǎn)換流程圖
管理人員在賦值Region或Destination屬性后,平臺需要檢查部署圖的語義一致性. 例如,A節(jié)點與B節(jié)點的Region屬性值相同,而兩者的Destination屬性值卻不同,顯然存在邏輯錯誤,平臺應當給出錯誤提示. 在需要考慮邊屬性的約束時情況將更加復雜,例如accesson類型邊可指定訪問鏈路帶寬、延遲和安全域等屬性,對邊兩端節(jié)點的部署將帶來限制,部分屬性(如安全域)在靜態(tài)配置時便可檢測,而部分屬性(如延遲)則需要在調(diào)度層指定目標平臺時方能判斷是否滿足屬性要求[13].
(2)混合部署實施. 在本文應用部署體系下,混合部署的實施均需要將部署圖分割成為若干子圖,然后使用前述基本部署功能,“分而治之”地逐個完成子圖的部署. 實現(xiàn)混合部署時調(diào)度層必須提供同步機制,對各個部署子任務的狀態(tài)進行監(jiān)控,發(fā)現(xiàn)某個子圖部署失敗時,可以實行部署回滾,并向應用層報告相關(guān)狀態(tài).2.2.3 增量部署 前面討論的部署屬于新建形式,所需資源全部由云平臺創(chuàng)建提供. 然而,有時部署可以利用云平臺上已運行的資源實例,僅需要在已有資源環(huán)境上完成應用組件安裝、運行配置命令和下載數(shù)據(jù)等操作,而不需要向云平臺重新申請資源,我們將這種方式稱為“增量部署”. 增量部署必須解決符合部署要求的資源定位問題,本文提出一種“以圖找圖”的查找方法. 具體來說,將所需的資源環(huán)境以部署圖形式描述出來作為查詢圖,然后在已完成部署的目標圖上查找與其同構(gòu)的子圖. 例如,圖4A的虛線框內(nèi)的子圖與圖4B同構(gòu)[14-15],增量部署時可以利用此類資源(虛擬機B、Java虛擬機D和服務器E).
圖4 子圖同構(gòu)實例
為了實現(xiàn)“以圖找圖”功能,本文實現(xiàn)了一個匹配算法,其偽代碼如下:
Procedure Match(q:Node,pre_q:Node,t:Node,pre_t:Node){
If (q與t不匹配) return EMPTY
If (pre_q!=NULL & pre_t!=NULL & q與pre_q之間的邊與t與pre_t之間的邊不匹配)
return EMPTY
qNeighbors←qNeighborspre_q // qNeighbors是q在查詢圖上的鄰居節(jié)點集合
tNeighbors←tNeighborspre_t // tNeighbors是t在目標圖上的鄰居節(jié)點集合
matchResult←EMPTY
ForEach (n: Node in qNeighbors)
result←EMPTY
ForEach (m:Node in tNeighbors)
result←Match(n,q,m,t)
If (result!=EMPTY) {
tNeighbors←tNeighborsm
Break
}
End ForEach
If (result!=EMPTY)
matchResult=matchResult∪result
Else return EMPTY
End ForEach
return (q,t)∪matchResult
}
本文以原型系統(tǒng)為工具,成功部署了職業(yè)測評系統(tǒng)、博客系統(tǒng)和精品課程網(wǎng)站等多個應用系統(tǒng),經(jīng)測試,系統(tǒng)功能正常、運行穩(wěn)定,而且部署方便快捷、可復用性強. 實踐證明,本文提出的部署方法是可行的、有效的. 下面以職業(yè)測評系統(tǒng)為例,介紹其部署過程.
(1)部署環(huán)境準備:使用本文研發(fā)的原型系統(tǒng)為部署工具,在安裝了某商用云平臺軟件的私有云上進行部署,平臺支持AWS服務接口. 部署之前,已經(jīng)在原型系統(tǒng)中接入了該云平臺,并導入了相關(guān)的元數(shù)據(jù);另外,部署所需的虛擬機鏡像文件已存在,所需的系統(tǒng)軟件等元數(shù)據(jù)也在原型系統(tǒng)中完成定義.
(2)部署需求與規(guī)劃:職業(yè)測評系統(tǒng)是一套基于SSH框架開發(fā)的Web應用系統(tǒng),后臺采用MySQL數(shù)據(jù)庫. 根據(jù)常規(guī)的部署方法,可為其分配2個虛擬機:一個用作Web服務器,另一個為數(shù)據(jù)庫服務器. 2個服務器處于同一網(wǎng)段,便于通信. 由于系統(tǒng)的用戶并發(fā)訪問量不大,部署方案不涉及負載均衡服務.
根據(jù)文中的部署流程,必須事先制作一個部署圖,描述部署任務. 結(jié)合部署需求,部署圖的節(jié)點設置情況如表2.
表2 部署圖的節(jié)點設置Table 2 Configurations of nodes in the deploy graph
除了上述節(jié)點,還需要為部署圖添加若干條邊:N2→N1(accesson類型);N3→N1(accesson類型);N4→N2(hoston類型);N5→N4(dependon類型);N6→N5(hoston類型);N7→N3(hoston類型);N6→N7(accesson類型). 最后,在原型系統(tǒng)中保存好部署圖.
(3)實施部署:調(diào)出制作好的部署圖,點擊“部署”命令按鈕,選擇目標云平臺(即前述已導入的私有云平臺),部署工具執(zhí)行遠程部署.
(4)部署結(jié)果:部署完成,系統(tǒng)運行正常. 部署完畢,還可通過部署工具查看部署方案中的資源實例. 例如,可以查看實驗中的Web服務器虛擬機實例以及相關(guān)部署信息,如圖5所示.
圖5 部署后的虛擬機實例
大規(guī)模云計算基礎(chǔ)設施的建設對云計算平臺的自動化、智能化和自主化管理提出了更高要求. 本文研究IaaS云平臺的通用應用部署問題,提出“部署圖”作為應用部署的形式化描述工具,以達到平臺無關(guān)的應用部署目的. 在部署圖的基礎(chǔ)上,給出了一個面向多云平臺的通用應用部署體系,設計了部署工具的分層架構(gòu)模型,闡述了云應用部署管理平臺的設計與相關(guān)算法,最后展示了平臺原型系統(tǒng). 本文提出的應用部署技術(shù)具有平臺無關(guān)、可復用、可驗證和直觀易用等優(yōu)點,極大降低了應用部署難度,減少部署工作量,避免了人為配置錯誤.
部署圖作為部署抽象工具,具有多方面的優(yōu)勢:圖模型表達直觀、靈活性強,展示效果好;圖模型與應用系統(tǒng)部署的實施方式更為接近,易于理解;圖論研究成果豐碩,可為應用部署分析提供理論工具,例如圖著色、圖劃分和子圖同構(gòu)等. 文中以混合部署、增量部署為例,展示了部署圖的優(yōu)勢. 但是,部署圖也存在粒度小、實現(xiàn)繁瑣和查找困難等缺點,因此需要設計良好的部署工具加以支持.
我們下一步將繼續(xù)完善云應用部署管理平臺,擴充云平臺資源監(jiān)控功能,開展基于日志的部署圖自動生成、應用部署性能優(yōu)化等方面的研究.
[1] 陳康,鄭緯民. 云計算:系統(tǒng)實例與研究現(xiàn)狀[J]. 軟件學報,2009,20(5):1337-1348.
CHEN K,ZHENG W M. Cloud computing:system instances and current research[J]. Journal of Software,2009,20(5):1337-1348.
[2] 劉歡歡,麻志毅,陳泓婕. 基于PaaS的云應用軟件部署環(huán)境的元模型[J]. 計算機科學,2015,42(10):45-49;80.
LIU H H,MA Z Y,CHEN H J. Meta-model of PaaS-based cloud application’s deployment environment[J]. Computer Science,2015,42(10):45-49;80.
[3] SIMBAD team. M-COAPS API[EB/OL]. (2016-01-04)[2016-06-08]. http://www-inf.it-sudparis.eu/SIMBAD/tools/COAPS/.
[4] HOSSNY E,KHATTAB S,OMARA F,et al. A case study for deploying applications on heterogeneous PaaS platforms[C]//Proceedings of the 2013 International Confe-rence on Cloud Computing and Big Data. Washington,DC: IEEE,2013:246-253.
[5] YONGSIRIWIT K,SELLAMI M,GAALOUL W. A semantic framework supporting cloud resource descriptions interoperability[C]//Proceedings of the 9th International Conference on Cloud Computing (CLOUD). San Francisco,California:IEEE,2016:585-592.
[6] NGUYEN B M,TRAN V,HLUCHY L. Development and deployment of cloud services via abstraction layer[C]//Proceedings of International Conference on Computing,Management and Telecommunications. New York:IEEE,2013:246-251.
[7] BRANDTZ?G E,MOHAGHEGHI P,MOSSER S. Towards a domain-specific language to deploy applications in the clouds[C]// Proceedings of the Third International Conference on Cloud Computing,Grids,and Virtualization. Nice,France:[s.n.],2012:214-218.
[8] SELLAMI M,SAMI Y G,MOHAMED M,et al. PaaS-independent provisioning and management of applications in the cloud[C]//IEEE Proceedings of the Sixth International Conference on Cloud Computing. Washington,DC:IEEE,2013:693-700.
[9] Hightopo Inc. A rich JavaScript UI library[EB/OL]. (2015-09-12)[2016-07-15]. http://www.hightopo.com/index.html.
[10]Amazon Web Services,Inc. AWS cloud formation[EB/OL]. (2015-12-07)[2016-08-02]. https://aws.amazon.com/cn/ cloudformation.
[11]BUYYA R,BARRETO D. Multi-cloud resource provisioning with Aneka:a unified and integrated utilisation of microsoft azure and amazon EC2 instances[C]//Proceedings of International Conference on Computing and Network Communications. New York:IEEE,2015:216-229.
[12]BROGI A,CARRASCO J,CUBO J,et al. SeaClouds:an open reference architecture for multi-cloud governance[C]//Software Architecture:Proceedings of the 10th European Conference. Berlin:Springer,2016:334-338.
[13]GONCALVES J R,ROLIM T,SAMPAIO A,et al. A multi-criteria approach for assessing cloud deployment options based on non-functional requirements[C]//Proceeding of the 30th Annual ACM Symposium on Applied Computing. New York:ACM,2015:1383-1389.
[14]ULLMANN J R. An algorithm for subgraph isomorphism[J]. Journal of the ACM (JACM),1976,23(1):31-42.
[15]LISCHKA J,KARL H. A virtual network mapping algorithm based on subgraph isomorphism detection[C]//Proceedings of the 1st ACM Workshop on Virtualized Infrastructure Systems and Architectures. New York:ACM,2009:81-88.
【中文責編:莊曉瓊 英文審校:肖菁】
Research on Application Deployment Technology of Cloud Platforms Based on Graph Model
ZHENG Weiping*, LIU Jianmin
(School of Computer Science, South China Normal University, Guangzhou 510631, China)
An application deployment schema based on deployment graph is presented for the purpose of platform-independent deployments, in which a general deployment framework for cloud applications is given and related design principles and implementation technologies for the deployment instrument are focused. A prototype system is implemented and a deployment case is used together to prove the feasibility of the presented deployment schema, as well as the advantages of platform-independency, visualization and reusability etc.
cloud platform; application deployment; deployment graph;platform-independency; subgraph isomorphism
2016-08-08 《華南師范大學學報(自然科學版)》網(wǎng)址:http://journal.scnu.edu.cn/n
廣東省科技計劃項目(2013B010401021,2016B010109005);廣東省自然科學基金項目(S2013040012449)
TP311
A
1000-5463(2017)04-0115-07
*通訊作者:鄭偉平,副教授,Email:csweapon@gmail.com.