若干個(gè)軟件平臺(tái)包括使得能夠?qū)谔摂M機(jī)的云應(yīng)用進(jìn)行建模的應(yīng)用管理服務(wù)器。使用這樣的應(yīng)用管理服務(wù)器,應(yīng)用設(shè)計(jì)者完成應(yīng)用模型,其中應(yīng)用可以由許多個(gè)虛擬機(jī)組成,其中每個(gè)虛擬機(jī)運(yùn)行建模的應(yīng)用的不同組件。因此,n層虛擬化云應(yīng)用可以包括n個(gè)虛擬機(jī)服務(wù)器(簡(jiǎn)稱(chēng)“虛擬服務(wù)器”)。第一虛擬服務(wù)器可以運(yùn)行第一應(yīng)用組件(比如認(rèn)證模塊),第二虛擬服務(wù)器可以運(yùn)行第二應(yīng)用組件(比如數(shù)據(jù)庫(kù)服務(wù))等等。這樣的應(yīng)用管理服務(wù)器的實(shí)施例是可從加州帕洛阿爾托市的VMware,Inc.購(gòu)得的Application DirectorTM。
應(yīng)用管理服務(wù)器也可以用作部署引擎。也就是說(shuō),一旦應(yīng)用已經(jīng)被建模,建模平臺(tái)就提供對(duì)云計(jì)算環(huán)境部署該應(yīng)用(以及其中建模的所有虛擬機(jī))的手段。然而,一旦虛擬機(jī)被物理部署到云,部署的虛擬機(jī)通常就不可供應(yīng)用管理服務(wù)器使用。為了便利建模/部署平臺(tái)和部署在云中的應(yīng)用之間的集成,使用單個(gè)應(yīng)用標(biāo)識(shí)符對(duì)部署到云基礎(chǔ)設(shè)施的虛擬機(jī)中的一個(gè)或者更多個(gè)進(jìn)行邏輯分組和標(biāo)識(shí)已經(jīng)變得是有用的。作為實(shí)施例,在基于云的應(yīng)用正被部署時(shí),方便的是使用單個(gè)標(biāo)識(shí)符同時(shí)檢索關(guān)于所有的部署的虛擬機(jī)的信息,而不是單個(gè)地訪問(wèn)眾多(可能成千上萬(wàn)個(gè))虛擬機(jī)。
此外,應(yīng)用管理服務(wù)器引用部署在云中的每一個(gè)虛擬機(jī)也是方便的。這使得應(yīng)用設(shè)計(jì)者能夠改變先前部署的應(yīng)用的應(yīng)用模型并且將改變部署到已經(jīng)在云中執(zhí)行的虛擬機(jī)。另外,當(dāng)云應(yīng)用的虛擬機(jī)被云系統(tǒng)管理員(云系統(tǒng)管理員通常獨(dú)立于應(yīng)用設(shè)計(jì)者行動(dòng))向上或者向下擴(kuò)展時(shí),正被擴(kuò)展的虛擬機(jī)通常被刪除,并且用新近擴(kuò)展的系統(tǒng)參數(shù)重新創(chuàng)建。要求應(yīng)用管理服務(wù)器跟蹤新近擴(kuò)展的虛擬機(jī)將是繁重的。另一方面,為應(yīng)用管理服務(wù)器提供用更抽象的(且獨(dú)立的)標(biāo)識(shí)符引用部署的虛擬機(jī)的手段緩解這個(gè)負(fù)擔(dān)。
技術(shù)實(shí)現(xiàn)要素:
一個(gè)或者更多個(gè)實(shí)施方案為通過(guò)使用應(yīng)用管理服務(wù)器被部署到云計(jì)算環(huán)境的虛擬機(jī)提供兩個(gè)標(biāo)識(shí)符。第一標(biāo)識(shí)符標(biāo)識(shí)虛擬機(jī)是其一部分的應(yīng)用,并且當(dāng)該應(yīng)用的所有虛擬機(jī)都需要被應(yīng)用管理服務(wù)器訪問(wèn)時(shí)是有用的。此外,第二標(biāo)識(shí)符單個(gè)地標(biāo)識(shí)虛擬機(jī),并且當(dāng)只有特定的一個(gè)虛擬機(jī)或者有限的一組部署的虛擬機(jī)需要被應(yīng)用管理服務(wù)器訪問(wèn)時(shí)是有用的。
根據(jù)實(shí)施方案的在云計(jì)算環(huán)境下部署在多個(gè)虛擬機(jī)中執(zhí)行的應(yīng)用的方法包括以下步驟:產(chǎn)生應(yīng)用標(biāo)識(shí)符并且對(duì)第一虛擬機(jī)產(chǎn)生第一虛擬機(jī)標(biāo)識(shí)符的步驟。所述方法進(jìn)一步包括在云計(jì)算環(huán)境下對(duì)第一虛擬機(jī)進(jìn)行實(shí)例化并且對(duì)第一虛擬機(jī)產(chǎn)生第二虛擬機(jī)標(biāo)識(shí)符的步驟。所述方法進(jìn)一步包括創(chuàng)建應(yīng)用標(biāo)識(shí)符、第一虛擬機(jī)標(biāo)識(shí)符和第二虛擬機(jī)標(biāo)識(shí)符之間的關(guān)聯(lián)的步驟。
進(jìn)一步的實(shí)施例提供一種包括指令的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì),所述指令當(dāng)被執(zhí)行時(shí)使得多個(gè)主機(jī)計(jì)算機(jī)能夠?qū)崿F(xiàn)以上方法的一個(gè)或者更多個(gè)方面。
進(jìn)一步的實(shí)施例還提供一種被配置為實(shí)現(xiàn)以上方法的一個(gè)或者更多個(gè)方面的虛擬化計(jì)算系統(tǒng)。
附圖說(shuō)明
圖1是描繪在其下可以實(shí)現(xiàn)一個(gè)或者更多個(gè)實(shí)施方案的虛擬化云計(jì)算環(huán)境的組件的框圖。
圖2是圖示根據(jù)一個(gè)或者更多個(gè)實(shí)施方案的在基于云的應(yīng)用內(nèi)配置的虛擬機(jī)的標(biāo)識(shí)符的產(chǎn)生和關(guān)聯(lián)的概念圖。
圖3是圖示根據(jù)一個(gè)或者更多個(gè)實(shí)施方案的部署多VM的基于云的應(yīng)用的方法的流程圖。
圖4是圖示根據(jù)一個(gè)或者更多個(gè)實(shí)施方案的多VM的基于云的應(yīng)用的部署的概念圖。
圖5是根據(jù)一個(gè)或者更多個(gè)實(shí)施方案的在基于云的計(jì)算環(huán)境下向上擴(kuò)展虛擬機(jī)的方法的流程圖。
圖6是圖示根據(jù)實(shí)施方案的虛擬機(jī)在基于云的計(jì)算環(huán)境下的向上擴(kuò)展的概念圖。
圖7是圖示根據(jù)一個(gè)或者更多個(gè)實(shí)施方案的橫向擴(kuò)展(scaling out)虛擬化的基于云的應(yīng)用的方法的流程圖。
圖8是描繪根據(jù)一個(gè)或者更多個(gè)實(shí)施方案的單VM的基于云的應(yīng)用橫向擴(kuò)展為雙VM的基于云的應(yīng)用的概念圖。
具體實(shí)施方式
圖1是在其下可以實(shí)現(xiàn)一個(gè)或者更多個(gè)實(shí)施方案的虛擬化云計(jì)算環(huán)境的組件的框圖。虛擬化云計(jì)算環(huán)境通常包括支持基于虛擬機(jī)的云應(yīng)用的創(chuàng)建、部署和管理的一個(gè)或者更多個(gè)平臺(tái)。一個(gè)這樣的平臺(tái)是可從加州帕洛阿爾托市的VMware,Inc.購(gòu)得的Automation Center(或vCAC)。圖1描繪了在所示的云計(jì)算環(huán)境下作為應(yīng)用部署平臺(tái)的vCAC 100。雖然vCAC 100是在圖1中所描繪的環(huán)境下圖示的,但是應(yīng)注意到支持虛擬化云應(yīng)用的創(chuàng)建和部署的任何計(jì)算平臺(tái)都在本發(fā)明的范圍內(nèi)。
如圖1所示,vCAC 100包括兩個(gè)組件。首先,vCAC包括應(yīng)用管理服務(wù)器110。在一個(gè)或者更多個(gè)實(shí)施方案中,應(yīng)用管理服務(wù)器110包括一個(gè)或者更多個(gè)基于計(jì)算機(jī)的處理,這些處理實(shí)現(xiàn)支持云計(jì)算環(huán)境下的應(yīng)用的創(chuàng)建和部署的應(yīng)用布建平臺(tái)。應(yīng)用管理服務(wù)器110的終端用戶(在圖1中稱(chēng)為管理用戶160)定義基于云的應(yīng)用的結(jié)構(gòu)和拓?fù)?。在基于云的?yīng)用的管理用戶160創(chuàng)建和互連的組件之中的是運(yùn)行基于云的應(yīng)用的各種軟件組件的虛擬機(jī)。例如,管理用戶160可能希望定義基于云的數(shù)據(jù)存儲(chǔ)應(yīng)用。在這樣的情況下,管理用戶160訪問(wèn)應(yīng)用管理服務(wù)器110以對(duì)數(shù)據(jù)存儲(chǔ)應(yīng)用進(jìn)行建模和創(chuàng)建。作為實(shí)施例,討論中的數(shù)據(jù)存儲(chǔ)應(yīng)用可以被定義為“三層”應(yīng)用,該應(yīng)用包括負(fù)責(zé)存儲(chǔ)數(shù)據(jù)的組件、負(fù)責(zé)提供數(shù)據(jù)安全性的組件以及用于發(fā)布數(shù)據(jù)以供在基于web的應(yīng)用中查看的組件。這樣的應(yīng)用可以在應(yīng)用管理服務(wù)器110中被建模為包括用于前述每個(gè)組件的單獨(dú)的虛擬機(jī)(或者虛擬服務(wù)器)。一旦管理用戶160已經(jīng)完成了對(duì)基于云的應(yīng)用的建模,應(yīng)用管理服務(wù)器110就對(duì)建模的應(yīng)用產(chǎn)生應(yīng)用藍(lán)圖(未示出)。另外,應(yīng)用部署計(jì)劃(未示出)被保存在應(yīng)用管理服務(wù)器110中,其中,一旦應(yīng)用被選擇被部署到云基礎(chǔ)設(shè)施,該應(yīng)用部署計(jì)劃就被執(zhí)行。
圖1還描繪了vCAC 100包括使得能夠在基于云的計(jì)算環(huán)境下布建虛擬化基礎(chǔ)設(shè)施組件的組件。為了實(shí)現(xiàn)這一點(diǎn),IaaS 120是使得能夠選擇將與基于云的應(yīng)用一起部署的虛擬硬件元件的軟件組件。也就是說(shuō),IaaS 120包含用于各種類(lèi)型的虛擬裝置(比如虛擬服務(wù)器)的模板,這些模板可以在云中被實(shí)例化。例如,IaaS 120可能已經(jīng)配置和存儲(chǔ)用于具有某些處理、記憶和存儲(chǔ)能力的虛擬機(jī)的模板。因此,在特定實(shí)施方案中,IaaS 120可能已經(jīng)在其中存儲(chǔ)用于第一類(lèi)型的虛擬服務(wù)器的模板以及用于第二類(lèi)型的虛擬服務(wù)器的模板,第一類(lèi)型的虛擬服務(wù)器具有32千兆字節(jié)(GB)的隨機(jī)存取存儲(chǔ)器(RAM),第二類(lèi)型的虛擬服務(wù)器具有64GB的RAM。
如所示,IaaS 120與應(yīng)用管理服務(wù)器110直接通信。當(dāng)虛擬化應(yīng)用將被部署到云時(shí),應(yīng)用通常需要在其上將安裝應(yīng)用和系統(tǒng)軟件并且該應(yīng)用在其中執(zhí)行的虛擬硬件裝置(例如,虛擬機(jī))。在一個(gè)或者更多個(gè)實(shí)施方案中,應(yīng)用管理服務(wù)器110(在管理用戶160的指導(dǎo)下)從IaaS 120提供的模板選擇虛擬機(jī)類(lèi)型,其中在應(yīng)用的建模階段中定義的每個(gè)虛擬機(jī)對(duì)應(yīng)于IaaS 120提供的虛擬機(jī)模板的類(lèi)型。因此,使用以上提及的數(shù)據(jù)存儲(chǔ)應(yīng)用的實(shí)施例,管理用戶160可以確定數(shù)據(jù)存儲(chǔ)應(yīng)用組件將在64GB RAM虛擬機(jī)上運(yùn)行,但是數(shù)據(jù)安全性組件和數(shù)據(jù)發(fā)布組件均可以在32GB RAM虛擬機(jī)上運(yùn)行。在這樣的情況下,當(dāng)數(shù)據(jù)存儲(chǔ)應(yīng)用被部署時(shí),應(yīng)用管理服務(wù)器110與IaaS 120進(jìn)行通信,以便為被建模為虛擬化應(yīng)用的一部分的每個(gè)虛擬機(jī)選擇適當(dāng)?shù)奶摂M機(jī)類(lèi)型。
在實(shí)施方案中,IaaS 120與云計(jì)算平臺(tái)(或者云“提供商”)直接通信。云計(jì)算平臺(tái)通常包括支持基于云的應(yīng)用的執(zhí)行所需的計(jì)算資源。因此,云計(jì)算平臺(tái)中的基礎(chǔ)設(shè)施通常包括虛擬計(jì)算硬件和物理計(jì)算硬件,連同應(yīng)用和系統(tǒng)軟件。一些云基礎(chǔ)設(shè)施平臺(tái)(即,支持多個(gè)基于云的應(yīng)用的平臺(tái))包括使得可以基于應(yīng)用需求來(lái)平衡和重新分配虛擬硬件資源和物理硬件資源的機(jī)制。
如圖1所示,IaaS 120與VM管理服務(wù)器130進(jìn)行通信,VM管理服務(wù)器130是實(shí)現(xiàn)基于云的計(jì)算平臺(tái)的系統(tǒng)軟件的實(shí)施例。在一個(gè)實(shí)施例中,VM管理服務(wù)器130可以包括可從VMware,Inc.購(gòu)得的vCenter ServerTM和程序產(chǎn)品。在圖1所示的實(shí)施方案中,VM管理服務(wù)器130包括支持多個(gè)虛擬機(jī)(VM)的實(shí)例化和執(zhí)行的一個(gè)或者更多個(gè)基于計(jì)算機(jī)的處理。因此,在該圖中,VM 1401-140n被描繪為在VM管理服務(wù)器130中被實(shí)例化。此外,VM 1401-140n每個(gè)均被示為是應(yīng)用150的一部分。應(yīng)用150是如前面所提及的“分層”虛擬化應(yīng)用的實(shí)施例。因此,應(yīng)用150中的每個(gè)VM 140對(duì)應(yīng)于應(yīng)用管理服務(wù)器110中定義的對(duì)應(yīng)應(yīng)用的特定組件。再次參照基于云的數(shù)據(jù)存儲(chǔ)應(yīng)用,管理用戶160使用應(yīng)用管理服務(wù)器110對(duì)應(yīng)用進(jìn)行定義和建模,使用應(yīng)用管理服務(wù)器110與IaaS 120結(jié)合地部署應(yīng)用,并且應(yīng)用通過(guò)IaaS 120將部署請(qǐng)求傳送給VM管理服務(wù)器130而在云環(huán)境(即,VM管理服務(wù)器130)中被實(shí)例化。應(yīng)注意到,VM 140在云中的實(shí)際實(shí)例化是由VM管理服務(wù)器130應(yīng)IaaS 120的請(qǐng)求執(zhí)行的。此外,下面將更詳細(xì)地描述VM 140如何被關(guān)聯(lián)為單個(gè)應(yīng)用150的一部分。
一旦基于云的應(yīng)用被部署到VM管理服務(wù)器130,應(yīng)用就可以被應(yīng)用用戶170訪問(wèn)和使用。如圖1所示,應(yīng)用用戶170通過(guò)網(wǎng)絡(luò)180訪問(wèn)應(yīng)用150,網(wǎng)絡(luò)180又連接到VM管理服務(wù)器130。在實(shí)施方案中,VM管理服務(wù)器130(云“提供商”)通過(guò)接收通過(guò)不同的統(tǒng)一資源定位符(URL)的對(duì)應(yīng)用的web請(qǐng)求來(lái)使其中部署的特定應(yīng)用可以使用。
還應(yīng)注意到,在一些實(shí)施方案中,應(yīng)用管理服務(wù)器110可以被配置為與某些云基礎(chǔ)設(shè)施(例如,公共云)(比如Amazon Web服務(wù)或者M(jìn)icrosoft)直接通信。該通信由應(yīng)用110與云150之間的連接描繪。因此,在一些實(shí)施方案中,應(yīng)用管理服務(wù)器110可以被配置為利用公共云提供商提供的基礎(chǔ)設(shè)施服務(wù)將應(yīng)用直接部署到這些云提供商。
此外,盡管圖1的實(shí)施方案將vCAC 100和VM管理服務(wù)器130描繪為在單獨(dú)的主機(jī)計(jì)算機(jī)(即,單獨(dú)的物理服務(wù)器)上運(yùn)行,但是應(yīng)注意到,VM管理服務(wù)器130的一些或者全部功能可以由駐留在與vCAC 100相同的主機(jī)計(jì)算機(jī)上的模塊執(zhí)行。在這樣的實(shí)施方案中,這些模塊被配置為執(zhí)行通常由VM管理服務(wù)器130執(zhí)行的某些虛擬機(jī)管理功能(例如,平衡云計(jì)算環(huán)境內(nèi)的虛擬機(jī)之間的或者幾個(gè)云計(jì)算環(huán)境之間的工作負(fù)荷)。vCAC 100的還有的其他的實(shí)施方案包括被配置為在云計(jì)算環(huán)境下對(duì)虛擬機(jī)進(jìn)行實(shí)例化的模塊。實(shí)際上,vCAC 100和VM管理服務(wù)器130(在圖1中被描繪)的組合功能可以在單個(gè)主機(jī)計(jì)算機(jī)上實(shí)現(xiàn)或者分布在幾個(gè)主機(jī)計(jì)算機(jī)之間。
當(dāng)基于云的應(yīng)用通過(guò)使用應(yīng)用管理服務(wù)器110和IaaS 120被建模并且被部署到云時(shí),對(duì)于連接到應(yīng)用管理服務(wù)器110的管理用戶160來(lái)說(shuō)可取的是能夠通過(guò)根據(jù)部署的虛擬機(jī)在應(yīng)用管理服務(wù)器110中的標(biāo)識(shí)方式引用這些虛擬機(jī)來(lái)訪問(wèn)這些虛擬機(jī)。例如,在包括100個(gè)虛擬機(jī)的基于云的應(yīng)用的部署操作期間,當(dāng)這100個(gè)虛擬機(jī)在應(yīng)用管理服務(wù)器110中被引用時(shí),管理用戶160可能希望檢查這100個(gè)虛擬機(jī)中的一個(gè)或者全部的狀態(tài)。因此,在一些實(shí)施方案中,管理用戶160可以將請(qǐng)求正在為特定應(yīng)用部署的所有虛擬機(jī)的列表的查詢發(fā)送到IaaS 120和VM管理服務(wù)器130。對(duì)這樣的詢問(wèn)的響應(yīng)對(duì)于確定基于云的應(yīng)用的部署的進(jìn)展以及在VM管理服務(wù)器130是否已經(jīng)發(fā)生任何部署故障將是有幫助的。在其他情況下,管理用戶160可以發(fā)送查詢以確定作為基于云的應(yīng)用的當(dāng)前在部署中的組件的一個(gè)特定虛擬機(jī)的狀態(tài)。對(duì)這樣的詢問(wèn)的響應(yīng)對(duì)于確定正被查詢的該特定虛擬機(jī)是否可以被實(shí)例化或者在它上是否已經(jīng)安裝有某個(gè)應(yīng)用或者系統(tǒng)軟件將是有幫助的。
圖2是圖示根據(jù)一個(gè)或者更多個(gè)實(shí)施方案的在基于云的應(yīng)用中配置的虛擬機(jī)的標(biāo)識(shí)符的產(chǎn)生和關(guān)聯(lián)的框圖。如圖2所示,應(yīng)用管理服務(wù)器110已經(jīng)在其中對(duì)單VM的基于云的應(yīng)用進(jìn)行了建模。該應(yīng)用的建模通過(guò)管理用戶160訪問(wèn)應(yīng)用管理服務(wù)器110而被執(zhí)行(圖1中已經(jīng)示出)。在當(dāng)基于云的應(yīng)用被建模并且被部署時(shí)應(yīng)用管理服務(wù)器110產(chǎn)生并且存儲(chǔ)的元件之間的是與作為整體的該基于云的應(yīng)用以及該基于云的應(yīng)用中所包括的單個(gè)的虛擬機(jī)有關(guān)的標(biāo)識(shí)符。在實(shí)施方案中,關(guān)于基于云的應(yīng)用的這個(gè)元數(shù)據(jù)被存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)(比如圖2所示的表格225)中??商鎿Q地,該元數(shù)據(jù)被存儲(chǔ)在應(yīng)用管理服務(wù)器110可訪問(wèn)的文件系統(tǒng)中。
當(dāng)管理用戶160使用應(yīng)用管理服務(wù)器110對(duì)基于云的應(yīng)用進(jìn)行建模、保存和部署時(shí),應(yīng)用管理服務(wù)器110產(chǎn)生唯一標(biāo)識(shí)符。對(duì)于圖2所示的實(shí)施方案,應(yīng)用管理服務(wù)器110產(chǎn)生唯一應(yīng)用ID(在圖2中所描繪的實(shí)施例中稱(chēng)為AppID1),該唯一應(yīng)用ID是作為整體的應(yīng)用的標(biāo)識(shí)符。例如,如果管理用戶160對(duì)將運(yùn)行并且訪問(wèn)Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)應(yīng)用進(jìn)行建模,則應(yīng)用管理服務(wù)器110產(chǎn)生與該數(shù)據(jù)庫(kù)應(yīng)用對(duì)應(yīng)的單個(gè)應(yīng)用ID(例如AppID1)。因此,使用應(yīng)用管理服務(wù)器110,管理用戶將能夠使用所產(chǎn)生的應(yīng)用ID來(lái)引用或者查詢數(shù)據(jù)庫(kù)應(yīng)用的任何元素。
另外,當(dāng)管理用戶160使用應(yīng)用管理服務(wù)器110對(duì)基于云的應(yīng)用進(jìn)行建模、保存和部署時(shí),應(yīng)用管理服務(wù)器110為作為基于云的應(yīng)用的組件的每個(gè)虛擬機(jī)產(chǎn)生唯一標(biāo)識(shí)符。參照?qǐng)D2,該唯一標(biāo)識(shí)符被標(biāo)識(shí)為VM ID1。在圖2所示的實(shí)施例中,對(duì)AppID1標(biāo)識(shí)的基于云的應(yīng)用產(chǎn)生單個(gè)VM ID1(即,VMID1_a)。因此,AppID1標(biāo)識(shí)的基于云的應(yīng)用是單VM應(yīng)用,其中為該應(yīng)用定義的單個(gè)VM在應(yīng)用管理服務(wù)器110中由VMID1_a標(biāo)識(shí)。例如,管理用戶160可以對(duì)單VM的基于云的數(shù)據(jù)庫(kù)應(yīng)用進(jìn)行建模,其中虛擬機(jī)被配置為運(yùn)行Oracle數(shù)據(jù)庫(kù)軟件以及用戶定義的應(yīng)用軟件。作為整體的數(shù)據(jù)庫(kù)應(yīng)用由其唯一應(yīng)用ID(即,AppID1)引用,而只有作為數(shù)據(jù)庫(kù)應(yīng)用的一部分的虛擬機(jī)由其唯一VM ID1(即,VMID1_a)引用。因此,如果管理用戶160希望(使用應(yīng)用管理服務(wù)器110)檢索圖2中所描繪的應(yīng)用的所有組件(例如,虛擬機(jī)和任何其他的虛擬硬件元件,比如虛擬交換機(jī)和盤(pán))的狀態(tài),則管理用戶160制定引用AppID1的查詢并且將該查詢從應(yīng)用管理服務(wù)器110發(fā)送到云。如果管理用戶160希望(使用應(yīng)用管理服務(wù)器110)檢索圖2中所描繪的應(yīng)用中的唯一一個(gè)虛擬機(jī),則管理用戶160制定引用VMID1_a的查詢并且將該查詢從應(yīng)用管理服務(wù)器110發(fā)送到云。
如圖2所示,應(yīng)用管理服務(wù)器110與IaaS 120直接通信。IaaS 120又與VM管理服務(wù)器130直接通信。如前所述,IaaS 120提供管理用戶160可以將其與在應(yīng)用管理服務(wù)器110中建模的虛擬機(jī)相關(guān)聯(lián)的預(yù)定義虛擬機(jī)類(lèi)型(或者模板)的選擇。當(dāng)管理用戶160部署應(yīng)用時(shí),應(yīng)用管理服務(wù)器110將部署請(qǐng)求發(fā)送到IaaS 120。在實(shí)施方案中,IaaS 120將一個(gè)或者更多個(gè)請(qǐng)求發(fā)送到VM管理服務(wù)器130以便對(duì)請(qǐng)求的虛擬機(jī)進(jìn)行實(shí)例化。因此,在圖2所示的實(shí)施例中,應(yīng)用管理服務(wù)器110將部署基于云的應(yīng)用的請(qǐng)求發(fā)送到IaaS 120,該基于云的應(yīng)用具有應(yīng)用ID(AppID1),并且與具有VM ID1標(biāo)識(shí)符(VMID1_a)的虛擬機(jī)相關(guān)聯(lián)。在一個(gè)或者更多個(gè)實(shí)施方案中,IaaS 120接收部署請(qǐng)求(該部署請(qǐng)求包括應(yīng)用ID和VM ID1標(biāo)識(shí)符),并且將對(duì)所需虛擬機(jī)進(jìn)行實(shí)例化的請(qǐng)求發(fā)送到VM管理服務(wù)器130。如圖2所示,IaaS 120將應(yīng)用ID(AppID1)和VM ID1標(biāo)識(shí)符(VMID1_a)作為相關(guān)聯(lián)的項(xiàng)存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)(例如表格230)中。另外,IaaS 120中的表格230包括另一個(gè)列,以使得AppID1和VMID1_a可以與另一個(gè)待標(biāo)識(shí)的VM相關(guān)聯(lián)。
如圖2的下部分所示,VM管理服務(wù)器130從IaaS 120接收虛擬機(jī)實(shí)例化請(qǐng)求,并且作為對(duì)該請(qǐng)求的響應(yīng),對(duì)云內(nèi)的虛擬機(jī)進(jìn)行實(shí)例化。如該圖所示,VM 140響應(yīng)于從IaaS 120接收的請(qǐng)求而被實(shí)例化,該請(qǐng)求對(duì)應(yīng)于IaaS 120從應(yīng)用管理服務(wù)器110接收的請(qǐng)求。在所示的實(shí)施方案中,VM 140還包含元數(shù)據(jù),該元數(shù)據(jù)要么被存儲(chǔ)在虛擬存儲(chǔ)器中,要么被存儲(chǔ)在被配置為VM 140的一部分的虛擬存儲(chǔ)裝置上。該元數(shù)據(jù)包括AppID1和VMID1_a,如前所述,AppID1和VMID1_a是當(dāng)基于云的應(yīng)用在應(yīng)用管理服務(wù)器110中被建模時(shí)由應(yīng)用管理服務(wù)器110產(chǎn)生的標(biāo)識(shí)符。另外,VM 140還包括附加標(biāo)識(shí)符VMID2_a。VMID2_a是當(dāng)虛擬機(jī)在VM管理服務(wù)器130中被實(shí)例化時(shí)VM管理服務(wù)器130產(chǎn)生的唯一虛擬機(jī)標(biāo)識(shí)符(一般稱(chēng)為VM ID2)。VM ID2可以被存儲(chǔ)在實(shí)例化的虛擬機(jī)中??商鎿Q地,VM ID2可以被存儲(chǔ)在虛擬機(jī)的外部,然而在邏輯上與虛擬機(jī)相關(guān)聯(lián)。參照?qǐng)D2,因?yàn)閂MID2_a是獨(dú)立于AppID1和VMID1_a產(chǎn)生的,所以仍存在將應(yīng)用管理服務(wù)器110產(chǎn)生的標(biāo)識(shí)符(即,AppID1和VMID1_a)與VM管理服務(wù)器130產(chǎn)生的標(biāo)識(shí)符(即,VMID2_a)相關(guān)聯(lián)的任務(wù)。
在圖2所示的實(shí)施方案中,一旦VM管理服務(wù)器130對(duì)VM 140進(jìn)行了實(shí)例化并且產(chǎn)生了VMID2_a,VM管理服務(wù)器130就將VMID2_a發(fā)送到IaaS 120。當(dāng)IaaS 120從VM管理服務(wù)器130接收到VMID2_a時(shí),IaaS 120以將AppID1和VMID1_a與VMID2_a相關(guān)聯(lián)的方式將VMID2_a存儲(chǔ)在表格230中。VMID2_a的這個(gè)存儲(chǔ)在圖2中由箭頭240概念性地圖示,箭頭240從VM 140內(nèi)的VMID2_a延伸到IaaS 120內(nèi)的表格230中的空數(shù)據(jù)字段。一旦VMID2_a被存儲(chǔ)在IaaS 120的表格230中,AppID1和VMID1_a就與VMID2_a相關(guān)聯(lián)。因此,在應(yīng)用管理服務(wù)器110中配置的應(yīng)用(即,具有應(yīng)用ID AppID1的應(yīng)用)和在VM管理服務(wù)器130內(nèi)實(shí)例化的虛擬機(jī)(即,VM 140)之間創(chuàng)建了關(guān)聯(lián)。該關(guān)聯(lián)通過(guò)將VM 140顯示為在應(yīng)用150內(nèi)被分組而被概念性地圖示。應(yīng)注意到,應(yīng)用150用作標(biāo)識(shí)在VM管理服務(wù)器130中實(shí)例化的虛擬機(jī)被分組在具有單個(gè)唯一應(yīng)用標(biāo)識(shí)符(例如AppID1)的單個(gè)應(yīng)用內(nèi)的方式。因此,在圖2中,VM 140被分組到應(yīng)用150中,應(yīng)用150在邏輯上對(duì)應(yīng)于在應(yīng)用管理服務(wù)器110中建模的由AppID1標(biāo)識(shí)的應(yīng)用。
圖3是圖示根據(jù)一個(gè)或者更多個(gè)實(shí)施方案的部署多VM的基于云的應(yīng)用的方法300的流程圖。為了圖示的目的,結(jié)合圖4的框圖對(duì)圖3進(jìn)行描述。如所示,方法300從步驟310開(kāi)始,在步驟310,對(duì)具有一個(gè)或者更多個(gè)VM的應(yīng)用進(jìn)行建模。如前所述,這通常通過(guò)管理用戶使用應(yīng)用管理服務(wù)器110來(lái)實(shí)現(xiàn)。作為實(shí)施例,在圖4中,應(yīng)用管理服務(wù)器110已經(jīng)在其中對(duì)具有三個(gè)單獨(dú)的虛擬機(jī)的基于云的應(yīng)用進(jìn)行了建模?;仡^參照基于云的數(shù)據(jù)存儲(chǔ)應(yīng)用的實(shí)施例,第一虛擬機(jī)可以是存儲(chǔ)服務(wù)器,第二虛擬機(jī)可以是安全服務(wù)器,而第三虛擬機(jī)可以是發(fā)布服務(wù)器。
參照?qǐng)D3,一旦基于云的應(yīng)用在步驟310被建模,方法300就繼續(xù)進(jìn)行到步驟320。在步驟320,應(yīng)用管理服務(wù)器110接收將建模的應(yīng)用部署到云基礎(chǔ)設(shè)施的請(qǐng)求。響應(yīng)于在步驟320接收到部署請(qǐng)求,應(yīng)用管理服務(wù)器110在步驟330產(chǎn)生與建模的應(yīng)用對(duì)應(yīng)的唯一應(yīng)用ID。參照?qǐng)D4,AppID1(其被存儲(chǔ)在應(yīng)用管理服務(wù)器110內(nèi)的表格225中)對(duì)應(yīng)于建模的應(yīng)用。
一旦唯一應(yīng)用ID已經(jīng)被產(chǎn)生,方法300就繼續(xù)進(jìn)行到步驟340。在步驟340,對(duì)在基于云的應(yīng)用內(nèi)被建模的下一個(gè)虛擬機(jī)產(chǎn)生唯一VM ID1。在圖4中所描繪的實(shí)施例中,在應(yīng)用管理服務(wù)器110中對(duì)三VM的基于云的應(yīng)用進(jìn)行建模。因此,在步驟340,對(duì)這三個(gè)虛擬機(jī)中的第一虛擬機(jī)產(chǎn)生并且存儲(chǔ)VMID1_a。
在本實(shí)施方案中,方法300然后繼續(xù)進(jìn)行到步驟350,在步驟350,將其VM ID1已經(jīng)在步驟340產(chǎn)生的虛擬機(jī)部署到云(或者在云中實(shí)例化)。在實(shí)施方案中,VM到云的部署包括將對(duì)VM的部署請(qǐng)求從應(yīng)用管理服務(wù)器110發(fā)送到IaaS 120。部署請(qǐng)求包括所產(chǎn)生的應(yīng)用ID和VM ID1(例如,AppID1和VMID1_a,來(lái)自于圖4)。IaaS 120然后將對(duì)與部署請(qǐng)求對(duì)應(yīng)的VM進(jìn)行實(shí)例化的進(jìn)一步請(qǐng)求發(fā)送到云基礎(chǔ)設(shè)施(例如,VM管理服務(wù)器130)。如圖4所示,IaaS 120接收對(duì)在應(yīng)用管理服務(wù)器110中建模的第一VM(即,由VMID1_a標(biāo)識(shí)的VM)的部署請(qǐng)求。IaaS 120將AppID1和VMID1_a存儲(chǔ)在表格230中,并且將與應(yīng)用管理服務(wù)器110中由VMID1_a標(biāo)識(shí)的VM對(duì)應(yīng)的實(shí)例化請(qǐng)求發(fā)送到VM管理服務(wù)器130。VM管理服務(wù)器130然后對(duì)第一虛擬機(jī)(即,VM 1401)進(jìn)行實(shí)例化。如圖4所示,VM 1401存儲(chǔ)包括AppID1和VMID1_a的元數(shù)據(jù)。另外,作為VM 1401的實(shí)例化的結(jié)果,VM管理服務(wù)器130產(chǎn)生VMID2_a,VMID2_a被存儲(chǔ)在VM 1401中(或者在邏輯上與VM 1401相關(guān)聯(lián))。
一旦在應(yīng)用中被建模的下一個(gè)VM被部署到云(即,在云中被實(shí)例化),方法300就繼續(xù)進(jìn)行到步驟360。在步驟360,IaaS 120從云接收所產(chǎn)生的VM ID2,如前所述,該VM ID2是當(dāng)云對(duì)VM進(jìn)行實(shí)例化時(shí)由云(例如,VM管理服務(wù)器130)產(chǎn)生的。因此,參照?qǐng)D4,在步驟360,VM管理服務(wù)器130將VM ID2_a(其由VM管理服務(wù)器130在步驟350產(chǎn)生)發(fā)送到IaaS 120。
在步驟370,IaaS 120將在步驟360接收的VM ID2_a與應(yīng)用ID AppID1和VM ID1 VMID1_a相關(guān)聯(lián),AppID1和VMID1_a分別是在步驟330和340中產(chǎn)生的。因此,如圖4所示,IaaS 120從VM管理服務(wù)器130接收VM ID2_a,并且將它存儲(chǔ)在表格230的包含AppID1和VMID1_a的條目中。因此,以這種方式,在AppID1和VMID1_a(從應(yīng)用管理服務(wù)器110的角度來(lái)講,VMID1_a唯一地標(biāo)識(shí)建模的第一虛擬機(jī))與VM 1401(其是在VM管理服務(wù)器130內(nèi)實(shí)例化的對(duì)應(yīng)虛擬機(jī))之間建立了關(guān)聯(lián)。
在步驟380,方法300確定是否存在被建模為應(yīng)用管理服務(wù)器110中的基于云的應(yīng)用的一部分的更多個(gè)VM。如果存在更多個(gè)VM,則方法300返回到步驟340,在步驟340,對(duì)下一個(gè)VM產(chǎn)生下一個(gè)VM ID1。因此,參照?qǐng)D4,對(duì)第二VM產(chǎn)生VMID1_b。方法300然后繼續(xù)進(jìn)行步驟350-370以將第二VM部署到云并且將部署的第二VM與在應(yīng)用管理服務(wù)器110中建模的第二VM相關(guān)聯(lián)。如圖4所示,VM管理服務(wù)器130對(duì)VM 1402進(jìn)行實(shí)例化,并且產(chǎn)生VMID2_b。AppID1和VMID1_b然后被與VMID2_b關(guān)聯(lián)在表格230的第二條目中。應(yīng)注意到,方法300對(duì)應(yīng)用管理服務(wù)器110中建模的第三虛擬機(jī)(即,由VMID1_c標(biāo)識(shí)的虛擬機(jī))以相似的方式繼續(xù)進(jìn)行步驟340-370。
如果在步驟380,方法300確定不存在被建模為應(yīng)用管理服務(wù)器110中的基于云的應(yīng)用的一部分的更多個(gè)VM,則所有應(yīng)用VM都被部署,方法300終止。
如前所述,將應(yīng)用管理服務(wù)器110為虛擬機(jī)產(chǎn)生的標(biāo)識(shí)符(即,應(yīng)用ID和/或VM ID1)與當(dāng)虛擬機(jī)被部署到云(即,VM ID2)時(shí)VM管理服務(wù)器130為同一個(gè)虛擬機(jī)產(chǎn)生的標(biāo)識(shí)符相關(guān)聯(lián)是有用的。一個(gè)益處是直接從應(yīng)用管理服務(wù)器110跟蹤虛擬機(jī)的部署的進(jìn)展的能力。另一個(gè)益處是在虛擬機(jī)被部署過(guò)后每次訪問(wèn)已經(jīng)部署的虛擬機(jī)的能力,以便在該虛擬機(jī)上更新或者安裝新的軟件。然而,當(dāng)虛擬機(jī)被系統(tǒng)管理員向上擴(kuò)展或者向下擴(kuò)展時(shí),應(yīng)用ID和VM ID1(由應(yīng)用管理服務(wù)器110產(chǎn)生)與VM 102(由VM管理服務(wù)器130產(chǎn)生)之間的關(guān)聯(lián)可能斷開(kāi)。
在虛擬機(jī)被部署到云基礎(chǔ)設(shè)施(比如VM管理服務(wù)器130)之后,系統(tǒng)管理員可以對(duì)該虛擬機(jī)執(zhí)行“擴(kuò)展(scaling)”。對(duì)虛擬機(jī)進(jìn)行擴(kuò)展是指動(dòng)態(tài)地改變?cè)撎摂M機(jī)的系統(tǒng)參數(shù)(比如可用RAM的量、可用CPU的數(shù)量等等)??梢允褂锚?dú)立于應(yīng)用管理服務(wù)器110操作的系統(tǒng)管理工具來(lái)對(duì)虛擬機(jī)進(jìn)行向上或者向下擴(kuò)展。例如,系統(tǒng)管理員可以使用VSphere管理工具套裝來(lái)對(duì)基于云的虛擬機(jī)執(zhí)行管理任務(wù),VSphere管理工具套裝可從VMware,Inc.購(gòu)得。通常,對(duì)基于云的虛擬機(jī)進(jìn)行擴(kuò)展有必要包括以下操作:為云中的新的虛擬機(jī)分配所需的向上擴(kuò)展(或者向下擴(kuò)展)參數(shù),將現(xiàn)存虛擬機(jī)的運(yùn)行時(shí)狀態(tài)和數(shù)據(jù)復(fù)制到新近擴(kuò)展的虛擬機(jī),對(duì)新近擴(kuò)展的虛擬機(jī)進(jìn)行實(shí)例化并且啟動(dòng),并且摧毀(或者釋放)先前存在的虛擬機(jī)。以這種方式,新近擴(kuò)展的虛擬機(jī)取代先前存在的虛擬機(jī)。
然而,如果先前存在的虛擬機(jī)已經(jīng)通過(guò)應(yīng)用管理服務(wù)器110被部署到云,則由應(yīng)用管理服務(wù)器110產(chǎn)生的標(biāo)識(shí)符(應(yīng)用ID和VM ID1)與由VM管理服務(wù)器130產(chǎn)生的標(biāo)識(shí)符(VM ID2)之間的關(guān)聯(lián)斷開(kāi)。這種情況的原因是由于當(dāng)VM管理服務(wù)器130創(chuàng)建新近擴(kuò)展的虛擬機(jī)時(shí)在該過(guò)程中產(chǎn)生新的VM ID2的事實(shí)。應(yīng)注意到,先前存在的虛擬機(jī)的VM ID2不被復(fù)制到新近擴(kuò)展的虛擬機(jī)或者不與新近擴(kuò)展的虛擬機(jī)相關(guān)聯(lián)。另外,一旦新近擴(kuò)展的虛擬機(jī)被啟動(dòng),先前存在的虛擬機(jī)就被連同關(guān)于該虛擬機(jī)的元數(shù)據(jù)一起摧毀。因此,先前存在的虛擬機(jī)的VM ID2不再引用現(xiàn)存的虛擬機(jī)。
盡管如此,先前存在的虛擬機(jī)的應(yīng)用ID和VM ID1被持久存儲(chǔ),在實(shí)施方案中,被持久存儲(chǔ)在IaaS 120的表格230以及應(yīng)用管理服務(wù)器110的表格225中。因此,應(yīng)用管理服務(wù)器110維持應(yīng)用以及先前已經(jīng)被建模和部署的對(duì)應(yīng)虛擬機(jī)的唯一句柄。因此,可以在應(yīng)用管理服務(wù)器110中建模的虛擬機(jī)被獨(dú)立于應(yīng)用管理服務(wù)器110向上或者向下擴(kuò)展之后(例如,當(dāng)這些虛擬機(jī)新近使用VSphere管理工具被擴(kuò)展時(shí))在應(yīng)用ID與這些虛擬機(jī)的VM ID1之間建立關(guān)聯(lián)。
圖5是根據(jù)一個(gè)或者更多個(gè)實(shí)施方案的在基于云的計(jì)算環(huán)境下向上擴(kuò)展虛擬機(jī)的方法500的流程圖。將結(jié)合圖6來(lái)描述圖5,圖6是概念性地圖示基于云的計(jì)算環(huán)境下的虛擬機(jī)的向上擴(kuò)展的框圖。如圖6所示,VM 1401是作為先前用一個(gè)虛擬機(jī)(在應(yīng)用管理服務(wù)器110和IaaS 120中由VM ID1 VMID1_a標(biāo)識(shí))部署應(yīng)用(在應(yīng)用管理服務(wù)器110和IaaS 120中由應(yīng)用ID AppID1標(biāo)識(shí))的結(jié)果在VM管理服務(wù)器130中實(shí)例化的虛擬機(jī)。在VM管理服務(wù)器130對(duì)VM 1401進(jìn)行實(shí)例化時(shí),VM管理服務(wù)器130產(chǎn)生VMID2_a,并且將該標(biāo)識(shí)符與VM 1401相關(guān)聯(lián)。方法500從步驟510開(kāi)始,在步驟510,接收向上擴(kuò)展虛擬機(jī)的請(qǐng)求。如圖6所示,擴(kuò)展請(qǐng)求610被VM云管理員600接收。在實(shí)施方案中,VM云管理員600可以包括可從VMware,Inc.購(gòu)得的管理工具套裝。在實(shí)施方案中,請(qǐng)求610被系統(tǒng)管理員通過(guò)例如系統(tǒng)控制臺(tái)發(fā)送到VM云管理員600。
方法500然后繼續(xù)進(jìn)行到步驟520,在步驟520,響應(yīng)于擴(kuò)展請(qǐng)求,在云中對(duì)新近向上擴(kuò)展的虛擬機(jī)進(jìn)行實(shí)例化。這在圖6中由新虛擬機(jī)VM 1402的創(chuàng)建(通過(guò)VM云管理員600與VM管理服務(wù)器130進(jìn)行通信來(lái)創(chuàng)建)圖示。在實(shí)施方案中,VM 1402是用與先前實(shí)例化和部署的VM 1401相關(guān)的向上擴(kuò)展系統(tǒng)參數(shù)創(chuàng)建的。VM 1402的點(diǎn)線輪廓表示VM 1402是新近創(chuàng)建的。應(yīng)注意到,當(dāng)VM 1402被創(chuàng)建時(shí),VM管理服務(wù)器130產(chǎn)生VMID2_b,VMID2_b不同于VM 1401的VMID2_a。
接著,在步驟530,將VM 1401的數(shù)據(jù)復(fù)制到VM 1402。如圖6所示,這包括元數(shù)據(jù)項(xiàng)AppID1和VMID1_a。然而,VMID2_a不被復(fù)制到VM 1402或者不與VM 1402相關(guān)聯(lián)。
一旦VM 1401的數(shù)據(jù)(以及元數(shù)據(jù))被復(fù)制到VM 1402,方法500就繼續(xù)進(jìn)行到步驟540。在步驟540,將先前存在的虛擬機(jī)的應(yīng)用ID和VM ID1與新近向上擴(kuò)展的VM的VM ID2相關(guān)聯(lián)。參照?qǐng)D6所示的實(shí)施方案,該關(guān)聯(lián)是通過(guò)VM管理服務(wù)器130將VMID2_b傳送給IaaS 120來(lái)執(zhí)行的。作為響應(yīng),IaaS 120(其在向上擴(kuò)展VM 1401之前將AppID1、VMID1_a和VMID2_a作為相關(guān)聯(lián)的數(shù)據(jù)元素存儲(chǔ)在表格230中)將VMID2_b存儲(chǔ)在表格230的與AppID1和VMID1_a對(duì)應(yīng)的條目中。這在圖6中由箭頭620概念性地示出。另外,VM 1402在圖6中被描繪為被作為應(yīng)用150的一部分分組在VM管理服務(wù)器130內(nèi),如前所述,應(yīng)用150對(duì)應(yīng)于應(yīng)用管理服務(wù)器110中由AppID1標(biāo)識(shí)的應(yīng)用。
一旦應(yīng)用ID和先前存在的虛擬機(jī)的VM ID1(例如,圖6中的AppID1和VMID1_a)與新近擴(kuò)展的虛擬機(jī)的VM ID2(例如,圖6中的VMID 2_b)相關(guān)聯(lián),方法500就繼續(xù)進(jìn)行到步驟550,在步驟550,釋放先前存在的虛擬機(jī)(即,VM 1401)。在步驟550之后,方法500終止。
除了向上(或者向下)擴(kuò)展基于云的應(yīng)用內(nèi)的單個(gè)的虛擬機(jī)之外,基于云的應(yīng)用還可以被“向內(nèi)擴(kuò)展(scaled in)”或者“橫向擴(kuò)展”。向內(nèi)擴(kuò)展基于云的應(yīng)用是指在云內(nèi)繼續(xù)執(zhí)行應(yīng)用的同時(shí)從應(yīng)用移除一些虛擬機(jī)。橫向擴(kuò)展基于云的應(yīng)用是指在應(yīng)用在云中執(zhí)行的同時(shí)將虛擬機(jī)添加到應(yīng)用。雖然向上擴(kuò)展和向下擴(kuò)展虛擬機(jī)通常是通過(guò)訪問(wèn)獨(dú)立于應(yīng)用管理服務(wù)器110的系統(tǒng)管理工具(比如VM云管理員600)來(lái)執(zhí)行的,但是向內(nèi)或者橫向擴(kuò)展基于云的應(yīng)用是由訪問(wèn)應(yīng)用管理服務(wù)器110的管理用戶(比如圖1的管理用戶160)執(zhí)行的。
圖7是圖示根據(jù)一個(gè)或者更多個(gè)實(shí)施方案的用于橫向擴(kuò)展虛擬化的基于云的應(yīng)用的方法700的流程圖。在此結(jié)合圖8來(lái)描述圖7,圖8是描繪單VM的基于云的應(yīng)用橫向擴(kuò)展為雙VM的基于云的應(yīng)用的框圖。參照?qǐng)D8,管理用戶160訪問(wèn)應(yīng)用管理服務(wù)器110,應(yīng)用管理服務(wù)器110已經(jīng)在其中對(duì)先前部署到VM管理服務(wù)器130的單VM應(yīng)用進(jìn)行了建模。部署的應(yīng)用由應(yīng)用ID AppID1標(biāo)識(shí),第一VM由VMID1_a標(biāo)識(shí)。如圖8所示,IaaS 120的表格230將AppID1和VMID1_a與VMID2_a相關(guān)聯(lián),VMID2_a是先前部署的虛擬機(jī)VM 1401的VM ID2。
方法700從步驟710開(kāi)始,在步驟710,應(yīng)用管理服務(wù)器110接收橫向擴(kuò)展圖8中由AppID1標(biāo)識(shí)的應(yīng)用的請(qǐng)求。在所示的實(shí)施方案中,橫向擴(kuò)展請(qǐng)求是將一個(gè)虛擬機(jī)添加到基于云的應(yīng)用。然而,任何數(shù)量的虛擬機(jī)可以用單個(gè)請(qǐng)求添加。此外,如前所述,在實(shí)施方案中,這樣的請(qǐng)求是從管理用戶160接收的。
接著,在步驟720,應(yīng)用管理服務(wù)器110對(duì)新近請(qǐng)求的虛擬機(jī)產(chǎn)生新的VM ID1。如圖8所示,應(yīng)用管理服務(wù)器110對(duì)與AppID1對(duì)應(yīng)的新的虛擬機(jī)產(chǎn)生VMID1_b。在步驟730,將該新的虛擬機(jī)部署到云。如前面關(guān)于圖3所提及的,在一個(gè)或者更多個(gè)實(shí)施方案中,應(yīng)用管理服務(wù)器110將對(duì)虛擬機(jī)的部署請(qǐng)求發(fā)送到IaaS 120,IaaS 120繼而將請(qǐng)求發(fā)送到VM管理服務(wù)器130(即,云基礎(chǔ)設(shè)施)。參照?qǐng)D8,在應(yīng)用管理服務(wù)器110將對(duì)第二虛擬機(jī)(即,由VMID1_b標(biāo)識(shí)的虛擬機(jī))的部署請(qǐng)求發(fā)送到IaaS 120之后,IaaS 120將AppID1和VMID1_b作為相關(guān)聯(lián)的數(shù)據(jù)存儲(chǔ)在表格230中。另外,IaaS 120將在云中對(duì)新的虛擬機(jī)進(jìn)行實(shí)例化的請(qǐng)求發(fā)送到VM管理服務(wù)器130。
響應(yīng)于來(lái)自IaaS 120的請(qǐng)求,VM管理服務(wù)器130對(duì)VM 1402進(jìn)行實(shí)例化,在該過(guò)程中產(chǎn)生VMID2_b。注意到,AppID1和VMID1_b包括在新近實(shí)例化的VM 1402的元數(shù)據(jù)中。
一旦第二虛擬機(jī)(即,VM 1402)在云中被實(shí)例化,方法700就繼續(xù)進(jìn)行到步驟740。在步驟740,IaaS 120從VM管理服務(wù)器130接收新近實(shí)例化的VM 1402的VMID2_b。最后,在步驟750,IaaS 120將AppID1和VMID1_b(這二者都是由應(yīng)用管理服務(wù)器110產(chǎn)生)與VMID2_b(由VM管理服務(wù)器130產(chǎn)生)相關(guān)聯(lián)。參照?qǐng)D8,IaaS 120通過(guò)將VMID2_b存儲(chǔ)在表格230的將AppID1與VMID1_b相關(guān)聯(lián)的條目中來(lái)建立該關(guān)聯(lián)。因此,一旦在步驟750建立關(guān)聯(lián),管理用戶160就可以從應(yīng)用管理服務(wù)器110訪問(wèn)VM 1402。如果管理用戶160希望在以后的某個(gè)時(shí)刻從應(yīng)用管理服務(wù)器110將軟件安裝在VM 1402上,這是有用的。
盡管在本文中已經(jīng)為了使理解清晰較為詳細(xì)地描述了一個(gè)或者更多個(gè)實(shí)施方案,但是應(yīng)認(rèn)識(shí)到,在不脫離本公開(kāi)的精神的情況下,可以做出某些改變和修改。本文中所描述的各種實(shí)施方案可以利用涉及存儲(chǔ)在計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)的各種計(jì)算機(jī)實(shí)現(xiàn)操作。例如,這些操作可能需要物理量的物理操控——通常,但不是必要的,這些量可以采取電信號(hào)或者磁信號(hào)的形式,在這種情況下,它們或者它們的表示能夠被存儲(chǔ)、被傳送、被組合、被比較或者被以其他方式操控。此外,這樣的操控通常是用比如生產(chǎn)、產(chǎn)出、標(biāo)識(shí)、確定或者比較的術(shù)語(yǔ)來(lái)論述的。本文中所描述的形成本公開(kāi)的一個(gè)或者更多個(gè)實(shí)施方案的任何操作可以是有用的機(jī)器操作。另外,本公開(kāi)的一個(gè)或者更多個(gè)實(shí)施方案還涉及用于執(zhí)行這些操作的裝置或者設(shè)備。該設(shè)備可以是為特定的所需目的專(zhuān)門(mén)構(gòu)造的,或者可以是由存儲(chǔ)在計(jì)算機(jī)中的計(jì)算機(jī)程序選擇性地啟動(dòng)或者配置的通用計(jì)算機(jī)。具體地說(shuō),各種通用機(jī)器可以與根據(jù)本文中的教導(dǎo)編寫(xiě)的計(jì)算機(jī)程序一起使用,或者可能更方便的是構(gòu)造更專(zhuān)門(mén)的執(zhí)行所需操作的設(shè)備。
本文中所描述的各種實(shí)施方案可以通過(guò)其他計(jì)算機(jī)系統(tǒng)配置來(lái)實(shí)施,所述其他計(jì)算機(jī)系統(tǒng)配置包括手持裝置、微處理器系統(tǒng)、基于微處理器的或者可編程的消費(fèi)者電子產(chǎn)品、微計(jì)算機(jī)、大型計(jì)算機(jī)等等。
本公開(kāi)的一個(gè)或者多個(gè)實(shí)施方案可以被實(shí)現(xiàn)為一個(gè)或者更多個(gè)計(jì)算機(jī)程序,或者被實(shí)現(xiàn)為包含在一個(gè)或者更多個(gè)計(jì)算機(jī)可讀介質(zhì)中的一個(gè)或者更多個(gè)計(jì)算機(jī)程序模塊。術(shù)語(yǔ)計(jì)算機(jī)可讀介質(zhì)是指可以存儲(chǔ)其后可以被輸入到計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)的任何數(shù)據(jù)存儲(chǔ)裝置——計(jì)算機(jī)可讀介質(zhì)可以基于任何現(xiàn)有的或者以后開(kāi)發(fā)的用于以使得計(jì)算機(jī)程序能夠被計(jì)算機(jī)讀取的方式實(shí)施這些計(jì)算機(jī)程序的技術(shù)。計(jì)算機(jī)可讀介質(zhì)的實(shí)施例包括硬盤(pán)驅(qū)動(dòng)器、聯(lián)網(wǎng)存儲(chǔ)(NAS)、只讀存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器(例如,閃存裝置)、CD(緊湊盤(pán))——CD-ROM、CD-R或者CD-RW、DVD(數(shù)字多功能盤(pán))、磁帶以及其他光學(xué)和非光學(xué)數(shù)據(jù)存儲(chǔ)裝置。計(jì)算機(jī)可讀介質(zhì)還可以分布在聯(lián)網(wǎng)計(jì)算機(jī)系統(tǒng)上以使得計(jì)算機(jī)可讀代碼被以分布式的方式存儲(chǔ)和執(zhí)行。
盡管已經(jīng)為了使理解清晰較為詳細(xì)地描述了本公開(kāi)的一個(gè)或者更多個(gè)實(shí)施方案,但是將清楚的是,可以在權(quán)利要求書(shū)的范圍內(nèi)做出某些改變和修改。因此,所描述的實(shí)施方案要被認(rèn)為是說(shuō)明性的,而非限制性的,并且權(quán)利要求書(shū)的范圍不限于本文中所給出的細(xì)節(jié),而是可以在權(quán)利要求書(shū)的范圍和等同形式內(nèi)被修改。在權(quán)利要求書(shū)中,元件和/或步驟并不暗示操作的任何特定次序,除非權(quán)利要求書(shū)中有明確陳述。
各種變更、修改、添加和改進(jìn)是可能的。可以對(duì)在本文中被描述為單個(gè)實(shí)例的組件、操作或者結(jié)構(gòu)提供復(fù)數(shù)個(gè)實(shí)例。各種組件、操作和數(shù)據(jù)存儲(chǔ)之間的邊界是頗為任意的,并且具體操作是在特定的說(shuō)明性配置的上下文下例示說(shuō)明的。其他功能分配被預(yù)想,并且可以落在本公開(kāi)的范圍內(nèi)。一般來(lái)說(shuō),在示例性配置中呈現(xiàn)為單獨(dú)的組件的結(jié)構(gòu)和功能可以被實(shí)現(xiàn)為組合式結(jié)構(gòu)或者組件。類(lèi)似地,呈現(xiàn)為單個(gè)組件的結(jié)構(gòu)和功能可以被實(shí)現(xiàn)為分開(kāi)的組件。這些以及其他變更、修改、添加和改進(jìn)可以落在所附權(quán)利要求(一個(gè)或者更多個(gè))的范圍內(nèi)。