云上的應(yīng)用資源管理器的制造方法
【專利摘要】應(yīng)用資源管理器獲得對(duì)在云上運(yùn)行的應(yīng)用的即將發(fā)生的需求的預(yù)測(cè)。所述云包括基礎(chǔ)架構(gòu)即服務(wù)云和平臺(tái)即服務(wù)云中的至少一個(gè)。所述應(yīng)用資源管理器基于所述預(yù)測(cè)而確定所述云的專用于所述應(yīng)用的資源需要被擴(kuò)展或收縮。響應(yīng)于所述確定,執(zhí)行擴(kuò)展和收縮所述云的專用于所述應(yīng)用的所述資源中的一個(gè)。
【專利說(shuō)明】云上的應(yīng)用資源管理器【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及電氣、電子和計(jì)算機(jī)技術(shù),更具體地說(shuō),涉及云計(jì)算等。
【背景技術(shù)】[0002]基礎(chǔ)架構(gòu)即服務(wù)(IaaS)和平臺(tái)即服務(wù)(PaaS)云提供基本能力以便快速部署(供應(yīng))映像、在不使用映像時(shí)隱藏映像,并且可能實(shí)時(shí)或準(zhǔn)實(shí)時(shí)更改分配給映像的資源。但是,這不會(huì)直接應(yīng)用于應(yīng)用層(在此可互換稱為工作負(fù)載層),即在應(yīng)用層上,仍然需要人為觀察利用率并決定何時(shí)以及如何可以針對(duì)應(yīng)用擴(kuò)展或收縮基礎(chǔ)架構(gòu)。以下應(yīng)用除外:僅在相對(duì)短的時(shí)間內(nèi)部署然后完全取消,如開(kāi)發(fā)和測(cè)試應(yīng)用。實(shí)際上,當(dāng)前考慮目前最常見(jiàn)的應(yīng)用在IaaS和PaaS z?上運(yùn)行。
[0003]軟件即服務(wù)(SaaS)云在應(yīng)用層上工作,但非常明確地針對(duì)特定應(yīng)用類型構(gòu)建,這些應(yīng)用類型例如包括IBM LotusLive解決方案(位于美國(guó)紐約阿蒙克的國(guó)際商業(yè)機(jī)器公司的商標(biāo))或者從位于美國(guó)加利福尼亞舊金山的Salesforce_dot_com, Inc.獲得的那些應(yīng)用(“_dot_”代替”以避免包括瀏覽器可執(zhí)行代碼)。
[0004]還存在需要以特定的新程序設(shè)計(jì)模型和語(yǔ)言對(duì)應(yīng)用進(jìn)行編碼的高級(jí)云,例如Amazon Web Services (位于美國(guó)華盛頓西雅圖的Amazon Web Services LLC的標(biāo)志)、Microsoft Azure (位于美國(guó)華盛頓雷德蒙德的微軟公司的標(biāo)志)和Hadoop (從Apache軟件基金會(huì)獲得)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的原理提供用于云上的應(yīng)用資源管理器的技術(shù)。在一個(gè)方面,一種示例性方法包括以下步驟:由應(yīng)用資源管理器獲得對(duì)在云上運(yùn)行的應(yīng)用的即將發(fā)生的需求的預(yù)測(cè)。所述云包括基礎(chǔ)架構(gòu)即服務(wù)云和平臺(tái)即服務(wù)云中的至少一個(gè)。其它步驟包括由所述應(yīng)用資源管理器基于所述預(yù)測(cè)而確定所述云的專用于所述應(yīng)用的資源需要被擴(kuò)展或收縮;以及響應(yīng)于所述確定步驟,執(zhí)行擴(kuò)展和收縮所述云的專用于所述應(yīng)用的所述資源中的一個(gè)。
[0006]在另一個(gè)方面,一種示例性系統(tǒng)包括云;所述云包括基礎(chǔ)架構(gòu)即服務(wù)云和平臺(tái)即服務(wù)云中的至少一個(gè)。所述系統(tǒng)中還包括在所述云上運(yùn)行的至少一個(gè)應(yīng)用,以及應(yīng)用資源管理器。所述應(yīng)用資源管理器獲得對(duì)所述應(yīng)用的即將發(fā)生的需求的預(yù)測(cè);基于所述預(yù)測(cè)而確定所述云的專用于所述應(yīng)用的資源需要被擴(kuò)展或收縮;以及響應(yīng)于所述確定,執(zhí)行擴(kuò)展和收縮所述云的專用于所述應(yīng)用的所述資源中的一個(gè)。
[0007]如在此使用的,“促進(jìn)”操作包括執(zhí)行所述操作,使得所述操作更容易,有助于執(zhí)行所述操作,或者導(dǎo)致執(zhí)行所述操作。因此,作為實(shí)例而非限制,在一個(gè)處理器上執(zhí)行的指令可以促進(jìn)在遠(yuǎn)程處理器上執(zhí)行的指令所執(zhí)行的操作,方法是發(fā)送適當(dāng)?shù)臄?shù)據(jù)或命令以便導(dǎo)致或幫助執(zhí)行所述操作。為了避免疑義,其中操作者通過(guò)執(zhí)行操作之外的方法促進(jìn)所述操作,然而所述操作由某個(gè)實(shí)體或?qū)嶓w組合執(zhí)行。
[0008]本發(fā)明的一個(gè)或多個(gè)實(shí)施例或其元素可以以計(jì)算機(jī)產(chǎn)品的形式實(shí)現(xiàn),所述計(jì)算機(jī)產(chǎn)品包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具有計(jì)算機(jī)可用程序代碼以便執(zhí)行指示的方法步驟。此外,本發(fā)明的一個(gè)或多個(gè)實(shí)施例或其元素可以以系統(tǒng)(或裝置)的形式實(shí)現(xiàn),所述系統(tǒng)包括存儲(chǔ)器和至少一個(gè)處理器,所述至少一個(gè)處理器耦合到所述存儲(chǔ)器并且可操作以便執(zhí)行示例性方法步驟。更進(jìn)一步,在另一個(gè)方面,本發(fā)明的一個(gè)或多個(gè)實(shí)施例或其元素可以以裝置的形式實(shí)現(xiàn),以便執(zhí)行在此描述的一個(gè)或多個(gè)方法步驟;所述裝置可以包括(i)硬件模塊(多個(gè)),(ii)軟件模塊(多個(gè)),或者(iii)硬件和軟件模塊的組合;(i) - (i i i)中的任何一個(gè)都實(shí)現(xiàn)在此給出的特定技術(shù),并且所述軟件模塊存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(或多個(gè)此類介質(zhì))中。
[0009]本發(fā)明的技術(shù)可以提供大量有利的技術(shù)效果。例如,一個(gè)或多個(gè)實(shí)施例可以提供以下一個(gè)或多個(gè)優(yōu)點(diǎn):
[0010]?當(dāng)有關(guān)應(yīng)用及其底層IT基礎(chǔ)架構(gòu)的要求更改時(shí),縮短設(shè)置時(shí)間
[0011]?更高的可靠性
[0012]?避免浪費(fèi)未充分使用的處理器的能力,因?yàn)榭梢院苋菀椎卦黾雍?或減少資源
量
[0013]從以下將結(jié)合附圖閱讀的對(duì)本發(fā)明的示例性實(shí)施例的詳細(xì)描述,本發(fā)明的這些和其它特性和優(yōu)點(diǎn)將變得顯而易見(jiàn)。
【專利附圖】
【附圖說(shuō)明】
[0014]圖1示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的云計(jì)算節(jié)點(diǎn);
[0015]圖2示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的云計(jì)算環(huán)境;
[0016]圖3示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的抽象模型層;
[0017]圖4是根據(jù)本發(fā)明的一個(gè)方面的概述系統(tǒng)框圖;
[0018]圖5是根據(jù)本發(fā)明的一個(gè)方面的詳細(xì)系統(tǒng)框圖;以及
[0019]圖6示出根據(jù)本發(fā)明的一個(gè)方面的應(yīng)用資源管理器的示例性組件。
【具體實(shí)施方式】
[0020]云計(jì)算是一種服務(wù)交付模式,用于對(duì)共享的可配置計(jì)算資源池進(jìn)行方便、按需的網(wǎng)絡(luò)訪問(wèn)。可配置計(jì)算資源是能夠以最小的管理成本或與服務(wù)提供者進(jìn)行最少的交互就能快速部署和釋放的資源,例如可以是網(wǎng)絡(luò)、網(wǎng)絡(luò)帶寬、服務(wù)器、處理、內(nèi)存、存儲(chǔ)、應(yīng)用、虛擬機(jī)和服務(wù)。這種云模式可以包括至少五個(gè)特征、至少三個(gè)服務(wù)模型和至少四個(gè)部署模型。
[0021]特征包括:
[0022]按需自助式服務(wù):云的消費(fèi)者在無(wú)需與服務(wù)提供者進(jìn)行人為交互的情況下能夠單方面自動(dòng)地按需部署諸如服務(wù)器時(shí)間和網(wǎng)絡(luò)存儲(chǔ)等的計(jì)算能力。
[0023]廣泛的網(wǎng)絡(luò)接入:計(jì)算能力可以通過(guò)標(biāo)準(zhǔn)機(jī)制在網(wǎng)絡(luò)上獲取,這種標(biāo)準(zhǔn)機(jī)制促進(jìn)了通過(guò)不同種類的瘦客戶機(jī)平臺(tái)或厚客戶機(jī)平臺(tái)(例如移動(dòng)電話、膝上型電腦、個(gè)人數(shù)字助理PDA)對(duì)云的使用。
[0024]資源池:提供者的計(jì)算資源被歸入資源池并通過(guò)多租戶(mult1-tenant)模式服務(wù)于多重消費(fèi)者,其中按需將不同的實(shí)體資源和虛擬資源動(dòng)態(tài)地分配和再分配。一般情況下,消費(fèi)者不能控制或甚至并不知曉所提供的資源的確切位置,但可以在較高抽象程度上指定位置(例如國(guó)家、州或數(shù)據(jù)中心),因此具有位置無(wú)關(guān)性。
[0025]迅速?gòu)椥?能夠迅速、有彈性地(有時(shí)是自動(dòng)地)部署計(jì)算能力,以實(shí)現(xiàn)快速擴(kuò)展,并且能迅速釋放來(lái)快速縮小。在消費(fèi)者看來(lái),用于部署的可用計(jì)算能力往往顯得是無(wú)限的,并能在任意時(shí)候都能獲取任意數(shù)量的計(jì)算能力。
[0026]可測(cè)量的服務(wù):云系統(tǒng)通過(guò)利用適于服務(wù)類型(例如存儲(chǔ)、處理、帶寬和活躍用戶帳號(hào))的某種抽象程度的計(jì)量能力,自動(dòng)地控制和優(yōu)化資源效用??梢员O(jiān)測(cè)、控制和報(bào)告資源使用情況,為服務(wù)提供者和消費(fèi)者雙方提供透明度。
[0027]服務(wù)模型如下:
[0028]軟件即服務(wù)(SaaS):向消費(fèi)者提供的能力是使用提供者在云基礎(chǔ)架構(gòu)上運(yùn)行的應(yīng)用??梢酝ㄟ^(guò)諸如網(wǎng)絡(luò)瀏覽器的瘦客戶機(jī)接口(例如基于網(wǎng)絡(luò)的電子郵件)從各種客戶機(jī)設(shè)備訪問(wèn)應(yīng)用。除了有限的特定于用戶的應(yīng)用配置設(shè)置外,消費(fèi)者既不管理也不控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)、存儲(chǔ)、乃至單個(gè)應(yīng)用能力等的底層云基礎(chǔ)架構(gòu)。
[0029]平臺(tái)即服務(wù)(PaaS):向消費(fèi)者提供的能力是在云基礎(chǔ)架構(gòu)上部署消費(fèi)者創(chuàng)建或獲得的應(yīng)用,這些應(yīng)用利用提供者支持的程序設(shè)計(jì)語(yǔ)言和工具創(chuàng)建。消費(fèi)者既不管理也不控制包括網(wǎng)絡(luò)、服務(wù)器、操作系統(tǒng)或存儲(chǔ)的底層云基礎(chǔ)架構(gòu),但對(duì)其部署的應(yīng)用具有控制權(quán),對(duì)應(yīng)用托管環(huán)境配置可能也具有控制權(quán)。
[0030]基礎(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),但是對(duì)操作系統(tǒng)、存儲(chǔ)和其部署的應(yīng)用具有控制權(quán),對(duì)選擇的網(wǎng)絡(luò)組件(例如主機(jī)防火墻)可能具有有限的控制權(quán)。
[0031]部署模型如下:
[0032]私有云:云基礎(chǔ)架構(gòu)單獨(dú)為某個(gè)組織運(yùn)行。云基礎(chǔ)架構(gòu)可以由該組織或第三方管理并且可以存在于該組織內(nèi)部或外部。
[0033]共同體云:云基礎(chǔ)架構(gòu)被若干組織共享并支持有共同利害關(guān)系(例如任務(wù)使命、安全要求、政策和合規(guī)考慮)的特定共同體。共同體云可以由共同體內(nèi)的多個(gè)組織或第三方管理并且可以存在于該共同體內(nèi)部或外部。
[0034]公共云:云基礎(chǔ)架構(gòu)向公眾或大型產(chǎn)業(yè)群提供并由出售云服務(wù)的組織擁有。
[0035]混合云:云基礎(chǔ)架構(gòu)由兩個(gè)或更多部署模型的云(私有云、共同體云或公共云)組成,這些云依然是獨(dú)特的實(shí)體,但是通過(guò)使數(shù)據(jù)和應(yīng)用能夠移植的標(biāo)準(zhǔn)化技術(shù)或私有技術(shù)(例如用于云之間的負(fù)載平衡的云突發(fā)流量分擔(dān)技術(shù))綁定在一起。
[0036]云計(jì)算環(huán)境是面向服務(wù)的,特點(diǎn)集中在無(wú)狀態(tài)性、低耦合性、模塊性和語(yǔ)意的互操作性。云計(jì)算的核心是包含互連節(jié)點(diǎn)網(wǎng)絡(luò)的基礎(chǔ)架構(gòu)。
[0037]現(xiàn)在參考圖1,其中顯示了云計(jì)算節(jié)點(diǎn)的一個(gè)例子。圖1顯示的云計(jì)算節(jié)點(diǎn)10僅僅是適合的云計(jì)算節(jié)點(diǎn)的一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來(lái)任何限制。總之,云計(jì)算節(jié)點(diǎn)10能夠被用來(lái)實(shí)現(xiàn)和/或執(zhí)行以上所述的任何功能。
[0038]云計(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)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)個(gè)人電腦、小型計(jì)算機(jī)系統(tǒng)、大型計(jì)算機(jī)系統(tǒng)和包括上述任意系統(tǒng)或設(shè)備的分布式云計(jì)算技術(shù)環(huán)境,等等。
[0039]計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以在由計(jì)算機(jī)系統(tǒng)執(zhí)行的計(jì)算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語(yǔ)境下描述。通常,程序模塊可以包括執(zhí)行特定的任務(wù)或者實(shí)現(xiàn)特定的抽象數(shù)據(jù)類型的例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以在通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式云計(jì)算環(huán)境中實(shí)施。在分布式云計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備的本地或遠(yuǎn)程計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)上。
[0040]如圖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。
[0041]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來(lái)說(shuō),這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA (EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。
[0042]計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器12訪問(wèn)的任意可獲得的介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。
[0043]系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)30和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以還包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱為“硬盤驅(qū)動(dòng)器”)。盡管圖1中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。如下面進(jìn)一步示出和描述的,存儲(chǔ)器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
[0044]具有一組(至少一個(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í)施例中的功能和/或方法。
[0045]計(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)器等等)通信。這種通信可以通過(guò)輸入/輸出(I/O)接口 22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可以通過(guò)網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過(guò)總線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)
坐寸。
[0046]現(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之間可以相互通信??梢栽诎ǖ幌抻谌缟纤龅乃接性啤⒐餐w云、公共云或混合云或者它們的組合的一個(gè)或者多個(gè)網(wǎng)絡(luò)中將云計(jì)算節(jié)點(diǎn)10進(jìn)行物理或虛擬分組(圖中未顯示)。這樣,云的消費(fèi)者無(wú)需在本地計(jì)算設(shè)備上維護(hù)資源就能請(qǐng)求云計(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ò)瀏覽器)通信。
[0047]現(xiàn)在參考圖3,其中顯示了云計(jì)算環(huán)境50 (圖2)提供的一組功能抽象層。首先應(yīng)當(dāng)理解,圖3所示的組件、層以及功能都僅僅是示意性的,本發(fā)明的實(shí)施例不限于此。如圖3所示,提供下列層和對(duì)應(yīng)功能:
[0048]硬件和軟件層60包括硬件和軟件組件。硬件組件的例子包括:主機(jī),例如IBM?zSeries?系統(tǒng);基于Rise (精簡(jiǎn)指令集計(jì)算機(jī))體系結(jié)構(gòu)的服務(wù)器,例如ibm pSeries?系統(tǒng);IBM xSeries?系統(tǒng);ibm BladeCenter?系統(tǒng);存儲(chǔ)器件;網(wǎng)絡(luò)和網(wǎng)絡(luò)組件。軟件組件的例子包括:網(wǎng)絡(luò)應(yīng)用服務(wù)器軟件,例如ibm WebSphere?應(yīng)用服務(wù)器軟件;數(shù)據(jù)庫(kù)軟件,例如 IBM DB2? 數(shù)據(jù)庫(kù)軟件。(IBM, zSeries, pSeries, xSeries, BladeCenter,WebSphere以及DB2是國(guó)際商業(yè)機(jī)器公司在全世界各地的注冊(cè)商標(biāo))。
[0049]虛擬層62提供一個(gè)抽象層,該層可以提供下列虛擬實(shí)體的例子:虛擬服務(wù)器、虛擬存儲(chǔ)、虛擬網(wǎng)絡(luò)(包括虛擬私有網(wǎng)絡(luò))、虛擬應(yīng)用和操作系統(tǒng),以及虛擬客戶端。
[0050]在一個(gè)示例中,管理層64可以提供下述功能:資源供應(yīng)功能:提供用于在云計(jì)算環(huán)境中執(zhí)行任務(wù)的計(jì)算資源和其它資源的動(dòng)態(tài)獲?。挥?jì)量和定價(jià)功能:在云計(jì)算環(huán)境內(nèi)對(duì)資源的使用進(jìn)行成本跟蹤,并為此提供帳單和發(fā)票。在一個(gè)例子中,該資源可以包括應(yīng)用軟件許可。安全功能:為云的消費(fèi)者和任務(wù)提供身份認(rèn)證,為數(shù)據(jù)和其它資源提供保護(hù)。用戶門戶功能:為消費(fèi)者和系統(tǒng)管理員提供對(duì)云計(jì)算環(huán)境的訪問(wèn)。服務(wù)水平管理功能:提供云計(jì)算資源的分配和管理,以滿足必需的服務(wù)水平。服務(wù)水平協(xié)議(SLA)計(jì)劃和履行功能--為根據(jù)SLA預(yù)測(cè)的對(duì)云計(jì)算資源未來(lái)需求提供預(yù)先安排和供應(yīng)。
[0051]工作負(fù)載層66提供云計(jì)算環(huán)境可能實(shí)現(xiàn)的功能的示例。在該層中,可提供的工作負(fù)載或功能的示例包括:地圖繪制與導(dǎo)航;軟件開(kāi)發(fā)及生命周期管理;虛擬教室的教學(xué)提供;數(shù)據(jù)分析處理;交易處理;以及移動(dòng)桌面。
[0052]一個(gè)或多個(gè)實(shí)施例有利地在云(例如IaaS或PaaS云)上實(shí)現(xiàn)應(yīng)用資源管理器。
[0053]如上所述,基礎(chǔ)架構(gòu)即服務(wù)(IaaS)和平臺(tái)即服務(wù)(PaaS)云提供基本能力以便快速部署(供應(yīng))映像、在不使用映像時(shí)隱藏映像,并且可能實(shí)時(shí)或準(zhǔn)實(shí)時(shí)更改分配給映像的資源。但是,這不會(huì)直接應(yīng)用于應(yīng)用層(在此可互換稱為工作負(fù)載層66),即在應(yīng)用層66上,仍然需要人為觀察利用率并決定何時(shí)以及如何可以針對(duì)應(yīng)用擴(kuò)展或收縮基礎(chǔ)架構(gòu)。以下應(yīng)用除外:僅在相對(duì)短的時(shí)間內(nèi)部署然后完全取消,如開(kāi)發(fā)和測(cè)試應(yīng)用。實(shí)際上,當(dāng)前考慮目前最常見(jiàn)的應(yīng)用在IaaS和PaaS云上運(yùn)行。
[0054]注意,IaaS和PaaS云中的虛擬層和管理層62和64僅管理硬件并且可能管理基本軟件,然而它們不管理工作負(fù)載。因此,迄今為止仍然單獨(dú)管理工作負(fù)載,并且通常需要人為干預(yù)。
[0055]還如上所述,軟件即服務(wù)(SaaS)云在應(yīng)用層上工作,但非常明確地針對(duì)特定應(yīng)用類型構(gòu)建,這些應(yīng)用類型例如包括IBM LotusLive解決方案(位于美國(guó)紐約阿蒙克的國(guó)際商業(yè)機(jī)器公司的商標(biāo))或者從位于美國(guó)加利福尼亞舊金山的Salesforce_dot_com, Inc.獲得的那些應(yīng)用(“_dot_”代替”以避免包括瀏覽器可執(zhí)行代碼)。
[0056]此外,如上所述,還具有需要以特定的新程序設(shè)計(jì)模型和語(yǔ)言對(duì)應(yīng)用進(jìn)行編碼的高級(jí)云,例如Amazon Web Services (位于美國(guó)華盛頓西雅圖的Amazon Web Services LLC的標(biāo)志)、Microsoft Azure (位于美國(guó)華盛頓雷德蒙德的微軟公司的標(biāo)志)和Hadoop (從Apache軟件基金會(huì)獲得)。
[0057]—個(gè)或多個(gè)實(shí)施例有利地使具有波動(dòng)或僅增加資源需求的基本不變的普通應(yīng)用很容易地使用IaaS或PaaS平臺(tái)能力。
[0058]值得注意的是,還存在針對(duì)網(wǎng)格上下文中的動(dòng)態(tài)基礎(chǔ)架構(gòu)的現(xiàn)有工作,但網(wǎng)格沒(méi)有與IaaS和PaaS云相同類型的接口以便供應(yīng)和管理映像,因此網(wǎng)格的應(yīng)用管理問(wèn)題不同于云。同樣,較舊的大型分布式基礎(chǔ)架構(gòu)項(xiàng)目(例如IBM的Oceano計(jì)算實(shí)用工具動(dòng)力裝置項(xiàng)目)并不與云中的底層單獨(dú)層60、62、64協(xié)同工作。
[0059]現(xiàn)在參考圖4的簡(jiǎn)單系統(tǒng)概述,一個(gè)或多個(gè)實(shí)施例采用添加到IaaS或PaaS云10的普通系統(tǒng)的應(yīng)用資源管理器組件401以及應(yīng)用組件403。該應(yīng)用資源管理器根據(jù)應(yīng)用需要擴(kuò)展和收縮云資源。
[0060]為了執(zhí)行這些任務(wù),應(yīng)用資源管理器與底層IaaS或PaaS云的管理接口(即,管理層64的上部接口)交互,同時(shí)應(yīng)用使用云提供的映像和其它資源。在此,單詞“映像”用于IaaS云提供的純操作系統(tǒng)映像以及PaaS云提供的包括中間件的映像。就圖3而言,IaaS映像是虛擬服務(wù)器,并且通常具有可用、易于供應(yīng)的映像目錄、對(duì)應(yīng)于該目錄的映像文件,以及已經(jīng)供應(yīng)并且正在運(yùn)行的實(shí)際實(shí)例映像。管理層64的資源供應(yīng)組件將目錄提供給層66的潛在工作負(fù)載、包含映像文件,并導(dǎo)致在虛擬層62中建立實(shí)例映像(虛擬服務(wù)器)。當(dāng)理解該過(guò)程時(shí),我們有時(shí)僅談?wù)摗坝诚瘛?。在供?yīng)給應(yīng)用的映像之上,具有普通應(yīng)用組件的代碼、數(shù)據(jù)、配置等。換言之,工作負(fù)載的未通過(guò)云管理層供應(yīng)的部分(多個(gè))組成應(yīng)用組件。
[0061]應(yīng)用資源管理器使用的管理接口可以包含0SS方面(操作支持系統(tǒng),例如,到資源供應(yīng)組件的直接接口)和BSS方面(業(yè)務(wù)支持服務(wù),例如,到定價(jià)組件的接口,如果在進(jìn)行其它供應(yīng)時(shí)需要其它支付協(xié)議)。所有這些方面可以通過(guò)用戶門戶過(guò)濾,但我們?cè)诖思僭O(shè)這也包含API (應(yīng)用編程接口)、網(wǎng)絡(luò)服務(wù)接口等以便由來(lái)自工作負(fù)載層66的自動(dòng)程序使用,或者工作負(fù)載層66的程序可直接訪問(wèn)到單獨(dú)組件(例如資源供應(yīng))的接口。
[0062]應(yīng)用資源管理器401可以從應(yīng)用所有者513 (在此使用的名稱用于被授權(quán)預(yù)測(cè)應(yīng)用需求的人員,以便將該角色與普通用戶515區(qū)分開(kāi)來(lái)一參見(jiàn)圖5) 了解即將發(fā)生的需求,或者可以從云管理獲得的報(bào)告得出當(dāng)前利用率和趨勢(shì),以及通過(guò)觀察應(yīng)用得出當(dāng)前利用率和趨勢(shì)。應(yīng)用資源管理器401還可以了解基礎(chǔ)架構(gòu)故障,并且對(duì)它們做出反應(yīng)以便達(dá)到特定可用性目標(biāo)。
[0063]如果在最低程度上在至少某些實(shí)施例中需求更改,則應(yīng)用資源管理器供應(yīng)或隱藏映像或者更改其資源屬性,例如虛擬存儲(chǔ)或虛擬網(wǎng)絡(luò)帶寬分配??蛇x地,在供應(yīng)的情況下,它還在新映像上供應(yīng)應(yīng)用級(jí)別軟件和/或數(shù)據(jù)。
[0064]因此,一個(gè)或多個(gè)實(shí)施例提供一種系統(tǒng),所述系統(tǒng)包括云10、至少一個(gè)應(yīng)用組件403和應(yīng)用資源管理器401,其中應(yīng)用資源管理器針對(duì)應(yīng)用組件擴(kuò)展和/或收縮云資源以便滿足應(yīng)用資源需要。
[0065]在一個(gè)或多個(gè)實(shí)施例中,應(yīng)用資源管理器使用IaaS或PaaS云的服務(wù)。有關(guān)這些組件及其交互的更多詳細(xì)信息在圖5中示出,圖5提供更詳細(xì)的系統(tǒng)概述。
[0066]應(yīng)該注意,應(yīng)用資源管理器401本身可能在云10上運(yùn)行,也可能不在云10上運(yùn)行。應(yīng)用方框511是虛擬的;它指示應(yīng)用資源管理器屬于特定應(yīng)用并且應(yīng)知曉應(yīng)用結(jié)構(gòu)。
[0067]繼續(xù)參考圖5,應(yīng)用所有者513通過(guò)應(yīng)用管理接口(在圖3中,這是工作負(fù)載層66的上部接口,即,應(yīng)用/工作負(fù)載與其用戶交互的位置)與應(yīng)用資源管理器401交互。應(yīng)用資源管理器401與應(yīng)用511關(guān)聯(lián),并且執(zhí)行普通應(yīng)用用戶515使用的應(yīng)用軟件517的設(shè)置,以及監(jiān)視應(yīng)用軟件517和對(duì)應(yīng)的映像519。映像成為云運(yùn)行時(shí)環(huán)境521的一部分。方框521基本上類似于圖3中的虛擬層62 (或?qū)?0連同62 —起),而云管理平臺(tái)523類似于層64。云管理平臺(tái)523管理云運(yùn)行時(shí)環(huán)境521,環(huán)境521通過(guò)合適的供應(yīng)接口(S卩,到資源供應(yīng)組件的接口,直接或中間通過(guò)BSS接口和/或用戶門戶)與應(yīng)用資源管理器401交互,并且云管理平臺(tái)523還為應(yīng)用資源管理器401提供利用率和故障報(bào)告(這些云例如來(lái)自圖3的計(jì)量組件或服務(wù)水平管理組件)。
[0068]在一個(gè)或多個(gè)實(shí)施例中,應(yīng)用資源管理器(例如401)的結(jié)構(gòu)可以如圖6中所示,其中組件提供以下示例性功能:
[0069]策略631確定長(zhǎng)期目標(biāo),例如,可以作為應(yīng)用的服務(wù)級(jí)別目標(biāo)(而不是云的服務(wù)級(jí)別目標(biāo))給出的性能和可用性目標(biāo);換言之,這些是層66的目標(biāo),而不是層64的目標(biāo)(作為該層實(shí)現(xiàn)的服務(wù)水平管理組件和SLA計(jì)劃組件)。還可以將應(yīng)用所有者的短期目標(biāo)(例如那些與增加的性能需要的近期預(yù)測(cè)相關(guān)的目標(biāo))表達(dá)為策略。
[0070]管理組件633獲得策略以及它從應(yīng)用和云了解的內(nèi)容,并且確定操作。這些操作具體包括向云供應(yīng)、隱藏或取消供應(yīng)請(qǐng)求,以及云管理平臺(tái)允許的任何其它操作,例如擴(kuò)展和收縮映像資源、實(shí)時(shí)遷移到不同服務(wù)器,或者從云中選擇更高的服務(wù)級(jí)別(這例如可以包括更好的性能保證以及更高的可用性或可靠性保證)。
[0071]控制組件635例如通過(guò)應(yīng)用編程接口(API)或網(wǎng)絡(luò)服務(wù)接口交互,將來(lái)自管理組件的抽象請(qǐng)求轉(zhuǎn)換為與云管理平臺(tái)的具體交互。這種交互可以是多步驟序列,并且可能包括0SS和BSS級(jí)別步驟,例如選擇映像大小以及選擇支付方法或現(xiàn)有帳號(hào)。
[0072]解釋組件637與控制組件相反,解釋來(lái)自云的報(bào)告,例如有關(guān)應(yīng)用自己的映像和其它虛擬資源以及整體云的利用率信息,或者故障報(bào)告。
[0073]將控制組件和解釋組件與管理組件分開(kāi)的優(yōu)點(diǎn)是應(yīng)用資源管理器變得更易于適應(yīng)不同的云。在圖6的實(shí)例中,應(yīng)用資源管理器被允許直接與應(yīng)用組件交互,因?yàn)樗囟ㄓ谠搼?yīng)用。
[0074]現(xiàn)在將針對(duì)應(yīng)用管理器的某些可能功能,提供其它非限制性的示例性詳細(xì)信息。[0075]關(guān)于監(jiān)視,在某些實(shí)例中,應(yīng)用管理器可以在應(yīng)用的用戶接口處(其中例如可以應(yīng)用應(yīng)用服務(wù)水平協(xié)議(SLA)),監(jiān)視應(yīng)用組件403及其利用率,以及監(jiān)視單獨(dú)組件(例如517、519);具體地說(shuō),那些部署在不同映像上的組件。應(yīng)用管理器還可以通過(guò)云接口(S卩,從523)獲得有關(guān)其云映像的當(dāng)前利用率的信息,和/或可以通過(guò)云接口獲得有關(guān)云的當(dāng)前整體利用率的信息一這可能令人關(guān)注以便預(yù)測(cè)獲得更多資源的效果(在資源被共享的情況下)。
[0076]此外,關(guān)于監(jiān)視,在某些實(shí)例中,應(yīng)用管理器可以(從523 )獲得有關(guān)其自己的映像故障的信息,以及云的總體可靠性;可以使用基于利用率趨勢(shì)的預(yù)測(cè)來(lái)估計(jì)未來(lái)需求(例如,預(yù)測(cè)每月峰值,或者預(yù)測(cè)需求的整體緩慢增加);以及/或者可以不時(shí)地通過(guò)發(fā)現(xiàn)工具重新驗(yàn)證應(yīng)用結(jié)構(gòu)(進(jìn)一步在別處討論,并且可互換稱為“重新發(fā)現(xiàn)”)。這些操作應(yīng)用于應(yīng)用的映像519和應(yīng)用軟件517,因?yàn)閼?yīng)用的用戶515還可以具有特定權(quán)限以便進(jìn)行更改。發(fā)現(xiàn)工具還可以有助于查找應(yīng)用級(jí)別性能參數(shù),例如當(dāng)前數(shù)據(jù)庫(kù)大小。
[0077]關(guān)于目標(biāo),在某些實(shí)例中,應(yīng)用管理器可以從應(yīng)用所有者獲得短期目標(biāo),這些目標(biāo)對(duì)于當(dāng)前性能而言是絕對(duì)或相對(duì)的。這些目標(biāo)通常指整體應(yīng)用(例如,交易吞吐量或?qū)ψ罱K用戶的響應(yīng)時(shí)間),而不是指單獨(dú)映像上的單獨(dú)應(yīng)用軟件組件的性能。此外,應(yīng)用管理器可以從應(yīng)用所有者獲得高級(jí)目標(biāo)(長(zhǎng)期策略),以便例如始終提供特定SLA,或者始終具有特定數(shù)量的空間以用于突然更改;以及/或者它可以獲得成本目標(biāo)或限制,以便例如始終選擇最廉價(jià)的整體資源集以提供所需的SLA,或者始終提供最好的可能性能(但最高到特定成本限制為止)。
[0078]關(guān)于可能的決策,在某些實(shí)例中,應(yīng)用管理器可以決定擴(kuò)展和/或收縮分配給單獨(dú)云映像的資源,這些云映像分配給應(yīng)用。取決于云,這可以在適當(dāng)?shù)奈恢猛瓿桑蛘咄ㄟ^(guò)將對(duì)應(yīng)的應(yīng)用組件517遷移到更大的映像519來(lái)完成。此外,應(yīng)用管理器可以針對(duì)應(yīng)用的使用而決定供應(yīng)、刪除或隱藏全部云映像。在這種情況下,它還應(yīng)在這些云映像上部署適當(dāng)?shù)膽?yīng)用軟件。在這點(diǎn)上,應(yīng)用管理器可以保留一個(gè)或多個(gè)黃金映像以用于該目的,即,已經(jīng)包含應(yīng)用的所有可重復(fù)部分的靜止映像;以及/或者還可以使用遷移工具部署對(duì)應(yīng)于當(dāng)前整體應(yīng)用狀態(tài)的軟件配置。
[0079]此外,關(guān)于可能的決策,在某些實(shí)例中,應(yīng)用管理器可以決定請(qǐng)求其它存儲(chǔ)和/或網(wǎng)絡(luò)資源,前提是云單獨(dú)提供這些選擇;可以決定如果它無(wú)法實(shí)現(xiàn)其當(dāng)前策略或請(qǐng)求,則向用戶發(fā)出警告;以及/或者可以定期或者在請(qǐng)求時(shí)向用戶通知應(yīng)用級(jí)別情況。
[0080]關(guān)于決策,在某些實(shí)例中,應(yīng)用管理器可以通過(guò)采用優(yōu)化求解器工具進(jìn)行決策,或者它可以直接包含決策代碼。如果云具有動(dòng)態(tài)定價(jià)模式(例如,在周末成本較低),則它可以基于動(dòng)態(tài)云成本進(jìn)行決策。如果應(yīng)用包含并非時(shí)間關(guān)鍵的方面并且可以在資源更便宜的時(shí)間內(nèi)執(zhí)行,則使用動(dòng)態(tài)云成本尤其有用。
[0081]應(yīng)該注意,在至少某些實(shí)例中,策略可以通過(guò)數(shù)據(jù)文件等中的參數(shù)實(shí)現(xiàn),其中可以指定允許值和其它變量而不必更改底層編碼;即,指定允許值或值范圍的數(shù)據(jù)結(jié)構(gòu)。
[0082]關(guān)于策略方框631,在一個(gè)或多個(gè)實(shí)例中,同樣確定目標(biāo)或要求,或者有時(shí)確定在特定情況下應(yīng)該發(fā)生什么。具體地說(shuō),它可以包含應(yīng)用級(jí)別的策略(即,正式的目標(biāo)和要求),例如應(yīng)用級(jí)別交易的多少延遲可接受,距離可能針對(duì)多少個(gè)長(zhǎng)時(shí)間運(yùn)行的作業(yè)仍未完成而獲得的最后期限有多近,或者預(yù)計(jì)多少負(fù)載(例如,在月末)。它有時(shí)還可以包含基礎(chǔ)架構(gòu)級(jí)別策略,例如應(yīng)該始終提供多少數(shù)量的空閑存儲(chǔ),對(duì)于一段持續(xù)時(shí)間應(yīng)允許虛擬機(jī)(VM)具有什么級(jí)別的利用率,等等。
[0083]管理方框633包括邏輯,該邏輯從策略631讀取值,并且(例如,在應(yīng)用級(jí)別從探測(cè)等,以及在解釋方框637從云報(bào)告或映像級(jí)別監(jiān)視)獲得有關(guān)系統(tǒng)中發(fā)生什么的數(shù)據(jù)輸入,然后使策略631執(zhí)行操作。實(shí)例包括確定應(yīng)該分配、隱藏VM或者在其它VM上啟動(dòng)服務(wù);判定是否應(yīng)該增加VM的存儲(chǔ)器和/或CPU分配;判定是否應(yīng)該增加和/或減少存儲(chǔ);等等。
[0084]控制方框635提供到不同體系架構(gòu)的接口 ;例如,如果云僅為vmware,則它將與vmrun接口交互以便控制虛擬機(jī)。即,控制模塊635轉(zhuǎn)換來(lái)自管理模塊633的指令,以便管理云資源的資源供應(yīng)模塊(參見(jiàn)圖3中的層64)等可以理解這些指令。
[0085]關(guān)于解釋方框637,同樣提供到不同云體系架構(gòu)的接口 ;例如,如果云僅為VMware,則它可以解釋來(lái)自vmware接口的性能報(bào)告;以及/或者提取能夠在VM內(nèi)部運(yùn)行的探測(cè)。在某些實(shí)例中,云可以提供映像的CPU利用率(例如參見(jiàn)圖3的層64中的計(jì)量和定價(jià))。管理方框633將通知解釋方框637它需要所有映像的CPU利用率,方框637將轉(zhuǎn)換該通知并為計(jì)量和定價(jià)方框提供所需的命令,并且將特定于云的結(jié)果轉(zhuǎn)換為通用格式。在某些實(shí)例中,ARM401與它在自己的層(除了或代替云接口)上管理的映像建立連接,以便例如監(jiān)視應(yīng)用級(jí)別延遲(即,普通應(yīng)用用戶515必須等待多長(zhǎng)時(shí)間才獲得結(jié)果)或者了解長(zhǎng)時(shí)間運(yùn)行的應(yīng)用的狀態(tài)。在這些情況下,應(yīng)用軟件517可以提供IP監(jiān)聽(tīng)服務(wù)或網(wǎng)絡(luò)管理接口,并且應(yīng)用管理器建立對(duì)應(yīng)的連接并發(fā)送對(duì)應(yīng)的管理查詢。
[0086]在某些實(shí)例中,ARM401在普通映像上具有帳戶,并且可以使用同一帳戶登錄到普通映像并執(zhí)行合適的命令,以便直接從映像讀出CPU利用率。在某些情況下,可以對(duì)應(yīng)用進(jìn)行編程以便響應(yīng)合適的查詢,例如在最近10分鐘內(nèi)執(zhí)行多少個(gè)交易。
[0087]為了避免疑義,“應(yīng)用”在此上下文中指執(zhí)行最終需要的功能(并且未由云提供)的代碼,例如WEBSPHERE軟件中的JAVA代碼,或者DB2軟件中的特定數(shù)據(jù)庫(kù)模式,或者通常為這些類型代碼的組合,例如提供購(gòu)物車應(yīng)用或差旅報(bào)告應(yīng)用需要的所有代碼塊。探測(cè)是與其它軟件通信以便獲得所需值的軟件塊,其不同于熱電偶之類的物理探測(cè)。
[0088]作為詳細(xì)但非限制性實(shí)例,考慮具有(通常多個(gè))網(wǎng)絡(luò)服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)的三層體系架構(gòu)。需要將針對(duì)最終用戶請(qǐng)求的平均延遲保持在特定閾值之下。延遲可以由任何元件過(guò)載導(dǎo)致。需要測(cè)量延遲以便響應(yīng)請(qǐng)求(應(yīng)用特定的,例如http服務(wù)器響應(yīng)請(qǐng)求需要多長(zhǎng)時(shí)間)。
[0089]在該實(shí)例中,策略方框631定義多少延遲應(yīng)該可用于響應(yīng)入站請(qǐng)求,并且可能定義系統(tǒng)的正常狀態(tài)應(yīng)該是什么。解釋方框637與提供有關(guān)單獨(dú)組件的信息的探測(cè)通過(guò)接口連接。管理方框633使用策略方框631和來(lái)自解釋方框637的數(shù)據(jù)以及與應(yīng)用軟件的直接通信而做出決策,例如增加處理入站請(qǐng)求的VM數(shù)量以降低延遲(如果延遲過(guò)高),從而可能確定3個(gè)層中的哪個(gè)層是瓶頸并需要增加。管理方框633與控制方框635通過(guò)接口連接以便指示云克隆現(xiàn)有主模板VM并使其在線,然后負(fù)責(zé)將適當(dāng)?shù)臄?shù)據(jù)放在云上并將其綁定到應(yīng)用,以便它可以承擔(dān)負(fù)載。
[0090]相反,如果延遲遠(yuǎn)低于界限并且VM數(shù)量多于正常穩(wěn)定狀態(tài)數(shù)量(按照策略631),則管理633可以指示控制635緩慢關(guān)閉VM,并且負(fù)責(zé)例如通過(guò)修改應(yīng)用級(jí)別負(fù)載平衡器策略而重設(shè)應(yīng)用,使剩余VM處理所有工作負(fù)載。
[0091]作為有關(guān)該非限制性實(shí)例的進(jìn)一步詳細(xì)信息,策略631定義多少延遲應(yīng)該可用于響應(yīng)入站請(qǐng)求以及系統(tǒng)的正常狀態(tài)應(yīng)該是什么:
[0092]average_latency{
[0093]period=lmin
[0094]max_latency=500ms
[0095]}
[0096]這將設(shè)置以下策略:一分鐘內(nèi)的平均延遲不應(yīng)該高于500毫秒。通常,如果高于該值,則應(yīng)該分配更多機(jī)器。如上討論的,管理模塊633中的邏輯從探測(cè)獲得數(shù)據(jù),檢查策略631,并且如果違反任何策略,則采取適當(dāng)?shù)牟僮?;將?shí)現(xiàn)相同操作的指令發(fā)送到控制方框635,指令在控制方框635轉(zhuǎn)換,也如以上所述。
[0097]管理方框633還可以針對(duì)每個(gè)單獨(dú)的應(yīng)用軟件組件517運(yùn)行微測(cè)試。
[0098]管理方框633然后可選地實(shí)施邏輯以便嘗試確定什么層導(dǎo)致延遲。它能夠在每個(gè)層上執(zhí)行微基準(zhǔn)測(cè)試,這不會(huì)影響任何其它層。例如,它可以從網(wǎng)絡(luò)服務(wù)器取回靜態(tài)網(wǎng)頁(yè)以便僅測(cè)量網(wǎng)絡(luò)服務(wù)器的延遲。它可以針對(duì)應(yīng)用服務(wù)器執(zhí)行不命中數(shù)據(jù)庫(kù)的簡(jiǎn)單查詢,以及簡(jiǎn)單的數(shù)據(jù)庫(kù)查詢。這些查詢使它能夠確定哪個(gè)組件過(guò)載以及解釋方框637提供的VM級(jí)別測(cè)量,并且因此確定哪個(gè)組件需要增加大小。在這點(diǎn)上,注意可以單獨(dú)使用測(cè)量,可以單獨(dú)使用微基準(zhǔn)測(cè)試,或者可以同時(shí)使用這兩者。此外,微基準(zhǔn)測(cè)試?yán)缈梢曰谶\(yùn)行良好的系統(tǒng)上的預(yù)測(cè)試以便了解所需值。[0099]例如,如果管理方框633確定網(wǎng)絡(luò)服務(wù)器前端過(guò)載并且最佳決策是添加更多的前端,則它將指示控制方框635分配新的虛擬機(jī),然后將任何必需的其它軟件和應(yīng)用數(shù)據(jù)放在該虛擬機(jī)上并將該虛擬機(jī)集成到應(yīng)用中。
[0100]如果云僅是VMware,則控制方框635將網(wǎng)絡(luò)服務(wù)器前端的黃金主虛擬機(jī)復(fù)制到新虛擬機(jī)。它然后使用VMware API的RegisterVmO功能將虛擬機(jī)添加到虛擬機(jī)基礎(chǔ)架構(gòu)。添加之后,控制方框635使用API連接到新虛擬機(jī)并使用其Start ()方法引導(dǎo)機(jī)器。管理方框633然后將該虛擬機(jī)添加到處理前端職責(zé)的機(jī)器集群。在更簡(jiǎn)單的實(shí)例中,可以增加機(jī)器的大小。
[0101]在另一個(gè)非限制性實(shí)例中,考慮監(jiān)視存儲(chǔ)利用率。策略631定義應(yīng)該提供多少數(shù)量的空閑存儲(chǔ)以及多少是過(guò)多的空閑存儲(chǔ)。解釋方框637與普通接口(du、df、quota、…)通過(guò)接口連接以便確定空閑空間的數(shù)量。管理方框633使用這些信息判定是否提供了足夠的空閑空間(或過(guò)多的空閑空間)。管理方框633根據(jù)策略指示控制方框635分配更多的空閑空間(或減少空閑空間)。合適的命令可以采取“increase_disk〈image idXdiskid>〈size>” 的形式。
[0102]例如,某些虛擬機(jī)可能能夠運(yùn)行一個(gè)或多個(gè)服務(wù),具體取決于虛擬機(jī)的負(fù)載。在某些實(shí)例中,然后可以監(jiān)視虛擬機(jī)負(fù)載(從虛擬機(jī)基礎(chǔ)架構(gòu)),并且在每個(gè)虛擬機(jī)中具有探測(cè)以便監(jiān)視單獨(dú)服務(wù)的資源利用率(CPU、1/0),從而了解每個(gè)單獨(dú)服務(wù)使用多少資源。
[0103]策略631可以確定應(yīng)該允許虛擬機(jī)在多少持續(xù)負(fù)載下運(yùn)行,以及在虛擬機(jī)上運(yùn)行的單獨(dú)服務(wù)應(yīng)該允許多少持續(xù)負(fù)載。解釋方框637與虛擬機(jī)基礎(chǔ)架構(gòu)負(fù)載監(jiān)視(整體虛擬機(jī)負(fù)載)和虛擬機(jī)內(nèi)部的探測(cè)(以便監(jiān)視每個(gè)單獨(dú)服務(wù)的0S級(jí)別負(fù)載測(cè)量)通過(guò)接口連接。管理方框633可以進(jìn)行決策以分離虛擬機(jī),以便如果單獨(dú)虛擬機(jī)上的負(fù)載過(guò)高,則可以在獨(dú)立虛擬機(jī)上運(yùn)行單獨(dú)服務(wù),如果負(fù)載減少,則可以將單獨(dú)服務(wù)再次組合在一起。它與控制方框635通過(guò)接口連接以便根據(jù)需要啟動(dòng)新虛擬機(jī)或關(guān)閉現(xiàn)有虛擬機(jī),以及關(guān)閉或啟動(dòng)在單獨(dú)虛擬機(jī)上運(yùn)行的服務(wù)。
[0104]在另一個(gè)非限制性實(shí)例中,考慮增加虛擬機(jī)的存儲(chǔ)器和CPU利用率。策略631確定應(yīng)在單個(gè)機(jī)器上允許多少持續(xù)存儲(chǔ)器和CPU負(fù)載。解釋方框637獲得CPU利用率和空閑存儲(chǔ)器的報(bào)告,并且將其提供給管理方框633。管理方框633可以確定增加(或減少)單獨(dú)虛擬機(jī)的CPU和存儲(chǔ)器分配。它指示控制方框635執(zhí)行該操作。控制方框635可以關(guān)閉虛擬機(jī)(如果需要,某些虛擬機(jī)支持熱插拔CPU),重新配置虛擬機(jī)以便增加CPU數(shù)量和分配的存儲(chǔ)器,并且使用虛擬機(jī)體系架構(gòu)的接口(例如:在vmware:vmrun ;以及手動(dòng)或通過(guò)API編輯虛擬機(jī)的配置文件)重新啟動(dòng)虛擬機(jī)。
[0105]在更進(jìn)一步的非限制性實(shí)例中,考慮指定每月的允許停機(jī)時(shí)間的情況。應(yīng)用管理器可以記錄一個(gè)月內(nèi)到目前為止的總停機(jī)時(shí)間;如果它注意到接近允許的限制,則將使用控制組件635對(duì)其它資源進(jìn)行排序。
[0106]以下是用于供應(yīng)服務(wù)器和增加存儲(chǔ)的非限制性的示例性實(shí)際命令:
[0107]provision<template/base id nameXnew id name>>
[0108]increase_disk〈id name><size>
[0109]給出到目前為止的討論,應(yīng)該理解,一般地說(shuō),根據(jù)本發(fā)明的一個(gè)方面的示例性方法包括以下步驟:由應(yīng)用資源管理器401獲得對(duì)在云10上運(yùn)行的應(yīng)用403、511的即將發(fā)生的需求的預(yù)測(cè)。所述云是基礎(chǔ)架構(gòu)即服務(wù)云和/或平臺(tái)即服務(wù)云。其它步驟包括由應(yīng)用資源管理器401基于所述預(yù)測(cè)而確定云10的專用于所述應(yīng)用的資源需要被擴(kuò)展或收縮。進(jìn)一步的步驟包括響應(yīng)于確定步驟,根據(jù)具體情況執(zhí)行(或至少指定如何執(zhí)行)擴(kuò)展或收縮所述云的專用于所述應(yīng)用的資源。
[0110]即將發(fā)生的需求的預(yù)測(cè)例如可以從應(yīng)用所有者513處獲得。在其它實(shí)例中,即將發(fā)生的需求的預(yù)測(cè)可以通過(guò)應(yīng)用資源管理器401本身獲得,其基于對(duì)應(yīng)用403、511以及來(lái)自云10的云管理接口的數(shù)據(jù)的觀察而得出預(yù)測(cè)。
[0111]如果確定云的專用于應(yīng)用的資源需要被收縮,則應(yīng)用資源管理器401可以在云中隱藏未使用的映像。在這點(diǎn)上,應(yīng)該注意,在決策時(shí)這些映像可能沒(méi)有完全未使用。例如,可能具有包含五個(gè)映像的集群,并且每個(gè)映像目前僅使用50%,所以決定減少至四個(gè)或甚至三個(gè)映像。隱藏時(shí),所述映像實(shí)際上應(yīng)該未使用,從這種意義上說(shuō),發(fā)往它/它們的請(qǐng)求現(xiàn)在定向到其它位置。例如,在用于給定集群的負(fù)載平衡器的情況下,應(yīng)用資源管理器401將更改負(fù)載平衡器的策略,以便現(xiàn)在僅將請(qǐng)求發(fā)送到其余三個(gè)或四個(gè)映像(的應(yīng)用組件)。
[0112]如果確定云的專用于應(yīng)用的資源需要被擴(kuò)展,則應(yīng)用資源管理器401可以在云中供應(yīng)新映像。在某些情況下,這可以包括應(yīng)用資源管理器在新映像上供應(yīng)應(yīng)用級(jí)別軟件和/或數(shù)據(jù)。
[0113]如所說(shuō)明的,在某些情況下,應(yīng)用資源管理器401在云10上運(yùn)行。在其它實(shí)例中,應(yīng)用資源管理器在除云之外的計(jì)算資源上運(yùn)行。
[0114]在某些情況下,確定步驟包括找到最經(jīng)濟(jì)高效的方式以便滿足預(yù)測(cè)的即將發(fā)生的需求。
[0115]應(yīng)該注意,可以按照性能和/或可用性指定預(yù)測(cè)的即將發(fā)生的需求。
[0116]還應(yīng)該注意,在某些實(shí)例中,應(yīng)用管理器有時(shí)重新發(fā)現(xiàn)應(yīng)用,即發(fā)現(xiàn)(例如,通過(guò)發(fā)現(xiàn)工具)服務(wù)器管理器直接針對(duì)應(yīng)用軟件517和/或底層映像519進(jìn)行的更改(而不是根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的使用應(yīng)用管理器工具進(jìn)行的更改)。
[0117]此外,給出到目前為止的討論,應(yīng)該理解,一般地說(shuō),根據(jù)本發(fā)明的一個(gè)方面的示例性系統(tǒng)包括云10。所述云是基礎(chǔ)架構(gòu)即服務(wù)云和/或平臺(tái)即服務(wù)云。還包括在云上運(yùn)行的至少一個(gè)應(yīng)用403、511以及應(yīng)用資源管理器401。應(yīng)用資源管理器401獲得對(duì)應(yīng)用403、511的即將發(fā)生的需求的預(yù)測(cè);基于所述預(yù)測(cè)而確定云10的專用于應(yīng)用403、511的資源需要被擴(kuò)展或收縮;以及響應(yīng)于所述確定而根據(jù)具體情況執(zhí)行擴(kuò)展或收縮云的專用于應(yīng)用的資源。
[0118]即將發(fā)生的需求的預(yù)測(cè)例如可以從應(yīng)用所有者513處獲得。在其它實(shí)例中,云10可以包括云管理接口,并且應(yīng)用資源管理器通過(guò)基于對(duì)應(yīng)用和來(lái)自云的云管理接口的數(shù)據(jù)的觀察得出預(yù)測(cè)而獲得預(yù)測(cè)。在這點(diǎn)上,應(yīng)該注意,云管理平臺(tái)523提供云管理接口,即以下平臺(tái):其包含代碼等,但云的用戶通常無(wú)法例如僅通過(guò)網(wǎng)頁(yè)訪問(wèn)代碼,用戶可以在網(wǎng)頁(yè)中查看其當(dāng)前映像并且輸入“provision one more image for me (為我再供應(yīng)一個(gè)映像)”或“extend the resources of this image by X(通過(guò)X擴(kuò)展該映像的資源)”。網(wǎng)頁(yè)是接口,并且在一個(gè)或多個(gè)實(shí)施例中,它具有編程版本的程序以便進(jìn)行相同的輸入。
[0119]云的專用于應(yīng)用的資源例如可以包括映像。在某些情況下,當(dāng)應(yīng)用資源管理器確定云的專用于應(yīng)用的資源需要被收縮時(shí),應(yīng)用資源管理器通過(guò)隱藏未使用的映像來(lái)執(zhí)行收縮。
[0120]在某些情況下,應(yīng)用資源管理器確定云的專用于應(yīng)用的資源需要被擴(kuò)展,并且應(yīng)用資源管理器通過(guò)在云中供應(yīng)新映像來(lái)執(zhí)行擴(kuò)展。如所說(shuō)明的,在某些情況下,這可以包括應(yīng)用資源管理器在新映像上供應(yīng)應(yīng)用級(jí)別軟件和/或數(shù)據(jù)。
[0121]還如所說(shuō)明的,應(yīng)用資源管理器可以在云上運(yùn)行,或者在除云之外的其它計(jì)算資源上運(yùn)行;在某些實(shí)例中,這些資源還形成系統(tǒng)的一部分。應(yīng)該理解,服務(wù)器12盡管被指示為云10的云資源,但同樣表示可以在其上實(shí)現(xiàn)應(yīng)用資源管理器401云的非云計(jì)算資源。此外,除云之外的其它計(jì)算資源還可以包括管理器401在不同于它所管理的云上運(yùn)行的情況。
[0122]如圖6中所示,在某些情況下,應(yīng)用資源管理器依次包括管理部分633和控制部分635。在這些情況下,應(yīng)用資源管理器的管理部分可以是基于預(yù)測(cè)而確定云的專用于應(yīng)用的資源需要被擴(kuò)展或收縮的組件;以及應(yīng)用資源管理器的控制部分可以是響應(yīng)于所述確定而執(zhí)行擴(kuò)展或收縮云的專用于應(yīng)用的資源的組件。
[0123]示例性系統(tǒng)和制品詳細(xì)信息
[0124]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0125]本發(fā)明的一個(gè)或多個(gè)實(shí)施例或其元素可以以裝置的形式實(shí)現(xiàn),所述裝置包括存儲(chǔ)器和至少一個(gè)處理器,至少一個(gè)處理器耦合到存儲(chǔ)器并且可操作以執(zhí)行示例性方法步驟。[0126]一個(gè)或多個(gè)實(shí)施例可以使用在通用計(jì)算機(jī)或工作站上運(yùn)行的軟件。參考圖1,這種實(shí)現(xiàn)例如可以采用處理器16、存儲(chǔ)器28以及到顯示器24和外部設(shè)備(多個(gè))14 (例如鍵盤、指點(diǎn)設(shè)備等)的輸入/輸出接口 22。術(shù)語(yǔ)“處理器”如在此使用的,旨在包括任何處理設(shè)備,例如包括CPU (中央處理單元)和/或其它形式處理電路的處理設(shè)備。進(jìn)一步,術(shù)語(yǔ)“處理器”可以指多個(gè)單獨(dú)的處理器。術(shù)語(yǔ)“存儲(chǔ)器”旨在包括與處理器或CPU關(guān)聯(lián)的存儲(chǔ)器,例如RAM (隨機(jī)存取存儲(chǔ)器)30、ROM (只讀存儲(chǔ)器)、固定存儲(chǔ)器件(例如,硬盤驅(qū)動(dòng)器34)、可移動(dòng)存儲(chǔ)器件(例如,軟盤)、閃存等。此外,詞組“輸入/輸出接口”如在此使用的,旨在構(gòu)想例如到一個(gè)或多個(gè)用于將數(shù)據(jù)輸入到處理單元的機(jī)構(gòu)(例如,鼠標(biāo))以及到一個(gè)或多個(gè)用于提供與處理單元關(guān)聯(lián)的結(jié)果的機(jī)構(gòu)(例如,打印機(jī))的接口。處理器16、存儲(chǔ)器28和輸入/輸出接口 22例如可以通過(guò)總線18互連,作為數(shù)據(jù)處理單元12的一部分。還可以例如通過(guò)總線18為網(wǎng)絡(luò)接口 20 (例如網(wǎng)卡,其可以用于與計(jì)算機(jī)網(wǎng)絡(luò)連接)以及介質(zhì)接口(例如軟盤或CD-ROM驅(qū)動(dòng)器,其可以用于與合適的介質(zhì)連接)提供合適的互連。
[0127]因此,如在此描述的,包括用于執(zhí)行本發(fā)明方法的指令或代碼的計(jì)算機(jī)軟件可以被存儲(chǔ)在一個(gè)或多個(gè)關(guān)聯(lián)的存儲(chǔ)器件(例如,ROM、固定或可移動(dòng)存儲(chǔ)器)中,并且當(dāng)準(zhǔn)備使用時(shí),被部分或全部加載(例如,加載到RAM中)并由CPU實(shí)現(xiàn)。這種軟件可以包括但不限于固件、駐留軟件、微代碼等。
[0128]適合于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個(gè)通過(guò)系統(tǒng)總線18直接或間接連接到存儲(chǔ)元件28的處理器16。存儲(chǔ)元件可以包括在程序代碼的實(shí)際執(zhí)行期間采用的本地存儲(chǔ)器、大容量存儲(chǔ)裝置以及提供至少某些程序代碼的臨時(shí)存儲(chǔ)以減少必須在執(zhí)行期間從大容量存儲(chǔ)裝置檢索代碼的次數(shù)的高速緩存存儲(chǔ)器32。
[0129]輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、指點(diǎn)設(shè)備等)可以直接或通過(guò)中間I/o控制器與系統(tǒng)相連。
[0130]網(wǎng)絡(luò)適配器20也可以被連接到系統(tǒng)以使數(shù)據(jù)處理系統(tǒng)能夠通過(guò)中間專用或公共網(wǎng)絡(luò)變得與其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)器件相連。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡只是當(dāng)前可用的網(wǎng)絡(luò)適配器類型中的少數(shù)幾種。
[0131]如在此(包括權(quán)利要求)使用的,“服務(wù)器”包括運(yùn)行服務(wù)器程序的物理數(shù)據(jù)處理系統(tǒng)(例如,如圖1中所示的系統(tǒng)12)。應(yīng)該理解,這種物理服務(wù)器可以包括也可以不包括顯示器和鍵盤。
[0132]如所說(shuō)明的,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼??梢圆捎靡粋€(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者上述的任意合適的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0133]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括例如在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括一但不限于一電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0134]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0135]可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫用于執(zhí)行本發(fā)明的各個(gè)方面的操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如“C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言,或者諸如Perl之類的腳本語(yǔ)言。在某些實(shí)例中,優(yōu)化求解器可以用作子組件,例如ILOG CPLEX (用于線性編程、混合整數(shù)編程和二次編程的高性能數(shù)學(xué)編程求解器,從位于美國(guó)紐約阿蒙克的國(guó)際商業(yè)機(jī)器公司獲得)。一般地說(shuō),程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN) —連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。在一個(gè)或多個(gè)實(shí)施例中,代碼的重要部分是與應(yīng)用資源管理器關(guān)聯(lián)的部分;它可以在云中或外部運(yùn)行。在至少某些情況下,更可能在服務(wù)器上而不是最終用戶機(jī)器上(如果有的話,在應(yīng)用所有者的最終用戶機(jī)器上),但應(yīng)用所有者從膝上型電腦等運(yùn)行它也是可能的。
[0136]在此參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的各個(gè)方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0137]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0
[0138]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的過(guò)程。
[0139]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的不同實(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ī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0140]應(yīng)該注意,在此描述的任何方法都可以包括提供一種系統(tǒng)的額外步驟,所述系統(tǒng)包括包含在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的不同軟件模塊;所述模塊例如可以包括在此處描述的框圖和/或流程圖中所示的任何或全部元素;作為實(shí)例而非限制,圖6中示出應(yīng)用資源管理器模塊,其具有一個(gè)或多個(gè)子模塊,例如策略子模塊、管理子模塊、控制子模塊和解釋子模塊。然后可以使用所述系統(tǒng)的不同軟件模塊和/或子模塊(如上所述,在一個(gè)或多個(gè)硬件處理器(例如16)上執(zhí)行)執(zhí)行方法步驟。進(jìn)一步,計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有適合于實(shí)現(xiàn)以便執(zhí)行在此描述的一個(gè)或多個(gè)方法步驟的代碼,這些方法步驟包括為所述系統(tǒng)供應(yīng)不同軟件模塊。在某些情況下,在至少一個(gè)硬件處理器上執(zhí)行的管理子模塊執(zhí)行確定步驟,在至少一個(gè)硬件處理器上執(zhí)行的控制子模塊執(zhí)行擴(kuò)展和收縮。獲得步驟通常可以被認(rèn)為由應(yīng)用資源管理器模塊執(zhí)行;其中從應(yīng)用所有者獲得預(yù)測(cè),可以使用策略子模塊,同時(shí)應(yīng)用資源管理器本身從應(yīng)用和/或云管理接口中的數(shù)據(jù)得出預(yù)測(cè),可以采用解釋子模塊。
[0141]在任何情況下,應(yīng)當(dāng)理解,在此示出的組件可以以各種形式的硬件、軟件或它們的組合來(lái)實(shí)現(xiàn);例如,專用集成電路(多個(gè))(ASIC)、功能電路、一個(gè)或多個(gè)具有關(guān)聯(lián)存儲(chǔ)器的經(jīng)過(guò)適當(dāng)編程的通用數(shù)字計(jì)算機(jī)等。給予了在此提供的本發(fā)明的教導(dǎo)后,相關(guān)【技術(shù)領(lǐng)域】的普通技術(shù)人員將能夠構(gòu)想本發(fā)明的組件的其它實(shí)現(xiàn)。
[0142]在此使用的術(shù)語(yǔ)只是為了描述特定的實(shí)施例并且并非旨在作為本發(fā)明的限制。如在此使用的,單數(shù)形式“一”、“一個(gè)”和“該”旨在同樣包括復(fù)數(shù)形式,除非上下文明確地另有所指。還將理解,當(dāng)在此說(shuō)明書中使用時(shí),術(shù)語(yǔ)“包括”和/或“包含”指定了聲明的特性、整數(shù)、步驟、操作、元素和/或組件的存在,但是并不排除一個(gè)或多個(gè)其它特性、整數(shù)、步驟、操作、元素、組件和/或其組合的存在或增加。
[0143]以下的權(quán)利要求中的對(duì)應(yīng)結(jié)構(gòu)、材料、操作以及所有功能性限定的裝置或步驟的等同替換,旨在包括任何用于與在權(quán)利要求中具體指出的其它元件相組合地執(zhí)行該功能的結(jié)構(gòu)、材料或操作。出于示例和說(shuō)明目的給出了對(duì)本發(fā)明的描述,但所述描述并非旨在是窮舉的或是將本發(fā)明限于所公開(kāi)的形式。在不偏離本發(fā)明的范圍和精神的情況下,對(duì)于所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō)許多修改和變化都將是顯而易見(jiàn)的。實(shí)施例的選擇和描述是為了最佳地解釋本發(fā)明的原理和實(shí)際應(yīng)用,并且當(dāng)適合于所構(gòu)想的特定使用時(shí),使得所屬【技術(shù)領(lǐng)域】的其它普通技術(shù)人員能夠理解本發(fā)明的具有各種修改的各種實(shí)施例。
【權(quán)利要求】
1.一種方法,包括:由應(yīng)用資源管理器獲得對(duì)在云上運(yùn)行的應(yīng)用的即將發(fā)生的需求的預(yù)測(cè),所述云包括基礎(chǔ)架構(gòu)即服務(wù)云和平臺(tái)即服務(wù)云中的至少一個(gè);由所述應(yīng)用資源管理器基于所述預(yù)測(cè)而確定所述云的專用于所述應(yīng)用的資源需要被擴(kuò)展或收縮;以及響應(yīng)于所述確定步驟,執(zhí)行擴(kuò)展和收縮所述云的專用于所述應(yīng)用的所述資源中的一個(gè)。
2.根據(jù)權(quán)利要求1的方法,其中所述獲得包括從應(yīng)用所有者獲得所述預(yù)測(cè)。
3.根據(jù)權(quán)利要求1的方法,其中所述獲得包括所述應(yīng)用資源管理器基于對(duì)以下至少一項(xiàng)的觀察而得出所述預(yù)測(cè):所述應(yīng)用;以及來(lái)自所述云的云管理接口的數(shù)據(jù)。
4.根據(jù)權(quán)利要求1的方法,其中所述確定包括確定所述云的專用于所述應(yīng)用的所述資源需要被收縮,并且其中所述執(zhí)行包括通過(guò)在所述云中隱藏未使用的映像來(lái)執(zhí)行收縮。
5.根據(jù)權(quán)利要求1的方法,其中所述確定包括確定所述云的專用于所述應(yīng)用的所述資源需要被擴(kuò)展,并且其中所述執(zhí)行包括通過(guò)在所述云中供應(yīng)新的映像來(lái)執(zhí)行所述擴(kuò)展。
6.根據(jù)權(quán)利要求5的方法,還包括所述應(yīng)用資源管理器在所述新的映像上供應(yīng)應(yīng)用級(jí)別軟件和數(shù)據(jù)中的至少一個(gè)。
7.根據(jù)權(quán)利要求1的方法,還包括以下操作中的至少一個(gè):在所述云上運(yùn)行所述應(yīng)用資源管理器;以及在除所述云之外的計(jì)算資源上運(yùn)行所述應(yīng)用資源管理器。
8.根據(jù)權(quán)利要求1的方法,其中所述確定包括找到一種最經(jīng)濟(jì)高效的方式來(lái)滿足所預(yù)測(cè)的即將發(fā)生的需求。
9.根據(jù)權(quán)利要求1的方法,其中在所述獲得步驟中,按照性能和可用性中的至少一個(gè)來(lái)指定所預(yù)測(cè)的即將發(fā)生的需求。
10.根據(jù)權(quán)利要求1的方法,還包括 所述應(yīng)用資源管理器定期運(yùn)行發(fā)現(xiàn)工具以檢測(cè)以下至少一項(xiàng)的更改:所述應(yīng)用;以及所述云的專用于所述應(yīng)用的所述資源。
11.根據(jù)權(quán)利要求1的方法,還包括提供一種系統(tǒng),其中所述系統(tǒng)包括不同軟件模塊,每個(gè)所述不同軟件模塊包含在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,并且其中所述不同軟件模塊包括應(yīng)用資源管理器模塊、管理子模塊和控制子模塊;其中:由在至少一個(gè)硬件處理器上執(zhí)行的所述應(yīng)用資源管理器模塊執(zhí)行所述獲得;由在所述至少一個(gè)硬件處理器上執(zhí)行的所述管理子模塊執(zhí)行所述確定;以及由在所述至少一個(gè)硬件處理器上執(zhí)行的所述控制子模塊執(zhí)行所述擴(kuò)展和收縮中的一個(gè)。
12.根據(jù)權(quán)利要求11的方法,其中:所述不同軟件模塊進(jìn)一步包括策略子模塊和解釋子模塊;由在所述至少一個(gè)硬件處理器上執(zhí)行的所述管理子模塊通過(guò)實(shí)施所述策略子模塊的至少一個(gè)策略并基于來(lái)自所述解釋子模塊的利用率信息和故障報(bào)告中的至少一個(gè),執(zhí)行所述確定。
13.—種系統(tǒng),包括:云,所述云包括基礎(chǔ)架構(gòu)即服務(wù)云和平臺(tái)即服務(wù)云中的至少一個(gè);在所述云上運(yùn)行的至少一個(gè)應(yīng)用;以及應(yīng)用資源管理器;其中所述應(yīng)用資源管理器:獲得對(duì)所述應(yīng)用的即將發(fā)生的需求的預(yù)測(cè);基于所述預(yù)測(cè)而確定所述云的專用于所述應(yīng)用的資源需要被擴(kuò)展或收縮;以及響應(yīng)于所述確定,執(zhí)行擴(kuò)展和收縮所述云的專用于所述應(yīng)用的所述資源中的一個(gè)。
14.根據(jù)權(quán)利要求13的系統(tǒng),其中所述應(yīng)用資源管理器從應(yīng)用所有者獲得所述預(yù)測(cè)。
15.根據(jù)權(quán)利要求13的系統(tǒng),其中所述云包括云管理接口,并且其中所述應(yīng)用資源管理器通過(guò)以下操作獲得所述預(yù)測(cè):基于對(duì)所述應(yīng)用和來(lái)自所述云的所述云管理接口的數(shù)據(jù)的觀察而得出所述預(yù)測(cè)。
16.根據(jù)權(quán)利要求13的系統(tǒng),其中:所述云的專用于所述應(yīng)用的所述資源中的至少一些資源包括映像;所述應(yīng)用資源管理器確定所述云的專用于所述應(yīng)用的所述資源需要被收縮;以及所述應(yīng)用資源管理器通過(guò)隱藏所述映像中的未使用映像來(lái)執(zhí)行所述收縮。
17.根據(jù)權(quán)利要求13的系統(tǒng),其中所述應(yīng)用資源管理器確定所述云的專用于所述應(yīng)用的所述資源需要被擴(kuò)展,并且其中所述應(yīng)用資源管理器通過(guò)在所述云中供應(yīng)新的映像來(lái)執(zhí)行所述擴(kuò)展。
18.根據(jù)權(quán)利要求13的系統(tǒng),其中:所述應(yīng)用資源管理器依次包括管理部分和控制部分;所述應(yīng)用資源管理器的所述管理部分基于所述預(yù)測(cè)而確定所述云的專用于所述應(yīng)用的所述資源需要被擴(kuò)展或收縮;以及響應(yīng)于所述確定,所述應(yīng)用資源管理器的所述控制部分執(zhí)行所述擴(kuò)展和收縮所述云的專用于所述應(yīng)用的所述資源中的一個(gè)。
19.一種應(yīng)用資源管理器計(jì)算機(jī)程序產(chǎn)品,其包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)隨其包含計(jì)算機(jī)可讀程序代碼,所述計(jì)算機(jī)可讀程序代碼包括:被配置為執(zhí)行以下操作的計(jì)算機(jī)可讀程序代碼:獲得對(duì)在云上運(yùn)行的應(yīng)用的即將發(fā)生的需求的預(yù)測(cè),所述云包括基礎(chǔ)架構(gòu)即服務(wù)云和平臺(tái)即服務(wù)云中的至少一個(gè);被配置為執(zhí)行以下操作的計(jì)算機(jī)可讀程序代碼:基于所述預(yù)測(cè)而確定所述云的專用于所述應(yīng)用的資源需要被擴(kuò)展或收縮;以及被配置為執(zhí)行以下操作的計(jì)算機(jī)可讀程序代碼:響應(yīng)于所述確定,指定指令以便執(zhí)行擴(kuò)展和收縮所述云的專用于所述應(yīng)用的所述資源中的一個(gè)。
20.根據(jù)權(quán)利要求19的計(jì)算機(jī)程序產(chǎn)品,其中被配置為獲得所述預(yù)測(cè)的計(jì)算機(jī)可讀程序代碼包括被配置為從應(yīng)用所有者獲得所述預(yù)測(cè)的計(jì)算機(jī)可讀程序代碼。
21.根據(jù)權(quán)利要求19的計(jì)算機(jī)程序產(chǎn)品,其中被配置為獲得所述預(yù)測(cè)的計(jì)算機(jī)可讀程序代碼包括被配置為基于對(duì)以下至少一項(xiàng)的觀察而得出所述預(yù)測(cè)的計(jì)算機(jī)可讀程序代碼:所述應(yīng)用;以及來(lái)自所述云的云管理接口的數(shù)據(jù)。
22.根據(jù)權(quán)利要求19的計(jì)算機(jī)程序產(chǎn)品,其中被配置為確定的所述計(jì)算機(jī)可讀程序代碼包括被配置為確定所述云的專用于所述應(yīng)用的所述資源需要被收縮的計(jì)算機(jī)可讀程序代碼,并且其中所述指令指定通過(guò)在所述云中隱藏未使用的映像來(lái)執(zhí)行收縮。
23.根據(jù)權(quán)利要求19的計(jì)算機(jī)程序產(chǎn)品,其中被配置為確定的所述計(jì)算機(jī)可讀程序代碼包括被配置為確定所述云的專用于所述應(yīng)用的所述資源需要被擴(kuò)展的計(jì)算機(jī)可讀程序代碼,并且其中所述指令指定通過(guò)在所述云中供應(yīng)新的映像來(lái)執(zhí)行所述擴(kuò)展。
24.根據(jù)權(quán)利要求19的計(jì)算機(jī)程序產(chǎn)品,其中所述計(jì)算機(jī)可讀程序代碼包括不同軟件模塊,并且其中所述不同軟件模塊包括應(yīng)用資源管理器模塊、管理子模塊和控制子模塊;其中:所述應(yīng)用資源管理器模塊包括被配置為獲得的所述計(jì)算機(jī)可讀程序代碼;所述管理子模塊包括被配置為確定的所述計(jì)算機(jī)可讀程序代碼;以及所述控制子模塊包括被配置為指定的所述計(jì)算機(jī)可讀程序代碼。
25.根據(jù)權(quán)利要求24的計(jì)算機(jī)程序產(chǎn)品,其中:所述不同軟件模塊進(jìn)一步包括策略子模塊`和解釋子模塊;所述管理子模塊通過(guò)實(shí)施所述策略子模塊的至少一個(gè)策略并基于來(lái)自所述解釋子模塊的利用率信息和故障報(bào)告中的至少一個(gè),執(zhí)行所述確定。
【文檔編號(hào)】G06F15/173GK103649941SQ201280033898
【公開(kāi)日】2014年3月19日 申請(qǐng)日期:2012年7月8日 優(yōu)先權(quán)日:2011年7月12日
【發(fā)明者】M·V·德瓦拉孔達(dá), N·A·尤科夫, B·普費(fèi)茨曼, S·波特 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司