一種用于在云計(jì)算環(huán)境中部署應(yīng)用的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明屬于云計(jì)算領(lǐng)域,公開了一種用于在云計(jì)算環(huán)境中部署應(yīng)用的方法和系統(tǒng)。該方法包括:在用戶部署應(yīng)用時(shí),收集與部署應(yīng)用相關(guān)的元數(shù)據(jù)以及指令,所述元數(shù)據(jù)包括服務(wù)元數(shù)據(jù)、應(yīng)用元數(shù)據(jù)以及拓?fù)湓獢?shù)據(jù),其中,所述服務(wù)元數(shù)據(jù)包括與部署該應(yīng)用所需要的服務(wù)相關(guān)的元數(shù)據(jù),所述應(yīng)用元數(shù)據(jù)包括與該應(yīng)用相關(guān)的元數(shù)據(jù),拓?fù)湓獢?shù)據(jù)包括表示所述服務(wù)與所述應(yīng)用之間關(guān)系的元數(shù)據(jù);將收集到的元數(shù)據(jù)和指令存儲(chǔ)為模型以用于該應(yīng)用的再次部署。通過對于用戶部署應(yīng)用操作的記錄,可以得到部署所用的模型,這樣當(dāng)再次部署時(shí),可以直接調(diào)用模型實(shí)現(xiàn)自動(dòng)部署,降低了部署應(yīng)用所需的專業(yè)技能,方便了應(yīng)用的再次部署。
【專利說明】一種用于在云計(jì)算環(huán)境中部署應(yīng)用的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及云計(jì)算領(lǐng)域,更具體地,涉及一種用于在云計(jì)算環(huán)境中部署應(yīng)用的方 法和系統(tǒng)。
【背景技術(shù)】
[0002] 在云計(jì)算環(huán)境中,多個(gè)用戶可能都需要使用某一應(yīng)用。那么對于這些用戶,目前, 需要每個(gè)用戶都自己完成該應(yīng)用的部署。應(yīng)用的部署需要一定的專業(yè)技能,因此對于某些 用戶而言,自己部署應(yīng)用有一定的困難,這在一定程度上就限制了云平臺(tái)的發(fā)展,也為用戶 使用帶來了不便。并且,在云計(jì)算環(huán)境中,若用戶需要多次部署同一應(yīng)用,也需要每次都進(jìn) 行一次相同的操作,費(fèi)時(shí)費(fèi)力。
【發(fā)明內(nèi)容】
[0003] 為了簡化云計(jì)算環(huán)境中應(yīng)用的部署,本發(fā)明實(shí)施例提供了一種用于在云計(jì)算環(huán)境 中部署應(yīng)用的方法和系統(tǒng),此外還提供了一種用于在云計(jì)算環(huán)境中部署復(fù)合應(yīng)用的方法和 系統(tǒng)。
[0004] 根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于在云計(jì)算環(huán)境中部署應(yīng)用的方法和系 統(tǒng),所述方法包括:在用戶部署應(yīng)用時(shí),收集與部署應(yīng)用相關(guān)的元數(shù)據(jù)以及指令,所述元數(shù) 據(jù)包括服務(wù)元數(shù)據(jù)、應(yīng)用元數(shù)據(jù)以及拓?fù)湓獢?shù)據(jù),其中,所述服務(wù)元數(shù)據(jù)包括與部署該應(yīng)用 所需要的服務(wù)相關(guān)的元數(shù)據(jù),所述應(yīng)用元數(shù)據(jù)包括與該應(yīng)用相關(guān)的元數(shù)據(jù),拓?fù)湓獢?shù)據(jù)包 括表示所述服務(wù)與所述應(yīng)用之間關(guān)系的元數(shù)據(jù);將收集到的元數(shù)據(jù)和指令存儲(chǔ)為模型以用 于該應(yīng)用的再次部署。
[0005] 根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于在云計(jì)算環(huán)境中部署應(yīng)用的方法,所 述方法包括:獲取按照上述方法得到的模型;根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù)準(zhǔn)備部 署該應(yīng)用所需的服務(wù);根據(jù)所述模型中的指令和應(yīng)用元數(shù)據(jù)將該應(yīng)用發(fā)布到運(yùn)行環(huán)境;根 據(jù)所述模型中的指令和拓?fù)湓獢?shù)據(jù)將準(zhǔn)備好的服務(wù)綁定到該應(yīng)用。
[0006] 根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于在云計(jì)算環(huán)境中部署復(fù)合應(yīng)用的方 法,所述復(fù)合應(yīng)用至少包括第一子應(yīng)用和第二子應(yīng)用,所述方法包括:獲取按照上述方法得 到的所述第一子應(yīng)用的模型;獲取按照上述方法得到的所述第二子應(yīng)用的模型;根據(jù)所述 第一子應(yīng)用的模型中的拓?fù)湓獢?shù)據(jù)和所述第二子應(yīng)用的模型中的拓?fù)湓獢?shù)據(jù)生成所述復(fù) 合應(yīng)用的生命周期管理信息;將所述第一子應(yīng)用的模型、所述第二子應(yīng)用的模型以及所述 生命周期管理信息存儲(chǔ)為所述復(fù)合應(yīng)用的模型以用于所述復(fù)合應(yīng)用的部署。
[0007] 根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于在云計(jì)算環(huán)境中部署應(yīng)用的系統(tǒng),該 系統(tǒng)能夠執(zhí)行上述方法。
[0008] 本發(fā)明所提供的技術(shù)方案可以簡化云計(jì)算環(huán)境中應(yīng)用的部署,降低部署應(yīng)用對于 專業(yè)技能的需求,方便用戶使用云計(jì)算環(huán)境中的應(yīng)用。
【專利附圖】
【附圖說明】
[0009] 通過結(jié)合附圖對本公開示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其 它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實(shí)施方式中,相同的參考標(biāo)號 通常代表相同部件。
[0010] 圖1表示根據(jù)本發(fā)明一實(shí)施例的云計(jì)算節(jié)點(diǎn);
[0011] 圖2表示根據(jù)本發(fā)明一實(shí)施例的云計(jì)算環(huán)境;
[0012] 圖3表示根據(jù)本發(fā)明一實(shí)施例的抽象模型層;
[0013] 圖4示出了本發(fā)明一實(shí)施例提供的用于在云計(jì)算環(huán)境中部署應(yīng)用的方法的流程 示意圖;
[0014] 圖5示出了本發(fā)明一實(shí)施例提供的用于在云計(jì)算環(huán)境中部署應(yīng)用的方法的流程 示意圖;
[0015] 圖6示出了本發(fā)明一實(shí)施例提供的用于在云計(jì)算環(huán)境中部署復(fù)合應(yīng)用的方法的 流程示意圖;
[0016] 圖7示出了本發(fā)明一實(shí)施例提供的用于在云計(jì)算環(huán)境中部署應(yīng)用的系統(tǒng)的結(jié)構(gòu) 示意圖;
[0017] 圖8示出了本發(fā)明一實(shí)施例提供的存儲(chǔ)模塊的結(jié)構(gòu)示意圖;
[0018] 圖9示出了本發(fā)明一實(shí)施例提供的用于在云計(jì)算環(huán)境中部署應(yīng)用的系統(tǒng)的結(jié)構(gòu) 示意圖;
[0019] 圖10示出了本發(fā)明一實(shí)施例提供的用于在云計(jì)算環(huán)境中部署。
【具體實(shí)施方式】
[0020] 下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實(shí)施方式。雖然附圖中顯示了本公開 的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施方 式所限制。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的 范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0021] 首先應(yīng)當(dāng)理解,盡管本公開包括關(guān)于云計(jì)算的詳細(xì)描述,但其中記載的技術(shù)方案 的實(shí)現(xiàn)卻不限于云計(jì)算環(huán)境,而是能夠結(jié)合現(xiàn)在已知或以后開發(fā)的任何其它類型的計(jì)算環(huán) 境而實(shí)現(xiàn)。
[0022] 云計(jì)算是一種服務(wù)交付模式,用于對共享的可配置計(jì)算資源池進(jìn)行方便、按需的 網(wǎng)絡(luò)訪問??膳渲糜?jì)算資源是能夠以最小的管理成本或與服務(wù)提供者進(jìn)行最少的交互就能 快速部署和釋放的資源,例如可以是網(wǎng)絡(luò)、網(wǎng)絡(luò)帶寬、服務(wù)器、處理、內(nèi)存、存儲(chǔ)、應(yīng)用、虛擬 機(jī)和服務(wù)。這種云模式可以包括至少五個(gè)特征、至少三個(gè)服務(wù)模型和至少四個(gè)部署模型。
[0023] 特征包括:
[0024] 按需自助式服務(wù):云的消費(fèi)者在無需與服務(wù)提供者進(jìn)行人為交互的情況下能夠單 方面自動(dòng)地按需部署諸如服務(wù)器時(shí)間和網(wǎng)絡(luò)存儲(chǔ)等的計(jì)算能力。
[0025] 廣泛的網(wǎng)絡(luò)接入:計(jì)算能力可以通過標(biāo)準(zhǔn)機(jī)制在網(wǎng)絡(luò)上獲取,這種標(biāo)準(zhǔn)機(jī)制促進(jìn) 了通過不同種類的瘦客戶機(jī)平臺(tái)或厚客戶機(jī)平臺(tái)(例如移動(dòng)電話、膝上型電腦、個(gè)人數(shù)字 助理PDA)對云的使用。
[0026] 資源池:提供者的計(jì)算資源被歸入資源池并通過多租戶(multi-tenant)模式服 務(wù)于多重消費(fèi)者,其中按需將不同的實(shí)體資源和虛擬資源動(dòng)態(tài)地分配和再分配。一般情況 下,消費(fèi)者不能控制或甚至并不知曉所提供的資源的確切位置,但可以在較高抽象程度上 指定位置(例如國家、州或數(shù)據(jù)中心),因此具有位置無關(guān)性。
[0027] 迅速彈性:能夠迅速、有彈性地(有時(shí)是自動(dòng)地)部署計(jì)算能力,以實(shí)現(xiàn)快速擴(kuò)展, 并且能迅速釋放來快速縮小。在消費(fèi)者看來,用于部署的可用計(jì)算能力往往顯得是無限的, 并能在任意時(shí)候都能獲取任意數(shù)量的計(jì)算能力。
[0028] 可測量的服務(wù):云系統(tǒng)通過利用適于服務(wù)類型(例如存儲(chǔ)、處理、帶寬和活躍用戶 帳號)的某種抽象程度的計(jì)量能力,自動(dòng)地控制和優(yōu)化資源效用。可以監(jiān)測、控制和報(bào)告資 源使用情況,為服務(wù)提供者和消費(fèi)者雙方提供透明度。
[0029] 服務(wù)模型如下:
[0030] 軟件即服務(wù)(SaaS):向消費(fèi)者提供的能力是使用提供者在云基礎(chǔ)架構(gòu)上運(yùn)行的 應(yīng)用。可以通過諸如網(wǎng)絡(luò)瀏覽器的瘦客戶機(jī)接口(例如基于網(wǎng)絡(luò)的電子郵件)從各種客戶 機(jī)設(shè)備訪問應(yīng)用。除了有限的特定于用戶的應(yīng)用配置設(shè)置外,消費(fèi)者既不管理也不控制包 括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)、存儲(chǔ)、乃至單個(gè)應(yīng)用能力等的底層云基礎(chǔ)架構(gòu)。
[0031] 平臺(tái)即服務(wù)(PaaS):向消費(fèi)者提供的能力是在云基礎(chǔ)架構(gòu)上部署消費(fèi)者創(chuàng)建或 獲得的應(yīng)用,這些應(yīng)用利用提供者支持的程序設(shè)計(jì)語言和工具創(chuàng)建。消費(fèi)者既不管理也不 控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)或存儲(chǔ)的底層云基礎(chǔ)架構(gòu),但對其部署的應(yīng)用具有控制 權(quán),對應(yīng)用托管環(huán)境配置可能也具有控制權(quán)。
[0032] 基礎(chǔ)架構(gòu)即服務(wù)(IaaS):向消費(fèi)者提供的能力是消費(fèi)者能夠在其中部署并運(yùn)行 包括操作系統(tǒng)和應(yīng)用的任意軟件的處理、存儲(chǔ)、網(wǎng)絡(luò)和其他基礎(chǔ)計(jì)算資源。消費(fèi)者既不管理 也不控制底層的云基礎(chǔ)架構(gòu),但是對操作系統(tǒng)、存儲(chǔ)和其部署的應(yīng)用具有控制權(quán),對選擇的 網(wǎng)絡(luò)組件(例如主機(jī)防火墻)可能具有有限的控制權(quán)。
[0033] 部署模型如下:
[0034] 私有云:云基礎(chǔ)架構(gòu)單獨(dú)為某個(gè)組織運(yùn)行。云基礎(chǔ)架構(gòu)可以由該組織或第三方管 理并且可以存在于該組織內(nèi)部或外部。
[0035] 共同體云:云基礎(chǔ)架構(gòu)被若干組織共享并支持有共同利害關(guān)系(例如任務(wù)使命、 安全要求、政策和合規(guī)考慮)的特定共同體。共同體云可以由共同體內(nèi)的多個(gè)組織或第三 方管理并且可以存在于該共同體內(nèi)部或外部。
[0036] 公共云:云基礎(chǔ)架構(gòu)向公眾或大型產(chǎn)業(yè)群提供并由出售云服務(wù)的組織擁有。
[0037] 混合云:云基礎(chǔ)架構(gòu)由兩個(gè)或更多部署模型的云(私有云、共同體云或公共云)組 成,這些云依然是獨(dú)特的實(shí)體,但是通過使數(shù)據(jù)和應(yīng)用能夠移植的標(biāo)準(zhǔn)化技術(shù)或私有技術(shù) (例如用于云之間的負(fù)載平衡的云突發(fā)流量分擔(dān)技術(shù))綁定在一起。
[0038] 云計(jì)算環(huán)境是面向服務(wù)的,特點(diǎn)集中在無狀態(tài)性、低耦合性、模塊性和語意的互操 作性。云計(jì)算的核心是包含互連節(jié)點(diǎn)網(wǎng)絡(luò)的基礎(chǔ)架構(gòu)。
[0039] 現(xiàn)在參考圖1,其中顯示了云計(jì)算節(jié)點(diǎn)的一個(gè)例子。圖1顯示的云計(jì)算節(jié)點(diǎn)10僅僅 是適合的云計(jì)算節(jié)點(diǎn)的一個(gè)示例,不應(yīng)對本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。 總之,云計(jì)算節(jié)點(diǎn)10能夠被用來實(shí)現(xiàn)和/或執(zhí)行以上所述的任何功能。
[0040] 云計(jì)算節(jié)點(diǎn)10具有計(jì)算機(jī)系統(tǒng)/服務(wù)器12,其可與眾多其它通用或?qū)S糜?jì)算系統(tǒng) 環(huán)境或配置一起操作。眾所周知,適于與計(jì)算機(jī)系統(tǒng)/服務(wù)器12-起操作的計(jì)算系統(tǒng)、環(huán)境 和/或配置的例子包括但不限于:個(gè)人計(jì)算機(jī)系統(tǒng)、服務(wù)器計(jì)算機(jī)系統(tǒng)、瘦客戶機(jī)、厚客戶 機(jī)、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)個(gè)人電腦、 小型計(jì)算機(jī)系統(tǒng)、大型計(jì)算機(jī)系統(tǒng)和包括上述任意系統(tǒng)的分布式云計(jì)算技術(shù)環(huán)境,等等。
[0041] 計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以在由計(jì)算機(jī)系統(tǒng)執(zhí)行的計(jì)算機(jī)系統(tǒng)可執(zhí)行指令(諸 如程序模塊)的一般語境下描述。通常,程序模塊可以包括執(zhí)行特定的任務(wù)或者實(shí)現(xiàn)特定 的抽象數(shù)據(jù)類型的例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計(jì)算機(jī)系統(tǒng)/服務(wù)器12 可以在通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式云計(jì)算環(huán)境中實(shí)施。在分布式 云計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備的本地或遠(yuǎn)程計(jì)算系統(tǒng)存儲(chǔ)介質(zhì)上。
[0042] 如圖1所示,云計(jì)算節(jié)點(diǎn)10中的計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式 表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單 元16,系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。
[0043] 總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器, 外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉 例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC) 總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。
[0044] 計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是 能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問的任意可獲得的介質(zhì),包括易失性和非易失性介質(zhì),可 移動(dòng)的和不可移動(dòng)的介質(zhì)。
[0045] 系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存 取存儲(chǔ)器(RAM) 30和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其 它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34 可以用于讀寫不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱為"硬盤驅(qū)動(dòng)器")。盡管 圖1中未示出,可以提供用于對可移動(dòng)非易失性磁盤(例如"軟盤")讀寫的磁盤驅(qū)動(dòng)器, 以及對可移動(dòng)非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動(dòng)器。 在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲(chǔ)器28 可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模 塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
[0046] 具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在存儲(chǔ)器28 中,這樣的程序模塊42包括但不限于操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以 及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通 常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。
[0047] 計(jì)算機(jī)系統(tǒng)/服務(wù)器12也可以與一個(gè)或多個(gè)外部設(shè)備14(例如鍵盤、指向設(shè)備、 顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器12交互的 設(shè)備通信,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信 的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接 口 22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò) (例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適 配器20通過總線18與計(jì)算機(jī)系統(tǒng)/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示 出,其它硬件和/或軟件模塊可以與計(jì)算機(jī)系統(tǒng)/服務(wù)器12 -起操作,包括但不限于:微代 碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存 儲(chǔ)系統(tǒng)等。
[0048] 現(xiàn)在參考圖2,其中顯示了示例性的云計(jì)算環(huán)境50。如圖所示,云計(jì)算環(huán)境50包 括云計(jì)算消費(fèi)者使用的本地計(jì)算設(shè)備可以與其相通信的一個(gè)或者多個(gè)云計(jì)算節(jié)點(diǎn)10,本地 計(jì)算設(shè)備例如可以是個(gè)人數(shù)字助理(PDA)或移動(dòng)電話54A,臺(tái)式電腦54B、筆記本電腦54C 和/或汽車計(jì)算機(jī)系統(tǒng)54N。云計(jì)算節(jié)點(diǎn)10之間可以相互通信。可以在包括但不限于如 上所述的私有云、共同體云、公共云或混合云或者它們的組合的一個(gè)或者多個(gè)網(wǎng)絡(luò)中將云 計(jì)算節(jié)點(diǎn)10進(jìn)行物理或虛擬分組(圖中未顯示)。這樣,云的消費(fèi)者無需在本地計(jì)算設(shè)備 上維護(hù)資源就能請求云計(jì)算環(huán)境50提供的基礎(chǔ)架構(gòu)即服務(wù)(IaaS)、平臺(tái)即服務(wù)(PaaS)和 /或軟件即服務(wù)(SaaS)。應(yīng)當(dāng)理解,圖2顯示的各類計(jì)算設(shè)備54A-N僅僅是示意性的,云計(jì) 算節(jié)點(diǎn)10以及云計(jì)算環(huán)境50可以與任意類型網(wǎng)絡(luò)上和/或網(wǎng)絡(luò)可尋址連接的任意類型的 計(jì)算設(shè)備(例如使用網(wǎng)絡(luò)瀏覽器)通信。
[0049] 現(xiàn)在參考圖3,其中顯示了云計(jì)算環(huán)境50(圖2)提供的一組功能抽象層。首先應(yīng) 當(dāng)理解,圖3所示的組件、層以及功能都僅僅是示意性的,本發(fā)明的實(shí)施例不限于此。如圖 3所示,提供下列層和對應(yīng)功能:
[0050] 硬件和軟件層60包括硬件和軟件組件。硬件組件的例子包括:主機(jī),例如 IBM? zSeries?系統(tǒng);基于RISC(精簡指令集計(jì)算機(jī))體系結(jié)構(gòu)的服務(wù)器,例如 iBMpSeries? 系統(tǒng);iBMXSeries? 系統(tǒng);iBMBladeCenter? 系統(tǒng);存儲(chǔ)設(shè)備;網(wǎng)絡(luò) 和網(wǎng)絡(luò)組件。軟件組件的例子包括:網(wǎng)絡(luò)應(yīng)用服務(wù)器軟件,例如IBM WebSphere?應(yīng)用服 務(wù)器軟件;數(shù)據(jù)庫軟件,例如IBM DB2?.數(shù)據(jù)庫軟件。(IBM, zSeries, pSeries, xSeries, BladeCenter,WebSphere以及DB2是國際商業(yè)機(jī)器公司在全世界各地的注冊商標(biāo))。
[0051] 虛擬層62提供一個(gè)抽象層,該層可以提供下列虛擬實(shí)體的例子:虛擬服務(wù)器、虛 擬存儲(chǔ)、虛擬網(wǎng)絡(luò)(包括虛擬私有網(wǎng)絡(luò))、虛擬應(yīng)用和操作系統(tǒng),以及虛擬客戶端。
[0052] 在一個(gè)示例中,管理層64可以提供下述功能:資源供應(yīng)功能:提供用于在云計(jì)算 環(huán)境中執(zhí)行任務(wù)的計(jì)算資源和其它資源的動(dòng)態(tài)獲取,其中包括根據(jù)用戶請求管理應(yīng)用運(yùn)行 環(huán)境的資源分配,根據(jù)需求創(chuàng)建新的服務(wù)實(shí)例,建立應(yīng)用與服務(wù)之間的動(dòng)態(tài)綁定關(guān)系等,從 而能夠?qū)崿F(xiàn)應(yīng)用的部署;計(jì)量和定價(jià)功能:在云計(jì)算環(huán)境內(nèi)對資源的使用進(jìn)行成本跟蹤, 并為此提供帳單和發(fā)票。在一個(gè)例子中,該資源可以包括應(yīng)用軟件許可。安全功能:為云的 消費(fèi)者和任務(wù)提供身份認(rèn)證,為數(shù)據(jù)和其它資源提供保護(hù)。用戶門戶功能:為消費(fèi)者和系統(tǒng) 管理員提供對云計(jì)算環(huán)境的訪問。服務(wù)水平管理功能:提供云計(jì)算資源的分配和管理,以滿 足必需的服務(wù)水平。服務(wù)水平協(xié)議(SLA)計(jì)劃和履行功能:為根據(jù)SLA預(yù)測的對云計(jì)算資 源未來需求提供預(yù)先安排和供應(yīng)。
[0053] 工作負(fù)載層66提供云計(jì)算環(huán)境可能實(shí)現(xiàn)的功能的示例。在該層中,可提供的工作 負(fù)載或功能的示例包括:地圖繪制與導(dǎo)航;軟件開發(fā)及生命周期管理;虛擬教室的教學(xué)提 供;數(shù)據(jù)分析處理;交易處理;以及移動(dòng)桌面。
[0054] 現(xiàn)在參看圖4,圖4示出了本發(fā)明實(shí)施例提供的一種用于在云計(jì)算環(huán)境中部署應(yīng) 用的方法,所述方法包括:步驟410,在用戶部署應(yīng)用時(shí),收集與部署應(yīng)用相關(guān)的元數(shù)據(jù)和 指令,所述元數(shù)據(jù)包括服務(wù)元數(shù)據(jù)、應(yīng)用元數(shù)據(jù)以及拓?fù)湓獢?shù)據(jù),其中,所述服務(wù)元數(shù)據(jù)包 括與部署該應(yīng)用所需要的服務(wù)相關(guān)的元數(shù)據(jù),所述應(yīng)用元數(shù)據(jù)包括與該應(yīng)用相關(guān)的元數(shù) 據(jù),拓?fù)湓獢?shù)據(jù)包括表示所述服務(wù)與所述應(yīng)用之間關(guān)系的元數(shù)據(jù);步驟420,將收集到的元 數(shù)據(jù)和指令存儲(chǔ)為模型以用于該應(yīng)用的再次部署。根據(jù)本實(shí)施例提供的方法,可以在用戶 首次部署應(yīng)用時(shí),通過元數(shù)據(jù)和指令的收集記錄,將用戶部署的操作記錄為一個(gè)模型。若用 戶需要再次部署該應(yīng)用時(shí),只需要調(diào)取該模型就可以實(shí)現(xiàn)應(yīng)用的自動(dòng)部署,無須再進(jìn)行一 次人工的部署操作,節(jié)省了用戶的大量工作。并且對于缺乏應(yīng)用部署專業(yè)技能的用戶,可以 由專業(yè)人員進(jìn)行一次應(yīng)用的部署,通過本實(shí)施例提供的方法,將專業(yè)人員的部署操作記錄 下來,形成該應(yīng)用的部署模型,缺乏部署專業(yè)技能的用戶只需要選定相應(yīng)的部署模型,或者 只需要選擇希望部署的應(yīng)用,就可以實(shí)現(xiàn)該應(yīng)用的自動(dòng)部署,方便了用戶的使用,降低了用 戶的技能需求。
[0055] 本發(fā)明一實(shí)施例中,所述服務(wù)元數(shù)據(jù)包括以下之一或其任意組合:服務(wù)的類型、月艮 務(wù)的名稱、服務(wù)的ID、服務(wù)的版本和服務(wù)的配置。所述應(yīng)用元數(shù)據(jù)包括以下之一或其任意 組合:應(yīng)用的類型、應(yīng)用的名稱、應(yīng)用的ID和應(yīng)用的配置。所述拓?fù)湓獢?shù)據(jù)包括以下之一或 其任意組合:應(yīng)用的ID、服務(wù)的ID、應(yīng)用的名稱、服務(wù)的名稱、綁定配置和綁定策略。本發(fā)明 一實(shí)施例中,服務(wù)的配置例如包括資源配置和服務(wù)策略配置中的至少一個(gè)。本發(fā)明一實(shí)施 例中,應(yīng)用的配置例如包括資源配置和應(yīng)用策略配置中的至少一個(gè)。舉例而言,在部署應(yīng)用 時(shí),用戶發(fā)出了如下指令:
[0056] 指令 1 :create webapp-name MyApp-file mypackage. war-config myapp. conf
[0057] 指令 2 : create service-name MyService-service DB2-version9. 0
[0058] 指令 3 :bind_app MyApp -service MyService
[0059] 其中,應(yīng)用元數(shù)據(jù)包括:應(yīng)用的名稱MyApp,應(yīng)用的代碼文件包mypackage. war以 及應(yīng)用的配置myapp. conf。服務(wù)元數(shù)據(jù)包括:服務(wù)名稱MyService,類型為DB2,版本為9. 0。 拓?fù)湓獢?shù)據(jù)包括應(yīng)用的名稱MyApp和服務(wù)的名稱MyService,說明需要將MyService綁定到 MyApp〇
[0060] 本發(fā)明一實(shí)施例中,與部署應(yīng)用相關(guān)的指令例如包括以下至少之一:創(chuàng)建應(yīng)用的 運(yùn)行環(huán)境;將應(yīng)用發(fā)布(push)到運(yùn)行環(huán)境;創(chuàng)建服務(wù);從服務(wù)目錄中查找服務(wù);刪除服務(wù); 啟動(dòng)應(yīng)用;停止應(yīng)用;啟動(dòng)服務(wù);停止服務(wù);建立應(yīng)用和服務(wù)之間的綁定關(guān)系;解除應(yīng)用和 服務(wù)之間的綁定關(guān)系;修改應(yīng)用的配置信息;修改服務(wù)的配置信息;刪除應(yīng)用。
[0061] 本發(fā)明一實(shí)施例中,步驟420可以是將收集到的元數(shù)據(jù)和指令存儲(chǔ)在文件中,或 者也可以存儲(chǔ)為數(shù)據(jù)記錄,本發(fā)明對此并不加以限制。
[0062] 本發(fā)明一實(shí)施例中,步驟420例如包括按照所述用戶部署該應(yīng)用的操作順序,將 收集到的元數(shù)據(jù)和指令存儲(chǔ)起來形成模型以用于該應(yīng)用的再次部署。本領(lǐng)域技術(shù)人員可以 理解,步驟410中,元數(shù)據(jù)和指令的收集可以是與用戶的部署操作同步進(jìn)行的,也即元數(shù)據(jù) 和指令的收集是按照用戶部署該應(yīng)用的操作順序進(jìn)行的,那么直接將收集到的元數(shù)據(jù)和指 令存儲(chǔ)起來就可以實(shí)現(xiàn)按照用戶部署該應(yīng)用的操作順序存儲(chǔ)收集到的元數(shù)據(jù)和指令。或 者,由于收集的元數(shù)據(jù)和指令可能存在無效或者冗余的情況,可以調(diào)整收集到的元數(shù)據(jù)和 指令的順序再存儲(chǔ)起來,該存儲(chǔ)符合根據(jù)用戶部署該應(yīng)用的操作順序存儲(chǔ)收集到的元數(shù)據(jù) 和指令。由于在部署應(yīng)用時(shí),有的服務(wù)需要按順序綁定到應(yīng)用,所以按照順序存儲(chǔ)收集到的 元數(shù)據(jù)和指令形成模型可以使得在再次部署時(shí),能夠按照順序?qū)⒎?wù)綁定到應(yīng)用,從而避 免部署中的錯(cuò)誤或者沖突,提高自動(dòng)部署的成功率。
[0063] 本發(fā)明一實(shí)施例中,步驟420例如還可以包括去除收集的元數(shù)據(jù)和指令中的冗 余。在收集的元數(shù)據(jù)和指令中,會(huì)存在部分的冗余,例如無效的元數(shù)據(jù)、指令或者重復(fù)的元 數(shù)據(jù)、指令。例如,在用戶進(jìn)行部署應(yīng)用的操作時(shí),可能多次發(fā)出應(yīng)用的發(fā)布(push)指令, 由于只有最后一次的該指令是有效的指令,所以僅保存最后一個(gè)發(fā)布指令以及實(shí)例數(shù)量、 QoS指標(biāo)等該指令相關(guān)的元數(shù)據(jù),去除其他的發(fā)布指令及其相關(guān)的元數(shù)據(jù)。本領(lǐng)域技術(shù)人員 可以理解,去除收集的元數(shù)據(jù)和指令中的冗余可以是一邊收集一邊進(jìn)行冗余的去除,也可 以是收集完所有的元數(shù)據(jù)和指令后一起進(jìn)行冗余的去除。據(jù)此,步驟420例如可以包括以 下之一:對收集到的元數(shù)據(jù)和指令進(jìn)行分析,去除冗余的元數(shù)據(jù)和指令,按照所述用戶部署 該應(yīng)用的操作順序,將去除冗余后的元數(shù)據(jù)和指令存儲(chǔ)起來形成模型以用于該應(yīng)用的再次 部署;以及按照所述用戶部署該應(yīng)用的操作順序,將收集到的元數(shù)據(jù)和指令存儲(chǔ)起來,對存 儲(chǔ)起來的元數(shù)據(jù)和指令進(jìn)行分析,去除冗余的元數(shù)據(jù)和指令形成模型以用于該應(yīng)用的再次 部署。本實(shí)施例中,對收集到的元數(shù)據(jù)和指令進(jìn)行分析例如可以是進(jìn)行語義分析,或者可以 是按照預(yù)定的規(guī)則進(jìn)行處理。本領(lǐng)域技術(shù)人員可以理解,還可以采用其他技術(shù)來進(jìn)行分析, 本發(fā)明對此不加限制。
[0064] 本發(fā)明一實(shí)施例中,步驟420例如還可以包括合并無效的操作指令。在用戶進(jìn)行 應(yīng)用的部署時(shí),可能會(huì)存在無效的操作,這樣就導(dǎo)致部分收集的元數(shù)據(jù)和指令失效。例如, 在用戶部署應(yīng)用A時(shí),先創(chuàng)建了服務(wù)B,并將服務(wù)B綁定到應(yīng)用A。隨后,用戶發(fā)現(xiàn)相比于服 務(wù)B,服務(wù)C更合適,由此解除了服務(wù)B的綁定,并將服務(wù)C綁定到應(yīng)用A。此時(shí),服務(wù)B的 創(chuàng)建、刪除以及綁定等指令就是無效的指令,與這些指令相關(guān)的元數(shù)據(jù)就是無效的元數(shù)據(jù)。 本實(shí)施例提供的方法可以對無效的元數(shù)據(jù)和指令進(jìn)行合并,從而進(jìn)一步優(yōu)化后續(xù)的自動(dòng)部 署。本領(lǐng)域技術(shù)人員可以理解,可以是一邊收集一邊進(jìn)行合并,也可以是收集完所有的元數(shù) 據(jù)和指令后一起進(jìn)行合并。據(jù)此,步驟420例如可以包括以下之一:對收集到的元數(shù)據(jù)和指 令進(jìn)行分析,合并無效的元數(shù)據(jù)和指令,按照所述用戶部署該應(yīng)用的操作順序,將合并后的 元數(shù)據(jù)和指令存儲(chǔ)起來形成模型以用于該應(yīng)用的再次部署;以及按照所述用戶部署該應(yīng)用 的操作順序,將收集到的元數(shù)據(jù)和指令存儲(chǔ)起來,對存儲(chǔ)起來的元數(shù)據(jù)和指令進(jìn)行分析,合 并無效的元數(shù)據(jù)和指令形成模型以用于該應(yīng)用的再次部署。本實(shí)施例中,對收集到的元數(shù) 據(jù)和指令進(jìn)行分析例如可以是進(jìn)行語義分析,或者可以是按照預(yù)定的規(guī)則進(jìn)行處理。本領(lǐng) 域技術(shù)人員可以理解,還可以采用其他技術(shù)來進(jìn)行分析,本發(fā)明對此不加限制。
[0065] 本發(fā)明一實(shí)施例中,步驟420例如可以同時(shí)包括合并無效的元數(shù)據(jù)、指令以及去 除冗余的元數(shù)據(jù)、指令。具體方法可以參照上述實(shí)施例。本實(shí)施例中,若同時(shí)存在兩種合并 或者兩種去除的方法時(shí),該方法可以用于相同的對象也可以用于不同的對象。
[0066] 本實(shí)施例一實(shí)施例中,對無效和冗余的元數(shù)據(jù)以及指令分別進(jìn)行合并和去除的方 法例如包括:響應(yīng)于存在多條發(fā)布指令,只保留最后一條發(fā)布指令以及相關(guān)元數(shù)據(jù);響應(yīng) 于存在針對某一服務(wù)的刪除指令,去除針對該服務(wù)的所有刪除指令和相關(guān)元數(shù)據(jù)以及針對 該服務(wù)的最后一條刪除指令之前的針對該服務(wù)的所有創(chuàng)建指令和相關(guān)元數(shù)據(jù);響應(yīng)于存在 針對某一應(yīng)用的停止指令,去除針對該應(yīng)用的所有停止指令和相關(guān)元數(shù)據(jù)以及針對該應(yīng)用 的最后一條停止指令之前的針對該應(yīng)用的所有啟動(dòng)指令和相關(guān)元數(shù)據(jù);響應(yīng)于存在針對某 一服務(wù)的停止指令,去除針對該服務(wù)的所有停止指令和相關(guān)元數(shù)據(jù)以及針對該服務(wù)的最后 一條停止指令之前的針對該服務(wù)的所有啟動(dòng)指令和相關(guān)元數(shù)據(jù);響應(yīng)于存在針對某一應(yīng)用 和某一服務(wù)之間綁定關(guān)系的解除綁定指令,去除針對該綁定關(guān)系的所有解除綁定指令和相 關(guān)元數(shù)據(jù)以及針對該綁定關(guān)系的最后一條解除綁定之前的針對該綁定關(guān)系的所有綁定指 令和相關(guān)元數(shù)據(jù)。本領(lǐng)域技術(shù)人員可以理解,根據(jù)上述示例還可以得到其他合并無效或者 去除冗余的方法,此處不再贅述。
[0067] 本發(fā)明一實(shí)施例中,如圖4所示的方法進(jìn)一步包括:響應(yīng)于用戶向已經(jīng)部署完畢 的所述應(yīng)用再進(jìn)行部署相關(guān)操作,收集該操作涉及的元數(shù)據(jù)和指令,并將該操作涉及的元 數(shù)據(jù)和指令更新到所述模型,其中所述操作涉及的元數(shù)據(jù)包括該操作涉及的服務(wù)元數(shù)據(jù)、 該操作涉及的應(yīng)用元數(shù)據(jù)以及該操作涉及的拓?fù)湓獢?shù)據(jù)中的至少一個(gè)。通過本實(shí)施例提供 的方法,若用戶對已經(jīng)部署的應(yīng)用進(jìn)行了修改,可以通過記錄該用戶的操作對已經(jīng)存儲(chǔ)的 模型進(jìn)行修改,從而可以在今后再次部署該應(yīng)用時(shí)直接部署修改后的應(yīng)用。進(jìn)一步的,根據(jù) 本發(fā)明實(shí)施例提供的方法,可以保存多個(gè)版本的模型分別對應(yīng)沒有經(jīng)過修改的應(yīng)用以及每 次修改后的應(yīng)用,這樣可以方便用戶在不同版本的應(yīng)用間選擇合適的版本進(jìn)行部署。本發(fā) 明一實(shí)施例中,將操作涉及的元數(shù)據(jù)和指令更新到所述模型例如包括:對收集的該操作涉 及的元數(shù)據(jù)和指令以及所述模型中存儲(chǔ)的元數(shù)據(jù)和指令進(jìn)行去除冗余和合并無效中的至 少一項(xiàng),并將處理后的元數(shù)據(jù)和指令存儲(chǔ)為模型以用于該應(yīng)用的再次部署。
[0068] 如圖5所示,本發(fā)明一實(shí)施例提供了一種用于在云計(jì)算環(huán)境中部署應(yīng)用的方法。 該方法包括:步驟510,獲取模型,該模型為根據(jù)上述方法實(shí)施例或者其結(jié)合得到的模型; 步驟520,根據(jù)所述模型中的服務(wù)元數(shù)據(jù)準(zhǔn)備部署該應(yīng)用所需的服務(wù);步驟530,根據(jù)所述 模型中的應(yīng)用元數(shù)據(jù)將該應(yīng)用發(fā)布到運(yùn)行環(huán)境;步驟540,根據(jù)所述模型中的拓?fù)湓獢?shù)據(jù) 將準(zhǔn)備好的服務(wù)綁定到該應(yīng)用。根據(jù)本實(shí)施例提供的方法,可以實(shí)現(xiàn)云計(jì)算環(huán)境中應(yīng)用的 自動(dòng)部署,方便了用戶的使用,降低了對于用戶專業(yè)技能的要求。本領(lǐng)域技術(shù)人員可以了 解,本實(shí)施例中,對于多個(gè)服務(wù)可以先將所有的服務(wù)都準(zhǔn)備好,在將準(zhǔn)備好的服務(wù)綁定到應(yīng) 用,也可以每準(zhǔn)備好一個(gè)服務(wù)就將該服務(wù)綁定到應(yīng)用,或者還可以是采用其他的順序進(jìn)行 服務(wù)的準(zhǔn)備和綁定。本實(shí)施例以及下述實(shí)施例中,如圖5所示的方法還可以包括服務(wù)的啟 動(dòng)、應(yīng)用的啟動(dòng)、服務(wù)的停止和應(yīng)用的停止,以及服務(wù)和應(yīng)用的刪除等,此處不再贅述。
[0069] 本發(fā)明一實(shí)施例中,步驟520例如包括:根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù)按 照所述模型中指令的順序,準(zhǔn)備部署該應(yīng)用所需的服務(wù);步驟540例如包括:根據(jù)所述模型 中的指令和拓?fù)湓獢?shù)據(jù)按照所述模型中指令的順序,將準(zhǔn)備好的服務(wù)綁定到該應(yīng)用。根據(jù) 如圖4所示的實(shí)施例,模型中的指令和元數(shù)據(jù)是按照用戶部署應(yīng)用時(shí)操作的順序存儲(chǔ)的, 相應(yīng)的根據(jù)中的指令的順序準(zhǔn)備所需的服務(wù)以及進(jìn)行服務(wù)和應(yīng)用的綁定可以確保自動(dòng)部 署與用戶部署的操作順序一致,提高自動(dòng)部署的成功率,避免彼此之間有依賴的服務(wù)添加 順序的錯(cuò)亂。
[0070] 本發(fā)明一實(shí)施例中,步驟520例如包括以下之一或其任意組合:根據(jù)所述模型中 的指令和服務(wù)元數(shù)據(jù),對于專用服務(wù),創(chuàng)建一個(gè)新的專用服務(wù);根據(jù)所述模型中的指令和服 務(wù)元數(shù)據(jù),對于共享服務(wù),若該共享服務(wù)已經(jīng)存在,則使用該已經(jīng)存在的共享服務(wù),若該共 享服務(wù)不存在,則創(chuàng)建一個(gè)新的共享服務(wù);根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù),對于外部 服務(wù)引用,創(chuàng)建一個(gè)新的外部服務(wù)引用。
[0071] 本發(fā)明一實(shí)施例中,如圖5所示的方法進(jìn)一步包括:在系統(tǒng)停止時(shí),根據(jù)應(yīng)用與服 務(wù)綁定的順序,按照反向順序解除應(yīng)用與服務(wù)的綁定關(guān)系,并停止相應(yīng)的服務(wù)和應(yīng)用。
[0072] 下面通過一個(gè)具體的示例來詳細(xì)說明如圖5所示的實(shí)施例。用戶A是不具有部署 專業(yè)技能的用戶,專業(yè)人員B是具有部署專業(yè)技能的用戶。專業(yè)人員B事先會(huì)進(jìn)行一次應(yīng) 用1的部署。通過如圖4所示的實(shí)施例,通過記錄專業(yè)人員B對于應(yīng)用1的部署可以得到 應(yīng)用1的模型a。用戶A通過界面選擇需要部署應(yīng)用1,此時(shí)根據(jù)圖5所示的實(shí)施例,會(huì)獲 取應(yīng)用1的模型a。模型a中例如按照順序存儲(chǔ)著:應(yīng)用1的名稱xl、應(yīng)用1的標(biāo)識idl、 指令N1、指令N2、服務(wù)1的名稱x2、服務(wù)1的版本v2、指令N3、服務(wù)2的名稱x3、服務(wù)2的 版本v3、指令N4、綁定配置pi。其中指令N1為將名稱為xl、標(biāo)識為idl的應(yīng)用發(fā)布到運(yùn)行 環(huán)境;指令N2為創(chuàng)建名稱為x2、版本為v2的專用服務(wù);指令N3為在服務(wù)目錄中查找名稱 為x3、版本為v3的共享服務(wù),響應(yīng)于未找到創(chuàng)建名稱為x3、版本為v3的服務(wù);指令Μ為執(zhí) 行名稱為pl的綁定。按照模型中存儲(chǔ)的指令的順序,創(chuàng)建服務(wù)1、服務(wù)2,并將服務(wù)1和服 務(wù)2綁定到應(yīng)用1,從而實(shí)現(xiàn)了應(yīng)用1的自動(dòng)部署。
[0073] 如圖6所示,本發(fā)明一實(shí)施例提供了一種用于在云計(jì)算環(huán)境中部署復(fù)合應(yīng)用的方 法。該復(fù)合應(yīng)用至少包括兩個(gè)子應(yīng)用,第一子應(yīng)用和第二子應(yīng)用。該方法包括:步驟610,獲 取按照上述方法實(shí)施例或其組合得到的第一子應(yīng)用的模型;步驟620,獲取按照上述方法 實(shí)施例或其組合得到的第二子應(yīng)用的模型;步驟630,根據(jù)第一子應(yīng)用的模型中的拓?fù)湓?數(shù)據(jù)和第二子應(yīng)用的模型中的拓?fù)湓獢?shù)據(jù)生成復(fù)合應(yīng)用的生命周期管理信息;步驟640, 將第一子應(yīng)用的模型、第二子應(yīng)用的模型和復(fù)合應(yīng)用的生命周期管理信息存儲(chǔ)為該復(fù)合應(yīng) 用的模型以用于該符合應(yīng)用的部署。本實(shí)施例中,步驟610和步驟620之間沒有特定的執(zhí) 行順序。本發(fā)明一實(shí)施例中,復(fù)合應(yīng)用的生命周期管理信息例如包括以下至少之一:第一子 應(yīng)用、第二子應(yīng)用,第一子應(yīng)用和第二子應(yīng)用所需的服務(wù)的創(chuàng)建、啟動(dòng)、停止、更新和刪除。 通過如圖6所示的實(shí)施例提供的方法,可以得到復(fù)合應(yīng)用的模型,方便用戶部署復(fù)合應(yīng)用。 并且,若已經(jīng)存在了第一子應(yīng)用或者第二子應(yīng)用的模型,采用本實(shí)施例提供的方法,可以直 接獲取存儲(chǔ)好的模型,通過生成復(fù)合應(yīng)用的生命周期管理信息得到復(fù)合應(yīng)用的模型,簡化 了具有多個(gè)子應(yīng)用模塊的復(fù)合應(yīng)用的部署過程,充分利用了已經(jīng)存在的資源。例如,應(yīng)用W 包括兩個(gè)子應(yīng)用,一個(gè)是查詢帳戶信息的子應(yīng)用X,一個(gè)是管理帳戶信息的子應(yīng)用y。由于 用戶已經(jīng)部署過子應(yīng)用X,所以存在子應(yīng)用X的模型?,F(xiàn)在只需要部署一次子應(yīng)用y,就可 以得到子應(yīng)用y的模型。這樣,獲取子應(yīng)用X和y的模型,并生成應(yīng)用W的生命周期管理信 息,就可以存儲(chǔ)X和y的模型以及應(yīng)用W的生命周期管理信息形成應(yīng)用W的模型。這樣在 需要部署應(yīng)用W的時(shí)候可以根據(jù)其模型實(shí)現(xiàn)自動(dòng)部署。模塊化的形成復(fù)合應(yīng)用的模型可以 提高用戶感受,方便用戶部署大型的、子應(yīng)用多的各種復(fù)合應(yīng)用。并且,模塊化的形成復(fù)合 應(yīng)用的模型可以使得已經(jīng)存在的子應(yīng)用的模型得到重用,減少了再次生成子應(yīng)用所需要的 人力資源。
[0074] 本發(fā)明上述實(shí)施例之間可以彼此參照、結(jié)合,得到更多的實(shí)施例,此處不再贅述。
[0075] 本發(fā)明一實(shí)施例提供了一種用于在云計(jì)算環(huán)境中部署應(yīng)用的系統(tǒng),該系統(tǒng)能夠執(zhí) 行上述方法實(shí)施例。以下通過圖7-10,詳細(xì)說明該系統(tǒng)的各種實(shí)現(xiàn)方式。
[0076] 如圖7所示,本發(fā)明實(shí)施例提供了一種用于在云計(jì)算環(huán)境中部署應(yīng)用的系統(tǒng)700。 該系統(tǒng)700包括:收集模塊710,被配置為在用戶部署應(yīng)用時(shí),收集與部署應(yīng)用相關(guān)的元數(shù) 據(jù)以及指令;存儲(chǔ)模塊720,被配置為將收集到的元數(shù)據(jù)和指令存儲(chǔ)為模型以用于該應(yīng)用 的再次部署。本實(shí)施例中,所述元數(shù)據(jù)包括服務(wù)元數(shù)據(jù)、應(yīng)用元數(shù)據(jù)以及拓?fù)湓獢?shù)據(jù),其中, 所述服務(wù)元數(shù)據(jù)包括與部署該應(yīng)用所需要的服務(wù)相關(guān)的元數(shù)據(jù),所述應(yīng)用元數(shù)據(jù)包括與該 應(yīng)用相關(guān)的元數(shù)據(jù),拓?fù)湓獢?shù)據(jù)包括表示所述服務(wù)與所述應(yīng)用之間關(guān)系的元數(shù)據(jù)。具體的, 服務(wù)元數(shù)據(jù)、應(yīng)用元數(shù)據(jù)和拓?fù)湓獢?shù)據(jù)的描述和舉例可以參照方法實(shí)施例,此處不再贅述。 通過本實(shí)施例提供的系統(tǒng)700可以幫助非專業(yè)人員實(shí)現(xiàn)自動(dòng)的應(yīng)用部署,降低了部署應(yīng)用 的專業(yè)技能需求,并且避免了重復(fù)部署所花費(fèi)的資源。
[0077] 本發(fā)明一實(shí)施例中,存儲(chǔ)模塊720進(jìn)一步被配置為,按照所述用戶部署該應(yīng)用的 操作順序,將收集到的元數(shù)據(jù)和指令存儲(chǔ)起來形成模型以用于該應(yīng)用的再次部署。
[0078] 本發(fā)明一實(shí)施例中,如圖8所示,存儲(chǔ)模塊720包括以下子模塊中的至少一個(gè): 第一去除子模塊721,被配置為對收集到的元數(shù)據(jù)和指令進(jìn)行分析,去除冗余的元數(shù)據(jù)和 指令,并按照所述用戶部署該應(yīng)用的操作順序,將去除冗余后的元數(shù)據(jù)和指令存儲(chǔ)起來形 成模型以用于該應(yīng)用的再次部署;第二去除子模塊722,被配置為按照所述用戶部署該應(yīng) 用的操作順序,將收集到的元數(shù)據(jù)和指令存儲(chǔ)起來,并對存儲(chǔ)起來的元數(shù)據(jù)和指令進(jìn)行分 析,去除冗余的元數(shù)據(jù)和指令形成模型以用于該應(yīng)用的再次部署;第一合并子模塊723,被 配置為對收集到的元數(shù)據(jù)和指令進(jìn)行分析,合并無效的元數(shù)據(jù)和指令,并按照所述用戶部 署該應(yīng)用的操作順序,將合并后的元數(shù)據(jù)和指令存儲(chǔ)起來形成模型以用于該應(yīng)用的再次部 署;第二合并子模塊724,被配置為按照所述用戶部署該應(yīng)用的操作順序,將收集到的元數(shù) 據(jù)和指令存儲(chǔ)起來,并對存儲(chǔ)起來的元數(shù)據(jù)和指令進(jìn)行分析,合并無效的元數(shù)據(jù)和指令形 成模型以用于該應(yīng)用的再次部署。本領(lǐng)域技術(shù)人員可以理解,在上述子模塊均存在的情況 下,可以僅啟用部分的子模塊,也可以全部啟用。在全部啟用的情況下,每個(gè)子模塊可以處 理相同的對象也可以處理不同的對象。
[0079] 本發(fā)明一實(shí)施例中,如圖7所示的實(shí)施例還可以包括更新模塊,被配置為:響應(yīng)于 所述用戶向已經(jīng)部署完畢的所述應(yīng)用再進(jìn)行部署相關(guān)操作,收集該操作涉及的元數(shù)據(jù)和指 令,并將該操作涉及的元數(shù)據(jù)和指令更新到所述模型,其中所述操作涉及的元數(shù)據(jù)包括該 操作涉及的服務(wù)元數(shù)據(jù)、該操作涉及的應(yīng)用元數(shù)據(jù)以及該操作涉及的拓?fù)湓獢?shù)據(jù)中的至少 一個(gè)。
[0080] 如圖9所示,本發(fā)明一實(shí)施例提供了一種用于在云計(jì)算環(huán)境中部署應(yīng)用的系統(tǒng) 900。該系統(tǒng)900包括:獲取模塊910,被配置為獲取模型,該模型為根據(jù)上述方法實(shí)施例或 者由上述裝置實(shí)施例得到的模型;服務(wù)模塊920,被配置為根據(jù)模型中的指令和服務(wù)元數(shù) 據(jù)準(zhǔn)備部署該應(yīng)用所需的服務(wù);應(yīng)用模塊930,被配置為根據(jù)模型中的指令和應(yīng)用元數(shù)據(jù) 將該應(yīng)用發(fā)布到運(yùn)行環(huán)境;綁定模塊940,被配置為根據(jù)模型中的指令和拓?fù)湓獢?shù)據(jù)將準(zhǔn) 備好的服務(wù)綁定到應(yīng)用。本實(shí)施例中,服務(wù)模塊920與綁定模塊940之間的工作合作可以 是服務(wù)模塊920每準(zhǔn)備好一個(gè)服務(wù),綁定模塊940就進(jìn)行綁定,也可以是服務(wù)模塊920準(zhǔn)備 好多個(gè)服務(wù)之后,綁定模塊940將多個(gè)服務(wù)綁定到應(yīng)用。通過本實(shí)施例提供的系統(tǒng)900,可 以實(shí)現(xiàn)應(yīng)用的自動(dòng)部署,避免了重復(fù)部署的人力消耗,并且能夠降低部署應(yīng)用的技能需求。
[0081] 本發(fā)明一實(shí)施例中,綁定模塊940進(jìn)一步被配置為,根據(jù)所述模型中的指令和拓 撲元數(shù)據(jù)按照所述模型中指令的順序,將準(zhǔn)備好的服務(wù)綁定到該應(yīng)用。
[0082] 本發(fā)明一實(shí)施例中,服務(wù)模塊920進(jìn)一步被配置為,根據(jù)所述模型中的指令和服 務(wù)元數(shù)據(jù)按照所述模型中指令的順序,準(zhǔn)備部署該應(yīng)用所需的服務(wù)。
[0083] 本發(fā)明一實(shí)施例中,服務(wù)模塊920包括以下子模塊之一或其任意組合:專用子模 塊,被配置為根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù),對于專用服務(wù),創(chuàng)建一個(gè)新的專用服 務(wù);共享子模塊,被配置為根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù),對于共享服務(wù),若該共享 服務(wù)已經(jīng)存在,則使用該已經(jīng)存在的共享服務(wù),若該共享服務(wù)不存在,則創(chuàng)建一個(gè)新的共享 服務(wù);以及外部子模塊,被配置為根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù),對于外部服務(wù)引 用,創(chuàng)建一個(gè)新的外部服務(wù)引用。
[0084] 如圖10所示,本發(fā)明實(shí)施例提供了一種用于在云計(jì)算環(huán)境中部署復(fù)合應(yīng)用的系 統(tǒng)1000。其中復(fù)合應(yīng)用至少包括第一自應(yīng)用和第二子應(yīng)用。系統(tǒng)1000包括:獲取模塊1010, 被配置為獲取第一子應(yīng)用和第二子應(yīng)用的模型,其中第一子應(yīng)用和第二子應(yīng)用的模型根據(jù) 上述方法實(shí)施例或者裝置實(shí)施例得到;生命周期管理模塊1020,被配置為根據(jù)所述第一子 應(yīng)用的模型中的拓?fù)湓獢?shù)據(jù)和所述第二子應(yīng)用的模型中的拓?fù)湓獢?shù)據(jù)生成所述復(fù)合應(yīng)用 的生命周期管理信息;存儲(chǔ)模塊1030,被配置為將所述第一子應(yīng)用的模型、所述第二子應(yīng) 用的模型以及所述生命周期管理信息存儲(chǔ)為所述復(fù)合應(yīng)用的模型以用于所述復(fù)合應(yīng)用的 部署。通過本實(shí)施例提供的系統(tǒng)1000,用戶可以復(fù)用已經(jīng)存在的子應(yīng)用的模板從而得到復(fù) 合應(yīng)用的模板,實(shí)現(xiàn)復(fù)合應(yīng)用的部署,避免了復(fù)合應(yīng)用部署的重復(fù)工作,也降低了部署復(fù)合 應(yīng)用的技能需求。
[0085] 上述裝置實(shí)施例中的實(shí)現(xiàn)細(xì)節(jié)可以參照相應(yīng)的方法實(shí)施例。并且,上述裝置實(shí)施 例之間可以彼此參照得到更多的示例。
[0086] 附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程 序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以 代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè) 用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所 標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以 基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的 是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行 規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的 組合來實(shí)現(xiàn)。
[0087] 以上已經(jīng)描述了本發(fā)明的各實(shí)施例,上述說明是示例性的,并非窮盡性的,并且也 不限于所披露的各實(shí)施例。在不偏離所說明的各實(shí)施例的范圍和精神的情況下,對于本技 術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨 在最好地解釋各實(shí)施例的原理、實(shí)際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的技術(shù)改進(jìn),或者使本技術(shù)領(lǐng) 域的其它普通技術(shù)人員能理解本文披露的各實(shí)施例。
【權(quán)利要求】
1. 一種用于在云計(jì)算環(huán)境中部署應(yīng)用的方法,所述方法包括: 在用戶部署應(yīng)用時(shí),收集與部署應(yīng)用相關(guān)的元數(shù)據(jù)以及指令,所述元數(shù)據(jù)包括服務(wù)元 數(shù)據(jù)、應(yīng)用元數(shù)據(jù)以及拓?fù)湓獢?shù)據(jù),其中,所述服務(wù)元數(shù)據(jù)包括與部署該應(yīng)用所需要的服務(wù) 相關(guān)的元數(shù)據(jù),所述應(yīng)用元數(shù)據(jù)包括與該應(yīng)用相關(guān)的元數(shù)據(jù),拓?fù)湓獢?shù)據(jù)包括表示所述服 務(wù)與所述應(yīng)用之間關(guān)系的元數(shù)據(jù); 將收集到的元數(shù)據(jù)和指令存儲(chǔ)為模型以用于該應(yīng)用的再次部署。
2. 根據(jù)權(quán)利要求1所述的方法,其中, 所述服務(wù)元數(shù)據(jù)包括以下之一或其任意組合:服務(wù)的類型、服務(wù)的名稱、服務(wù)的ID、月艮 務(wù)的版本和服務(wù)的配置; 所述應(yīng)用元數(shù)據(jù)包括以下之一或其任意組合:應(yīng)用的類型、應(yīng)用的名稱、應(yīng)用的ID和 應(yīng)用的配置; 所述拓?fù)湓獢?shù)據(jù)包括以下之一或其任意組合:應(yīng)用的ID、服務(wù)的ID、應(yīng)用的名稱、服務(wù) 的名稱、綁定配置以及綁定策略。
3. 根據(jù)權(quán)利要求1所述的方法,其中,所述將收集到的元數(shù)據(jù)和指令存儲(chǔ)為模型以用 于該應(yīng)用的再次部署,包括:按照所述用戶部署該應(yīng)用的操作順序,將收集到的元數(shù)據(jù)和指 令存儲(chǔ)起來形成模型以用于該應(yīng)用的再次部署。
4. 根據(jù)權(quán)利要求1所述的方法,其中,所述將收集到的元數(shù)據(jù)和指令存儲(chǔ)為模型以用 于該應(yīng)用的再次部署,包括以下至少之一: 對收集到的元數(shù)據(jù)和指令進(jìn)行分析,去除冗余的元數(shù)據(jù)和指令; 按照所述用戶部署該應(yīng)用的操作順序,將去除冗余后的元數(shù)據(jù)和指令存儲(chǔ)起來形成模 型以用于該應(yīng)用的再次部署;以及 按照所述用戶部署該應(yīng)用的操作順序,將收集到的元數(shù)據(jù)和指令存儲(chǔ)起來;對存儲(chǔ)起 來的元數(shù)據(jù)和指令進(jìn)行分析,去除冗余的元數(shù)據(jù)和指令形成模型以用于該應(yīng)用的再次部 署; 對收集到的元數(shù)據(jù)和指令進(jìn)行分析,合并無效的元數(shù)據(jù)和指令;按照所述用戶部署該 應(yīng)用的操作順序,將合并后的元數(shù)據(jù)和指令存儲(chǔ)起來形成模型以用于該應(yīng)用的再次部署; 按照所述用戶部署該應(yīng)用的操作順序,將收集到的元數(shù)據(jù)和指令存儲(chǔ)起來;對存儲(chǔ)起 來的元數(shù)據(jù)和指令進(jìn)行分析,合并無效的元數(shù)據(jù)和指令形成模型以用于該應(yīng)用的再次部 署。
5. 根據(jù)權(quán)利要求1所述的方法,其中,所述方法進(jìn)一步包括:響應(yīng)于所述用戶向已經(jīng)部 署完畢的所述應(yīng)用再進(jìn)行部署相關(guān)操作,收集該操作涉及的元數(shù)據(jù)和指令,并將該操作涉 及的元數(shù)據(jù)和指令更新到所述模型,其中所述操作涉及的元數(shù)據(jù)包括該操作涉及的服務(wù)元 數(shù)據(jù)、該操作涉及的應(yīng)用元數(shù)據(jù)以及該操作涉及的拓?fù)湓獢?shù)據(jù)中的至少一個(gè)。
6. -種用于在云計(jì)算環(huán)境中部署應(yīng)用的方法,所述方法包括: 獲取按照權(quán)利要求1-5中任一項(xiàng)所述的方法得到的模型; 根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù)準(zhǔn)備部署該應(yīng)用所需的服務(wù); 根據(jù)所述模型中的指令和應(yīng)用元數(shù)據(jù)將該應(yīng)用發(fā)布到運(yùn)行環(huán)境; 根據(jù)所述模型中的指令和拓?fù)湓獢?shù)據(jù)將準(zhǔn)備好的服務(wù)綁定到該應(yīng)用。
7. 根據(jù)權(quán)利要求6所述的方法,其中, 所述根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù)準(zhǔn)備部署該應(yīng)用所需的服務(wù),包括:根據(jù)所 述模型中的指令和服務(wù)元數(shù)據(jù)按照所述模型中指令的順序,準(zhǔn)備部署該應(yīng)用所需的服務(wù); 所述根據(jù)所述模型中的指令和拓?fù)湓獢?shù)據(jù)將準(zhǔn)備好的服務(wù)綁定到該應(yīng)用,包括:根據(jù) 所述模型中的指令和拓?fù)湓獢?shù)據(jù)按照所述模型中指令的順序,將準(zhǔn)備好的服務(wù)綁定到該應(yīng) 用。
8. 根據(jù)權(quán)利要求6所述的方法,其中,所述根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù)準(zhǔn)備 部署該應(yīng)用所需的服務(wù),包括以下之一或其任意組合: 根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù),對于專用服務(wù),創(chuàng)建一個(gè)新的專用服務(wù); 根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù),對于共享服務(wù),若該共享服務(wù)已經(jīng)存在,則使用 該已經(jīng)存在的共享服務(wù),若該共享服務(wù)不存在,則創(chuàng)建一個(gè)新的共享服務(wù); 根據(jù)所述模型中的指令和服務(wù)元數(shù)據(jù),對于外部服務(wù)引用,創(chuàng)建一個(gè)新的外部服務(wù)引 用。
9. 一種用于在云計(jì)算環(huán)境中部署復(fù)合應(yīng)用的方法,所述復(fù)合應(yīng)用至少包括第一子應(yīng)用 和第二子應(yīng)用,所述方法包括: 獲取按照權(quán)利要求1-5中任一項(xiàng)所述的方法得到的所述第一子應(yīng)用的模型; 獲取按照權(quán)利要求1-5中任一項(xiàng)所述的方法得到的所述第二子應(yīng)用的模型; 根據(jù)所述第一子應(yīng)用的模型中的拓?fù)湓獢?shù)據(jù)和所述第二子應(yīng)用的模型中的拓?fù)湓獢?shù) 據(jù)生成所述復(fù)合應(yīng)用的生命周期管理信息; 將所述第一子應(yīng)用的模型、所述第二子應(yīng)用的模型以及所述生命周期管理信息存儲(chǔ)為 所述復(fù)合應(yīng)用的模型以用于所述復(fù)合應(yīng)用的部署。
10. -種用于在云計(jì)算環(huán)境中部署應(yīng)用的系統(tǒng),所述系統(tǒng)能夠執(zhí)行權(quán)利要求1-9中任 一項(xiàng)所述的方法。
【文檔編號】H04L29/08GK104253831SQ201310259539
【公開日】2014年12月31日 申請日期:2013年6月26日 優(yōu)先權(quán)日:2013年6月26日
【發(fā)明者】楊博, 毛新生, 譚佳, 李彤 申請人:國際商業(yè)機(jī)器公司