專利名稱:用于動態(tài)管理計算容量請求的方法和系統(tǒng)的制作方法
用于動態(tài)管理計算容量請求的方法和系統(tǒng)相關(guān)申請案本申請要求2010年9月21日提交的美國非臨時申請第12/887,241號的權(quán)益,該申請的公開內(nèi)容的全文據(jù)此以引用的方式并入本文。
背景技術(shù):
公司和機構(gòu)運行使眾多計算系統(tǒng)互連以支持其運營的計算機網(wǎng)絡(luò)。計算系統(tǒng)可位于單個地理位置中(例如,作為局域網(wǎng)的一部分)或位于多個不同地理位置中(例如,經(jīng)由一個或多個專用或公用的中間網(wǎng)絡(luò))。數(shù)據(jù)中心可以置放大量互連的計算系統(tǒng),例如專用數(shù)據(jù)中心是由單個機構(gòu)進行操作并且公用數(shù)據(jù)中心是由第三方進行操作以把計算資源提供給客戶。專用和公用數(shù)據(jù)中心可以對數(shù)據(jù)中心、機構(gòu)或其它客戶擁有的硬件提供網(wǎng)絡(luò)訪問、電力、硬件資源(例如,計算和存儲)和安全安裝設(shè)施。為了幫助提高數(shù)據(jù)中心資源的利用率,虛擬化技術(shù)可以允許單個物理計算機主控作為到連接的計算機用戶的獨立計算機出現(xiàn)而操作作的虛擬機的ー個或多個實例。運用虛擬化,單個物理計算裝置可以動態(tài)方式創(chuàng)建、維持或刪除虛擬機。用戶又可基于“按照需要”或至少基干“按照請求”請求來自數(shù)據(jù)中心的計算機資源并且具備不同量的虛擬機資源。隨著數(shù)據(jù)中心的規(guī)模和范圍増大,提供、支配和管理數(shù)據(jù)中心的物理和虛擬計算資源已變得越來越復(fù)雜。
在附圖各處,參考數(shù)字可以重用于指示參考元件之間的對應(yīng)性。提供附圖以示出本文描述的示例性實施方案且并非g在限制本公開內(nèi)容的范疇。圖1是示意地示出了可經(jīng)由通信網(wǎng)絡(luò)把計算資源提供給多個用戶計算系統(tǒng)的程序執(zhí)行服務(wù)的示例的網(wǎng)絡(luò)圖;圖2A是被配置來管理程序執(zhí)行服務(wù)的用戶要用的計算資源的請求的交互請求管理器的闡釋性組件的方框圖;圖2B示意地示出了程序執(zhí)行服務(wù)的用戶計算系統(tǒng)與交互請求管理器之間的示例性交互的網(wǎng)絡(luò)圖;和圖3A和圖3B是示出了由交互請求管理器組件實施的交互請求管理器例程的流程圖。圖3C是示意地示出了交互請求管理器的實施方案可通過其與用戶計算系統(tǒng)進行通信以用于修改分配的計算資源的設(shè)置的例程的示例的流程圖。圖4是示意地示出了交互請求管理器的實施方案可通過其與用戶計算系統(tǒng)進行通信以提供供用戶選擇的多個虛擬化環(huán)境的例程的示例的流程圖。
具體實施例方式描述用于動態(tài)管理對來自計算資源提供者(程序執(zhí)行服務(wù))的計算容量的請求的系統(tǒng)和方法的實施方案。舉例來說,計算資源可以包括程序執(zhí)行能力、數(shù)據(jù)存儲或管理能力、數(shù)據(jù)庫管理能力、網(wǎng)絡(luò)帶寬、應(yīng)用監(jiān)控或日志記錄、用于采取糾正措施以解決問題的能力等。在某些實施方式中,用戶可請求生成可在當前或未來使用時段期間管理用戶的計算機資源的虛擬化環(huán)境。例如,用戶可請求生成可在使用時段期間運行用戶的自定義軟件應(yīng)用和為用戶管理或預(yù)約合適的程序執(zhí)行容量、數(shù)據(jù)存儲容量、數(shù)據(jù)庫管理選項和/或網(wǎng)絡(luò)帶寬的虛擬化環(huán)境。計算資源提供者可確定提供者的計算機資源中的哪些可用于滿足用戶的請求并且可在請求的使用時段期間把這些計算機資源分配給用戶。可以高度靈活地選擇用戶請求的使用時段和/或其它參數(shù)以滿足用戶的計算機資源需要。用戶請求可以包括用于指定用戶的偏好、限制和/或需求的一個或多個用戶可選擇參數(shù)。例如,用戶請求可指定在使用時段期間執(zhí)行某個特定程序(或多個特定程序)、在使用時段期間使用特定類型或地理分布的計算機資源、使用時段具有希望的開始日期、結(jié)束日期和/或持續(xù)時間等等。在某些實施方式中,計算資源提供者對可由用戶提交的請求參數(shù)的范圍施加很少的限制或沒有限制。作為ー個可能的示例,用戶可能夠請求在可以包括在ー個或多個地理位置的計算機資源的一組計算機資源上執(zhí)行特定程序。用戶可能夠使用應(yīng)用編程接ロ(API)或其它類型的計算接ロ把程序和程序執(zhí)行參數(shù)傳達到程序執(zhí)行服務(wù),用于生成虛擬化環(huán)境。例如,用戶可以使用Web應(yīng)用檔案文件(如Java WAR文件)上傳軟件應(yīng)用。接著,程序執(zhí)行服務(wù)可以自動配置虛擬化環(huán)境(例如,“應(yīng)用容器”),其可是包括用于用戶程序的應(yīng)用軟件堆棧以及用于在程序執(zhí)行服務(wù)上執(zhí)行用戶程序的一個或多個基礎(chǔ)結(jié)構(gòu)服務(wù)的運行時環(huán)境。應(yīng)用容器可包括用戶可選擇的操作系統(tǒng)(例如,Linux、Windows等)、應(yīng)用服務(wù)器(例如,ApacheTomcat)、系統(tǒng)或應(yīng)用配置等。虛擬化環(huán)境可被配置來寄宿在特定URL處?;A(chǔ)結(jié)構(gòu)服務(wù)可包括但不限于:負載平衡器,其用于跨請求的計算資源分布工作量;負載調(diào)節(jié)器,其響應(yīng)于負載或需求變化而調(diào)節(jié)計算資源;監(jiān)控接ロ,其允許用戶監(jiān)控程序、數(shù)據(jù)存儲資源(例如,可伸縮容量塊存儲裝置)等的執(zhí)行。在某些實施方案中,用戶可能夠選擇可包括在容器中的一個或多個程序或服務(wù)。例如,用戶可能夠從多個數(shù)據(jù)庫模型(例如,關(guān)系數(shù)據(jù)庫、SQL數(shù)據(jù)庫、Oracle數(shù)據(jù)庫等)中進行選擇。在某些實施方案中,基礎(chǔ)結(jié)構(gòu)服務(wù)可被自定義用于用戶而非作為多個用戶之間共享的資源。例如,在某些這類實施方案中,負載平衡器可被單獨自定義用于用戶應(yīng)用而非在程序執(zhí)行服務(wù)的多個用戶之間進行共享或分布。虛擬化環(huán)境的特定實施方案的可能優(yōu)點是計算系統(tǒng)允許用戶在希望的情況下具有靈活度和對應(yīng)用容器的內(nèi)容的控制。例如,在某些情況下,用戶可以僅提供用戶程序,并且計算系統(tǒng)可以自動管理由虛擬化環(huán)境使用的所有剰余基礎(chǔ)結(jié)構(gòu)的部署。在其它情況下,用戶可以選擇和/或配置包括在虛擬化環(huán)境中的ー個或多個基礎(chǔ)結(jié)構(gòu)服務(wù)。在某些情況下,用戶可以選擇在不同地理區(qū)域中的計算資源,以便實現(xiàn)用于用戶應(yīng)用的希望的部署拓撲??梢砸匀魏蜗M姆绞脚渲没蜻x擇部署拓撲。例如,部署拓撲可以基于用戶的客戶的位置或區(qū)域,以便改善應(yīng)用的性能(例如,減小網(wǎng)絡(luò)延時)。作為另ー示例,部署拓撲可以被配置來使用ー個或多個區(qū)域或地帯中的計算資源以例如通過改善應(yīng)用對特定區(qū)域或地帶中的計算資源的故障(例如,由于ー個區(qū)域或地帯中的不利天氣狀況)的復(fù)原能力來改善用戶應(yīng)用的穩(wěn)健性。此外,在特定實施方案中,用戶在執(zhí)行程序期間保持對計算資源的訪問,并且用戶可以在執(zhí)行期間控制某些或所有計算資源。例如,在某些這類實施方案中,用戶在希望的情況下可以選擇使用戶應(yīng)用脫離虛擬化環(huán)境。在特定收費實施方式中,計算機資源提供者可以向用戶收取針對請求的預(yù)約費(例如,當準許該請求時)和/或?qū)τ谠谑褂脮r段期間提供可用計算機資源的使用的使用費。各種類型或級別的費用安排是有可能的。例如,可以由用戶請求用于直接用戶的計算機資源(“按需資源”)。在某些此類情況下,用戶可能不會支付預(yù)約費但可能支付更高使用費。作為另ー示例,用戶可能會預(yù)約計算機資源以便在未來使用時段期間獲得保證的可用性(“預(yù)約的資源”)??梢韵蛴脩羰杖∵M行預(yù)約的預(yù)約費并且還可基于在使用時段期間實際使用的計算機資源量向用戶收取使用費。在某些這類情況下,預(yù)約資源的使用費可以從按需資源的使用費打折扣并且/或者可以在更接近使用時段之時而非更接近進行請求之時收取預(yù)約費。在另ー示例中,計算機資源提供者可以允許用戶對未使用的計算機資源(“現(xiàn)貨資源”)進行競價。在某些這類情況下,計算機資源提供者可以設(shè)置基于資源供應(yīng)和需求而變化的現(xiàn)貨價格,并且可使資源可用于其競價達到或超過現(xiàn)貨價格的那些用戶?,F(xiàn)將參考g在闡釋而非限制本公開內(nèi)容的特定實施例和實施方案描述本公開內(nèi)容的各個方面。圖1是示意地示出了可經(jīng)由通信網(wǎng)絡(luò)108把計算資源提供給多個用戶計算系統(tǒng)104的程序執(zhí)行服務(wù)100的示例的網(wǎng)絡(luò)圖。例如,程序執(zhí)行服務(wù)100可管理來自用戶的請求以代表用戶執(zhí)行程序或程序集。至少ー些用戶計算系統(tǒng)104可在遠離程序執(zhí)行服務(wù)100之處。在此示例中,用戶可使用計算系統(tǒng)104以通過通信網(wǎng)絡(luò)108訪問程序執(zhí)行服務(wù)100。網(wǎng)絡(luò)108可以例如是可能由各個不同方運營的鏈接網(wǎng)絡(luò)的可公開訪問的網(wǎng)絡(luò),如互聯(lián)網(wǎng)。在其它實施方案中,網(wǎng)絡(luò)108可以是專用網(wǎng),例如非特權(quán)用戶完全或部分無法訪問的企業(yè)或大學(xué)網(wǎng)絡(luò)。在其它實施方案中,網(wǎng)絡(luò)108可以包括可訪問互聯(lián)網(wǎng)和/或從互聯(lián)網(wǎng)訪問的一個或多個專用網(wǎng)。程序執(zhí)行服務(wù)100提供用于管理多個用戶的程序的執(zhí)行的多種功能。在圖1所示的示例中,程序執(zhí)行服務(wù)100包括可代表用戶執(zhí)行程序的多個計算節(jié)點112。計算節(jié)點112可以包括ー個或多個物理計算系統(tǒng)116和/或寄宿在ー個或多個物理計算系統(tǒng)上的ー個或多個虛擬機120。例如,主機計算系統(tǒng)可以提供多個虛擬機120并且包括用于管理這些虛擬機的虛擬機(“VM”)管理器124 (例如,系統(tǒng)管理程序或其它虛擬機監(jiān)控器)。在圖1所示的示例中,每個計算節(jié)點112具有可用于執(zhí)行一個或多個程序的一定量的計算資源。每個計算節(jié)點112可以被配置來提供可以例如按處理容量(例如,處理單元的數(shù)量和/或大小)、存儲器容量、存儲容量、網(wǎng)絡(luò)帶寬容量、非網(wǎng)絡(luò)通信帶寬等中的ー個或多個的組合來測量的特定量的程序執(zhí)行容量。在某些實施方案中,程序執(zhí)行服務(wù)100可以提供預(yù)先配置的計算節(jié)點112,其中每個預(yù)先配置的計算節(jié)點具有可用于代表用戶執(zhí)行程序的類似和/或等量的資源。在其它實施方案中,程序執(zhí)行服務(wù)100可以提供對各個不同計算節(jié)點112的選擇,用戶可以從這些節(jié)點中選擇節(jié)點來代表用戶執(zhí)行程序。在其它實施方案中,程序執(zhí)行服務(wù)100可以生成特定于用戶和用戶程序的執(zhí)行的各種計算節(jié)點。在某些這類實施方案中,計算節(jié)點112可以具有不同量和/或類型的計算資源(例如,處理單元的大小、速度和/或類型;處理單元的數(shù)量;存儲器和/或存儲裝置的量;平臺配置,如32位或64位操作系統(tǒng)等)。程序執(zhí)行服務(wù)100可以提供可訪問提供數(shù)據(jù)、程序和其他用戶信息的大容量存儲的存儲節(jié)點134的用戶計算系統(tǒng)104。存儲節(jié)點134可以包括任何類型的持久性數(shù)據(jù)存儲裝置,例如非易失性存儲裝置,如硬盤驅(qū)動器、光盤驅(qū)動器等。在圖1所示的示例中,計算節(jié)點112可經(jīng)由網(wǎng)絡(luò)128訪問存儲節(jié)點134。網(wǎng)絡(luò)128可以包括多個聯(lián)網(wǎng)裝置(未示出),如交換機、邊緣路由器、核心路由器等。網(wǎng)絡(luò)128可以但不必須是與圖1所示的網(wǎng)絡(luò)108不同的網(wǎng)絡(luò)。程序執(zhí)行服務(wù)100的用戶可經(jīng)由交互請求管理器130與程序執(zhí)行服務(wù)100進行交互以請求程序執(zhí)行服務(wù)的優(yōu)選和/或所要資源(例如,程序執(zhí)行容量和/或存儲資源)。交互請求管理器130可經(jīng)由網(wǎng)絡(luò)128連接到計算節(jié)點112和存儲節(jié)點134。交互請求管理器130可通過網(wǎng)絡(luò)108從用戶計算系統(tǒng)104接收資源請求。用戶可以經(jīng)由交互請求管理器130請求服務(wù)100提供用于代表用戶(或由該用戶授權(quán)的其他用戶)執(zhí)行程序的一個或多個計算節(jié)點。在某些實施方案中,用戶可以經(jīng)由交互請求管理器130請求服務(wù)100生成可管理和預(yù)約可能被需要用于代表用戶執(zhí)行程序的計算資源的ー個或多個計算節(jié)點。在不同實施方案中,可以在請求代表用戶執(zhí)行程序之時和/或在ー個或多個其它時間(如當用戶進行注冊和/或預(yù)訂程序執(zhí)行服務(wù)100的使用服務(wù)時)指定計算資源。在某些實施方案中,交互請求管理器130可以對ー個或多個用戶提供預(yù)訂和/或注冊服務(wù),使得用戶可以指定與代表用戶執(zhí)行的一個或多個程序有關(guān)的信息(例如,程序、源代碼、一個或多個程序的可尋址位置等)、帳戶信息(例如,用戶名、記賬信息等)、使用條款等。在某些實施方案中,在用戶與交互請求管理器130進行交互以為了服務(wù)預(yù)訂和/或注冊之后,可以向用戶發(fā)出與該用戶相關(guān)并且要結(jié)合代表該用戶執(zhí)行程序所使用的一個或多個請求識別符(例如,密鑰、令牌、用戶名、密碼等)。在其它實施方案中,可以提供除交互請求管理器130外的其它模塊以執(zhí)行與程序執(zhí)行服務(wù)100的預(yù)訂和/或注冊服務(wù)有關(guān)的各種操作。在某些實施方案中,由一或多個物理或虛擬計算系統(tǒng)執(zhí)行或具體實施交互請求管理器130。例如,在某些實施方案中,具有包括CPU、I/O組件、存儲裝置和存儲器的組件的服務(wù)器計算系統(tǒng)可以用來執(zhí)行交互請求管理器130。I/O組件包括顯示器、到網(wǎng)絡(luò)128的網(wǎng)絡(luò)連接、計算機可讀介質(zhì)驅(qū)動器和其它I/O裝置(例如,鍵盤、鼠標、揚聲器等)。交互請求管理器130的實施方案可以作為一個或多個可執(zhí)行程序模塊存儲在服務(wù)器的存儲器中,并且交互請求管理器130可通過網(wǎng)絡(luò)128與計算節(jié)點112 (例如,物理計算系統(tǒng)116和/或VM120)進行交互。交互請求管理器130可經(jīng)由網(wǎng)絡(luò)108從用戶接收對程序執(zhí)行服務(wù)100的計算資源的請求。圖2A是被配置用于管理對代表用戶執(zhí)行程序的請求的交互請求管理器130的實施方案的說明性組件的方框示意圖。在這個實施方案中,交互請求管理器包括資源生成模塊204、資源調(diào)度模塊208、監(jiān)控和報告模塊212以及記賬模塊216。資源生成模塊204從用戶接收對程序執(zhí)行服務(wù)100的計算資源的請求,例如生成一個或多個計算節(jié)點以管理和預(yù)約可用于在使用時段期間執(zhí)行用戶程序的計算資源的請求。用戶可以請求程序執(zhí)行計算節(jié)點立即可用、可以請求在未來時間生成程序執(zhí)行計算節(jié)點或可以請求基于其它條件生成程序執(zhí)行計算節(jié)點??梢杂少Y源生成模塊204以各種方式接收對程序執(zhí)行計算節(jié)點的請求。例如,可直接從用戶(例如,經(jīng)由由程序執(zhí)行服務(wù)提供的交互控制臺或其它GUI)、從自動開始執(zhí)行其它程序或其自身的其它實例的用戶的執(zhí)行程序、從編程工具(例如,命令行工具、集成開發(fā)環(huán)境(例如,Eclipse)等)、從經(jīng)由由程序執(zhí)行服務(wù)提供的應(yīng)用編程接ロ(“API”)(例如,使用Web服務(wù)的API)與交互請求管理器進行交互的程序等等接收請求。對計算節(jié)點的請求可以包括計算節(jié)點的數(shù)量和/或類型、要使用的計算節(jié)點的最小和/或最大數(shù)量、在其期間保證計算節(jié)點的可用性的使用時段、請求的到期時間等。請求可以指定在使用時段期間僅在生成的計算節(jié)點上執(zhí)行特定程序。對計算節(jié)點的請求可以包括其它類型的偏好、需求和/或限制(例如,存儲容量或網(wǎng)絡(luò)帶寬的量、節(jié)點的地理和/或邏輯位置、終止條件等)。在某些實施方案中,請求包括用戶程序,并且資源生成模塊204自動提供基礎(chǔ)結(jié)構(gòu)資源使得可由程序執(zhí)行服務(wù)100執(zhí)行用戶程序。例如,資源生成模塊204可以自動配置虛擬化環(huán)境,其可是包括用于用戶程序的應(yīng)用軟件堆棧以及用于執(zhí)行用戶程序的一個或多個基礎(chǔ)結(jié)構(gòu)服務(wù)的運行時環(huán)境。虛擬化環(huán)境可包括用戶可選擇的操作系統(tǒng)(例如,Linux、Windows等)、應(yīng)用服務(wù)器(例如,Apache Tomcat)和系統(tǒng)或應(yīng)用配置等。虛擬化環(huán)境可被配置來寄宿在特定URL處?;A(chǔ)結(jié)構(gòu)服務(wù)可包括但不限于:負載平衡器,其用于跨請求的計算資源分布工作量(如應(yīng)用流量);負載調(diào)節(jié)器,其響應(yīng)于負載或需求變化而調(diào)節(jié)計算資源;監(jiān)控接ロ,其允許用戶監(jiān)控程序、數(shù)據(jù)存儲資源(例如,可伸縮容量塊存儲裝置)等的執(zhí)行。在某些實施方案中,用戶可能夠選擇由程序執(zhí)行服務(wù)100提供且可包括在虛擬化環(huán)境中的一個或多個程序或服務(wù)。例如,用戶可能夠從多個數(shù)據(jù)庫模型(例如,關(guān)系數(shù)據(jù)庫、SQL數(shù)據(jù)庫、Oracle數(shù)據(jù)庫等)中進行選擇。在某些實施方案中,基礎(chǔ)結(jié)構(gòu)服務(wù)可被自定義用于用戶而非作為程序執(zhí)行服務(wù)100的多個用戶之間共享的資源。例如,在某些這類實施方案中,負載平衡器可被單獨自定義用于用戶應(yīng)用而非在程序執(zhí)行服務(wù)100的多個用戶之間被共享或分布。在某些實施方案中,虛擬化環(huán)境可被配置來允許用戶應(yīng)用產(chǎn)生進程線程或打開用于與其它應(yīng)用進行通信的任何合適端ロ(例如,除端ロ 80外的端ロ)。例如,虛擬化環(huán)境可以支持超文本傳輸協(xié)議安全端ロ(HTTPS)。交互請求管理器130的特定實施方案的可能優(yōu)點是用戶可以僅把自定義應(yīng)用上傳到程序執(zhí)行服務(wù)100,且接著交互請求管理器130可生成包括用來在程序執(zhí)行服務(wù)100上執(zhí)行用戶自定義應(yīng)用的資源和應(yīng)用堆棧的虛擬化環(huán)境。使得能夠執(zhí)行用戶程序所需的與交互請求管理器130的用戶交互量范圍可以從相對少的交互(例如,與使用JavaWAR文件上傳程序差不多)到相對高度的交互(例如,用戶可以自定義大致上虛擬化環(huán)境的所有方面)。因此,交互請求管理器130的實施方案可以提供虛擬化環(huán)境的相對高度的靈活性和可自定義能力。在某些實施方式中,程序執(zhí)行服務(wù)100 (或其它提供者)可以使ー個或多個標準或默認虛擬化環(huán)境可供服務(wù)100的用戶使用。對程序執(zhí)行容量的請求可以指定使用時段,在該使用時段期間可使計算資源可用于用戶。在某些實施方式中,程序執(zhí)行服務(wù)100可以對用戶提供在使用時段期間請求的計算資源將可用的保證。在不同實施方案中,可以以不同方式指定使用時段。例如,使用時段可以指示在開始時間開始并且在到期時間結(jié)束的指定持續(xù)時間(例如,小時、天、周、月、年等數(shù)目)。開始時間和/或到期時間可以包括一天中的時間(例如,早上7:00)和日期(例如,2010年I月23日)。開始時間可在某個未來時間,例如未來的一小時或數(shù)小時、一天或數(shù)天、一周或數(shù)周或者一年或數(shù)年。在某些情況下,未來使用時段的開始時間可以比請求(或請求的確認)時間至少晚特定時段,例如未來的至少ー小時、一天、一周、一月或更長時間。在交互請求管理器130的某些實施方式中,延遲時段可以發(fā)生在由交互請求管理器130接收到對計算節(jié)點的請求的時間與準許該請求的時間或?qū)⒋_認提供給用戶的時間之間。例如,延遲時段可能是因由交互請求管理器130或程序執(zhí)行服務(wù)100執(zhí)行的各種處理操作、管理操作、會計操作等而發(fā)生。在某些這類實施方式中,請求的使用時段指的是在這些延遲時段被考慮之后(或大致在其之后)的時段。例如,在特定實施方式中,延遲時段可以是數(shù)秒、數(shù)分鐘或幾小時。在特定的此類實施方式中,請求的未來使用時段的開始時間可以是超過這樣的延遲時段的未來時間。在交互請求管理器130的特定其它實施方式中,開始時間可以是由程序執(zhí)行服務(wù)100提交、接收或準許用戶請求的時間。在某些情況下,請求可以指示使用時段直到被用戶明確終止才到期(例如,可以不設(shè)置到期時間)。持續(xù)時間可以在從一小時到一周、一周到一月、一月或數(shù)月、一年或數(shù)年或某個其它持續(xù)時間的范圍中。在某些實施方案中,使用時段可以包括上述(或其它)因素的組合以便對用戶提供調(diào)度計算機資源中的高度靈活性。在某些情況下,在程序服務(wù)100生成滿足用戶請求的計算節(jié)點之后,用戶可對程序或一個或多個計算節(jié)點的設(shè)置進行ー個或多個更改。例如,用戶可以改變與ー個或多個計算節(jié)點相關(guān)的存儲裝置或網(wǎng)絡(luò)帶寬的量或類型、可以改變與ー個或多個計算節(jié)點相關(guān)的使用時段或終止條件、可以終止程序的執(zhí)行等。用戶可以各種方式請求ー個或多個更改,如本文所述。例如,用戶可經(jīng)由⑶1、命令行工具、集成開發(fā)環(huán)境(例如,Eclipse)、API調(diào)用等請求ー個或多個更改。在由資源生成模塊204接收到對計算節(jié)點的請求之后,資源調(diào)度模塊208可調(diào)度和分配計算節(jié)點以滿足請求。例如,在接收到對程序執(zhí)行容量的請求之后,資源調(diào)度模塊208可以確定用于程序執(zhí)行的ー個或多個計算節(jié)點112。在某些實施方案中,即使請求是針對未來的可用性,也在請求之時執(zhí)行對要使用的計算節(jié)點112的確定。在其它實施方案中,計算節(jié)點的確定推遲到后來某個時間(例如,在使用時段開始之前),使得確定可基于那時可用的信息。資源調(diào)度模塊208可以分配來自計算節(jié)點112的一個或多個計算節(jié)點以供用戶在請求的使用時段期間利用。在某些實施方案中,分配ー個或多個特定計算節(jié)點112(例如,ー個或多個特定物理計算節(jié)點116和/或虛擬計算節(jié)點120)以供用戶(或授權(quán)用戶)在整個使用時段期間優(yōu)先使用。在其它實施方案中,資源調(diào)度模塊208可以分配來自計算節(jié)點池的計算節(jié)點,而非把特定計算節(jié)點分配給特定用戶用于使用時段。計算節(jié)點池可以包括有足夠資源用于滿足用戶或授權(quán)用戶的程序執(zhí)行請求的適量計算節(jié)點。在某些這類實施方案中,在使用時段期間接收到執(zhí)行ー個或多個程序的請求之后,可以從計算節(jié)點池中選擇足以執(zhí)行該ー個或多個程序的適量計算節(jié)點,并且在選定節(jié)點上開始程序執(zhí)行。在選定量的計算節(jié)點不再用于執(zhí)行請求之后(例如,在請求的執(zhí)行終止和/或完成之后),可將這些計算節(jié)點返回到計算節(jié)點池以供用戶或其它授權(quán)用戶在使用時段期間使用。在某些實施方式中,分配計算節(jié)點池的節(jié)點以供用戶(或授權(quán)用戶)專用、排他使用或優(yōu)先使用。在某些這類實施方式中,用戶(或授權(quán)用戶)未在使用的計算節(jié)點池的節(jié)點可以分配給其他用戶用于程序執(zhí)行,并且如果用戶(或授權(quán)用戶)需要這些節(jié)點來滿足請求的容量,那么可以終止其他用戶的程序。在使用時段期間,用戶(或授權(quán)用戶)可以把對在分配的計算節(jié)點上執(zhí)行ー個或多個程序的請求提交到交互請求管理器130。程序執(zhí)行請求可以包括用于開始ー個或多個程序的執(zhí)行的各種信息,如要執(zhí)行的程序的可執(zhí)行或其它副本、先前為執(zhí)行而注冊或以其它方式供應(yīng)的程序的指示以及要同時執(zhí)行的程序?qū)嵗臄?shù)量(例如,表示成實例的單個希望數(shù)量、希望實例的最小和最大數(shù)量等)。請求可以指定用于執(zhí)行程序的計算節(jié)點的數(shù)量和/或類型、要使用的計算節(jié)點的最小和/或最大數(shù)量、請求的到期時間、執(zhí)行的優(yōu)選執(zhí)行時間和/或時段等。請求可以包括對于執(zhí)行一個或多個程序的其它類型的偏好和/或需求(例如,資源分配、執(zhí)行的地理和/或邏輯位置、執(zhí)行與其它程序和/或計算節(jié)點的接近度、時間相關(guān)的條件、終止條件等)。資源調(diào)度模塊208可以以不同方式(包括基于請求中指定或以其它方式指定的針對程序和/或相關(guān)用戶的任何偏好、限制和/或需求)確定哪些分配的計算節(jié)點要用于執(zhí)行每個程序?qū)嵗@?,如果確定了用于執(zhí)行程序?qū)嵗膬?yōu)選和/或所要資源(例如,存儲器和/或存儲裝置;CPU類型、周期或其它性能度量;網(wǎng)絡(luò)容量;平臺類型等)的條件,那么用于執(zhí)行程序?qū)嵗倪m當計算節(jié)點的確定可以至少部分基于計算節(jié)點是否具有可用于滿足這些資源條件的足夠資源。在使用時段期間,由資源生成模塊204接收到的代表用戶或授權(quán)用戶在分配的計算節(jié)點上執(zhí)行程序的請求可以導(dǎo)致在分配的計算節(jié)點中的ー個或多個上開始程序執(zhí)行。在某些情況下,可以在使用時段期間接收足夠的對程序執(zhí)行的請求使得所有分配的計算節(jié)點是在使用中(例如,執(zhí)行程序)。在使用時段期間接收到的對程序執(zhí)行的另外的請求可以被拒絕,或者可以被資源調(diào)度模塊208保留或排入隊列直到ー個或多個節(jié)點變得可用為止。在某些實施方案中,資源調(diào)度模塊208可以執(zhí)行關(guān)于滿足請求的ー個或多個管理操作,例如強制執(zhí)行與請求相關(guān)的使用時段或其它限制、釋放計算資源來滿足請求、授權(quán)和/或認證請求和/或請求用戶等。例如,在某些情況下,來自用戶的請求可以指定在使用時段期間僅特定用戶被授權(quán)可以訪問分配的計算節(jié)點。在某些情況下,來自用戶的請求可以指定在使用時段期間僅在分配的節(jié)點上執(zhí)行ー個或多個指定程序。其它限制可包括對程序執(zhí)行持續(xù)時間的限制、對在程序執(zhí)行期間發(fā)生的費用的限制等。ー個或多個上述限制(或其它限制)的組合可以由用戶指定并由交互請求管理器130在允許訪問分配的計算節(jié)點之前檢查。在某些實施方式中,在使用時段到期之后,資源調(diào)度模塊208釋放分配的計算節(jié)點(例如,專用計算節(jié)點或計算節(jié)點池中的節(jié)點)以供其他用戶使用。在某些這類實施方式中,終止在使用時段到期時執(zhí)行的程序。在其它實施方式中,不終止此類執(zhí)行的程序并且允許其繼續(xù)執(zhí)行直到更高優(yōu)先級的用戶請求訪問計算節(jié)點為止。在圖2A所示的實施方案中,監(jiān)控和報告模塊212在使用時段期間監(jiān)控和追蹤分配的計算節(jié)點的使用并且向用戶報告有關(guān)使用的信息和統(tǒng)計數(shù)據(jù)。例如,監(jiān)控和報告模塊212可以追蹤在分配的計算節(jié)點上執(zhí)行程序的用戶的使用模式。使用模式可包括訪問節(jié)點的用戶的數(shù)量或身份、程序執(zhí)行的開始/結(jié)束時間和持續(xù)時間和/或其他用戶指定模式或診斷。在某些此類實施方案中,監(jiān)控和報告模塊212可以把交互反饋(包括例如何時程序可能在計算節(jié)點上執(zhí)行和/或要執(zhí)行多久、實際或預(yù)測的節(jié)點需求等的指示)提供給用戶。在某些實施方案中,監(jiān)控和報告模塊212可生成詳述或匯總使用統(tǒng)計數(shù)據(jù)的報表并經(jīng)由電子郵件把該報表傳達給用戶或提供經(jīng)由Web服務(wù)的對報表、使用統(tǒng)計數(shù)據(jù)或交互反饋的訪問。某些程序執(zhí)行服務(wù)100可收費,使得服務(wù)代表用戶執(zhí)行程序或分配計算資源來獲取由用戶支付的ー筆或多筆費用。在某些收費服務(wù)中,交互請求管理器130可以可選地包括圖2A中示意地示出的記賬模塊216。例如,在某些實施方案中,可以基于被分配用于代表用戶執(zhí)行一個或多個程序的程序執(zhí)行容量的量和/或類型(如基于被分配用于執(zhí)行用戶的程序的處理單元的數(shù)量、存儲器的量、存儲裝置的量、網(wǎng)絡(luò)資源的量等中的ー項或多項)對用戶收取費用。在某些實施方案中,費用可以基于其它因素,如用來執(zhí)行程序的計算資源的各種特征,例如基于CPU能力或性能、平臺類型(例如,32位、64位等)等。在某些實施方案中,可以基于多種使用因素(如毎次使用服務(wù)的價格、使用計算服務(wù)的單位時間的價格、每個使用的存儲裝置的價格、每個傳入和/或傳出的數(shù)據(jù)的價格等)收取費用。費用可以基于諸如與程序執(zhí)行容量請求有關(guān)的各種其它因素和/或與執(zhí)行程序有關(guān)的各種特性(例如,執(zhí)行連續(xù)性、容錯等)。在至少某些實施方案中,程序執(zhí)行服務(wù)可以提供用于代表多個用戶執(zhí)行程序的各種服務(wù)或功能級別、類型和/或等級中的一個或多個,且在某些這類實施方案中,各種費用可以與各種服務(wù)級別、類型和/或等級相關(guān)。記賬模塊216可監(jiān)控和追蹤計算機資源的使用并計算應(yīng)收取的使用費??梢詫τ脩羰杖∮糜陬A(yù)約計算容量的固定費用支付(例如,預(yù)付或周期性地開賬単),且在某些情況下對用戶收取其它使用費(例如,與各種資源(如電、物理機柜空間、網(wǎng)絡(luò)利用等)的使用相關(guān)的可變費用)。例如,當提出在使用時段期間利用計算資源的請求時或當程序執(zhí)行服務(wù)100準許該請求時,可以對提出請求的用戶收取預(yù)約費。預(yù)約費可以基于例如請求的資源量、使用時段的開始時間和/或持續(xù)時間、服務(wù)是否將被需要來購買額外計算硬件來滿足請求等。例如,如果開始時間是在不久的將來,那么預(yù)約費可以比開始時間是在更遠的將來的情況下更高。此外,可以對用戶(或授權(quán)用戶)收取針對在使用時段期間利用資源的使用費。例如,可以基于例如程序執(zhí)行的持續(xù)時間、用來執(zhí)行程序的資源的類型等對請求在使用時段期間在分配的計算節(jié)點上執(zhí)行程序的授權(quán)用戶收取使用費。如上文論述,各種類型或級別的費用安排是有可能的。例如,可以不對請求用于立即使用的按需資源的用戶收取預(yù)約費,但是可以對其收取比對支付預(yù)約費以預(yù)約用于未來使用時段的資源的用戶收取的使用費更高的使用費。記賬模塊216可以追蹤使用、計算適當費用和開賬單給用戶和/或授權(quán)用戶(或把記賬信息提供給會計模塊或服務(wù))。在某些情況下,用戶請求可以指示把授權(quán)用戶產(chǎn)生的某些或所有使用費開賬單給用戶而非授權(quán)用戶。在某些此類情況下,記賬模塊216可以適當?shù)卦谟脩艉褪跈?quán)用戶之間進行費用分配??膳c圖2A所示不同地配置交互請求管理器130。例如,可組合、重新安排、添加或刪除由所示模塊提供的各種功能。在某些實施方案中,額外或不同的處理器或模塊可以執(zhí)行參考圖2A中所示的示例性實施方案描述的某些或所有功能。許多實施方式變化是有可能的。雖然按照程序執(zhí)行容量的管理進行了大致描述,但是在其它實施方案中,交互請求管理器130可被配置來管理供多個用戶使用的額外或替代類型的計算相關(guān)資源和對這些計算相關(guān)資源的可用性提供靈活的保證。這些資源可以包括ー個或多個以下項:持久性數(shù)據(jù)存儲能力(例如,在非易失性存儲器裝置如硬盤驅(qū)動器上);臨時數(shù)據(jù)存儲能力(例如,在易失性存儲器如RAM上);消息排隊和/或傳遞能力;其它類型的通信能力(例如,網(wǎng)絡(luò)套接字、虛擬通信電路等);數(shù)據(jù)庫管理能力;專用帶寬或其它網(wǎng)絡(luò)相關(guān)資源;非網(wǎng)絡(luò)帶寬;輸入裝置能力;輸出裝置能力;CPU周期或其它指令執(zhí)行能力;等。圖2B是示意地示出了用戶計算系統(tǒng)104a與程序執(zhí)行服務(wù)100的交互請求管理器130之間的示例性交互的網(wǎng)絡(luò)圖。程序執(zhí)行服務(wù)100可把計算資源提供給多個用戶計算系統(tǒng)104a、104b、...、104n。在這個說明性示例中,程序執(zhí)行服務(wù)100對用戶計算系統(tǒng)104a、
104b.....104n提供API以用編程方式與交互請求管理器130進行交互。圖2B說明性地
示出了用戶計算系統(tǒng)104a使用請求API傳達對在程序執(zhí)行服務(wù)100的計算資源上執(zhí)行程序的請求。請求API (I)是經(jīng)由網(wǎng)絡(luò)108傳達并且(2)是由程序執(zhí)行服務(wù)100的交互請求管理器130接收。請求API可包括關(guān)于用戶的請求的信息,例如用戶的程序(例如,要執(zhí)行的程序的可執(zhí)行或其它副本或先前為執(zhí)行而注冊或以其它方式供應(yīng)的程序的指示等)、計算節(jié)點的數(shù)量和/或類型、要使用的計算節(jié)點的最小和/或最大數(shù)量、請求在其期間計算節(jié)點的可用性(或計算節(jié)點被保證可用)的使用時段、請求的到期時間等。請求API可包括關(guān)于請求的其它信息,例如與用戶程序或用戶對計算資源的需求有關(guān)的偏好、需求和/或限制。例如,請求API可包括關(guān)于在使用時段期間準許哪些用戶訪問計算資源、可在使用時段期間執(zhí)行哪個程序(或哪些程序)、存儲容量或網(wǎng)絡(luò)帶寬的量、節(jié)點的地理和/或邏輯位置、終止條件等的信息。在圖2B所示的示例中,交互請求管理器130經(jīng)由網(wǎng)絡(luò)108傳達作為由用戶計算系統(tǒng)104a接收的(4)的確認API (3)。確認API可包括與在請求的使用時段期間(或在不同的使用時段期間)程序執(zhí)行服務(wù)100是否可準許請求(全部或部分)有關(guān)的信息。確認API還可以包括與用戶請求相關(guān)且要在使用時段期間結(jié)合訪問分配的計算資源而使用的一個或多個請求識別符(例如,密鑰、令牌、用戶名、密碼等)。確認API可包括其它信息,例如確認可滿足用戶的偏好、需求和/或限制的信息。圖2B說明性地示出了用戶計算系統(tǒng)104a經(jīng)由API與程序執(zhí)行服務(wù)100的交互請求管理器130以編程方式進行交互。程序執(zhí)行服務(wù)100可經(jīng)由API從其它用戶計算系統(tǒng)(例
如,用戶計算系統(tǒng)104b.....104n)接收對服務(wù)的計算資源的可用性的請求并且可經(jīng)由API
把確認傳達給其它用戶計算系統(tǒng)(在圖2B的說明性示例中未示出這樣的請求和確認)。交互請求管理器130 (或其它合適組件)可調(diào)度來自多個用戶計算系統(tǒng)的請求并且可在各個請求的使用時段期間分配計算資源。程序執(zhí)行服務(wù)100與用戶計算系統(tǒng)之間的其它類型的編程交互(此外或替代地)是有可能的。例如,可直接從用戶(例如,經(jīng)由由程序執(zhí)行服務(wù)提供的交互控制臺或其它GUI)、從自動開始執(zhí)行其它程序或其自身的其它實例的用戶的執(zhí)行程序等接收請求。作為用戶計算系統(tǒng)104a與程序執(zhí)行服務(wù)100的交互請求管理器130之間的交互的額外說明性示例,用戶可以請求交互請求管理器130生成用于用戶程序的應(yīng)用容器。使用請求API (1),用戶可諸如經(jīng)由Java WAR文件上傳程序。用戶可使用Web瀏覽器、命令行工具或集成開發(fā)環(huán)境上傳程序。程序可以是用戶希望的任何應(yīng)用。例如,程序可以是Web應(yīng)用。接著,交互請求管理器130可接收程序(例如,請求API (2))。接著,交互請求管理器30可以通過自動生成用于用戶程序的應(yīng)用容器來處理用戶請求。應(yīng)用容器可包括使用戶程序能夠可伸縮和容錯的用于用戶的其它服務(wù)。在某些實施方案中,交互請求管理器30在沒有來自用戶的進一步輸入的情況下自動生成應(yīng)用容器(包括基礎(chǔ)結(jié)構(gòu)服務(wù))。在其它實施方案中,用戶可選擇(例如,通過選擇和/或配置包括在容器中的基礎(chǔ)結(jié)構(gòu)服務(wù))對應(yīng)用容器的生成施加控制度??蓜?chuàng)建代表用戶生成應(yīng)用堆棧、自動伸縮、負載平衡、版本控制、存儲和/或其它服務(wù)的應(yīng)用容器。例如,交互請求管理器130可以生成Linux操作系統(tǒng)、ApacheTomcat服務(wù)器、Oracle關(guān)系數(shù)據(jù)庫的實例以及一個或多個服務(wù),例如負載平衡、監(jiān)控和自動伸縮,用于執(zhí)行用戶程序。接著,交互請求管理器130可以經(jīng)由確認API (3)和⑷向用戶確認應(yīng)用容器的創(chuàng)建。在接收到確認API (4)之后,用戶可以在本地改變程序。例如,用戶可以使用集成開發(fā)環(huán)境在本地更新和/或測試應(yīng)用并且可以(例如,經(jīng)由后續(xù)請求API (I)、(2))再次把更新的程序發(fā)送到交互請求管理器130。如上文論述,交互請求管理器130可以(在具有或沒有進ー步的用戶輸入的情況下)自動生成或更新用于修訂的程序的應(yīng)用容器。在生成應(yīng)用容器之后,用戶可改變由交互請求管理器130生成的服務(wù)。用戶可以在用戶程序的執(zhí)行開始之前或之后使用網(wǎng)頁、交互控制臺等進行這些更改。例如,用戶可以優(yōu)選Windows操作系統(tǒng)而非Linux操作系統(tǒng)或優(yōu)選Microsoft SQL數(shù)據(jù)庫而非Oracle數(shù)據(jù)庫并且可例如使用API或交互控制臺請求交互請求管理器130進行這些更改。作為另ー示例,用戶可能希望改變Apache Tomcat服務(wù)器實例的設(shè)置(如使用的端ロ)并且使用例如API或交互控制臺請求更改。作為另ー示例,用戶可以優(yōu)選關(guān)掉負載平衡并且可請求交互請求管理器130停用負載平衡。因此,用戶可以請求任何類型的希望的變化,并且交互請求管理器130可嘗試實施用戶希望的變化。用戶還可與任何其他用戶共享應(yīng)用容器。用戶還可以隨時請求刪除用戶程序和取消分配應(yīng)用容器的計算資源。如本文論述,應(yīng)用容器還可以包括用于用戶程序的監(jiān)控服務(wù)。監(jiān)控服務(wù)可監(jiān)控應(yīng)用容器內(nèi)的用戶程序和/或服務(wù)的性能。例如,監(jiān)控服務(wù)可以監(jiān)控負載平衡和/或自動伸縮服務(wù)的性能或監(jiān)控服務(wù)器的性能。監(jiān)控服務(wù)可以把性能的報告提供給用戶。如果在執(zhí)行用戶程序期間發(fā)生任何問題,那么監(jiān)控服務(wù)還可采取糾正措施。例如,如果監(jiān)控服務(wù)檢測到用戶程序沒有響應(yīng)(例如,ー個或多個計算節(jié)點已出現(xiàn)故障),那么監(jiān)控服務(wù)可重啟該ー個或多個計算節(jié)點和/或請求額外計算節(jié)點來接替有故障的節(jié)點。作為另ー示例,如果對用戶應(yīng)用的需求增加使得存在影響用戶程序的性能的風險,那么監(jiān)控服務(wù)可代表用戶程序分配額外計算資源和/或向用戶通知該分配。用戶可向交互請求管理器130指定如何或何時被通知。例如,用戶可以使用API或交互控制臺指定當出現(xiàn)任何錯誤時交互請求管理器130把電子郵件消息傳達給用戶。作為另ー示例,用戶可以指定交互請求管理器130把關(guān)于任何錯誤的電子郵件消息傳達給用戶并且在采取任何糾正措施之前從用戶接收授權(quán)。用戶可以任何希望的方式配置通知設(shè)置。前述g在作為用戶與交互請求管理器130的各個實施方案之間的交互的類型的說明性示例且并非g在限制。圖3A和圖3B是示意地示出了交互請求管理器例程300的示例性實施方案的流程圖。在某些實施方式中,例程300可通過參考圖1和圖2描述的程序執(zhí)行服務(wù)100的交互請求管理器130的實施方案提供。示例性例程300是按照如下情形描述的:第一用戶請求在使用時段期間的程序執(zhí)行容量(例如,在程序執(zhí)行服務(wù)的ー個或多個計算節(jié)點上執(zhí)行程序)(參見例如圖3A),并且第二用戶請求對在使用時段期間的程序執(zhí)行容量進行更改(參見例如圖3B)。如下文將論述的,第一用戶和第二用戶不需要是不同用戶并且可指同一用戶。示例性例程300 g在說明而非限制交互請求管理器130的各個方面。參考圖3A,在方框304處,由交互請求管理器130從第一用戶接收對在使用時段期間由程序執(zhí)行服務(wù)100執(zhí)行程序的請求。如上文論述,請求可以包括程序、計算節(jié)點的數(shù)量和/或類型、要使用的計算節(jié)點的最小和/或最大數(shù)量、在其期間要保證計算節(jié)點的可用性的未來使用時段、請求的到期時間等。請求可以指定在使用時段期間僅準許特定用戶訪問計算節(jié)點或在使用時段期間僅在計算節(jié)點上執(zhí)行特定程序。對計算資源的請求可以包括其它類型的偏好、需求和/或限制(例如,存儲器或存儲容量的量、網(wǎng)絡(luò)帶寬、節(jié)點的地理和/或邏輯位置、終止條件等)。在方框308處,交互請求管理器130確定是否可滿足請求。例如,在某些情況下,程序執(zhí)行服務(wù)100可以具有用于滿足請求的足夠容量,或者使用時段是在足夠久遠的未來,使得可獲取額外計算資源(如果需要)。如果可滿足請求,那么在方框320處把可滿足請求的確認提供給第一用戶。例如,可以經(jīng)由電子郵件給第一用戶傳達消息,或者程序執(zhí)行服務(wù)可以經(jīng)由Web服務(wù)或經(jīng)由由程序執(zhí)行服務(wù)提供的交互控制臺或其它GUI提供確認??梢越?jīng)由如參考圖2B論述的確認API提供確認。如果無法全部或部分地滿足請求,那么例程300繼續(xù)進行到方框312,在方框312,交互請求管理器嘗試確定是否可與所請求不同地全部或部分地滿足請求。例如,例程300可以確定可在不同的使用時段期間滿足請求或可在請求的使用時段期間部分地(例如,使用比所請求少的節(jié)點)滿足請求。在某些情況下,在方框312處,例程300可以確定可取決于ー個或多個額外事件在請求的使用時段期間滿足請求。例如,例程300可以確定可取決于由程序執(zhí)行服務(wù)獲取足夠的額外計算資源并取決于在請求的使用時段開始之前已交付和安裝這些額外資源來滿足請求。在方框316處,例程300把關(guān)于與請求有關(guān)的ー個或多個可能的修改或偶發(fā)事件的信息提供給第一用戶且接著例程300結(jié)束。例如,消息可以經(jīng)由電子郵件傳達給第一用戶,或者程序執(zhí)行服務(wù)可以經(jīng)由Web服務(wù)或經(jīng)由由程序執(zhí)行服務(wù)提供的交互控制臺或其它⑶I提供信息??梢越?jīng)由API提供信息(參見例如圖2B)。第一用戶可使用關(guān)于與請求有關(guān)的可能的修改或偶發(fā)事件的信息并且接著如果需要的話重新提交新請求。在所示實施方案中,如果可滿足請求,那么例程300繼續(xù)進行到方框324,在方框324,交互請求管理器生成包括用戶程序和用于在程序執(zhí)行服務(wù)上執(zhí)行該程序的合適基礎(chǔ)結(jié)構(gòu)的虛擬化環(huán)境(例如,應(yīng)用容器)。交互請求管理器確定可執(zhí)行虛擬化環(huán)境的一組計算節(jié)點。在某些實施方式中,用戶可以請求要用于執(zhí)行程序的計算節(jié)點的特定數(shù)量、地理分布等。計算節(jié)點組中計算節(jié)點的數(shù)量(和/或地理分布)可以但無需與用戶請求的計算節(jié)點的數(shù)量不同。例如,組中計算節(jié)點的數(shù)量可以小于請求的數(shù)量,因為如果在使用時段期間實際請求的計算節(jié)點的數(shù)量大于組中計算節(jié)點的數(shù)量,程序執(zhí)行服務(wù)也具有足夠的額外計算容量。在其它情況下,組中計算節(jié)點的數(shù)量可以大于請求的數(shù)量,以嘗試確保將存在足夠計算節(jié)點來可靠地滿足在使用時段期間的預(yù)期需求(例如,提供儲備節(jié)點,以防組中ー個或多個計算節(jié)點發(fā)生故障)。在不同實施方案中,用戶可對與虛擬化環(huán)境或節(jié)點組相關(guān)的設(shè)置(例如,存儲容量或網(wǎng)絡(luò)帶寬的量或類型、節(jié)點的地理和/或邏輯位置、終止條件等)進行ー個或多個更改。例程300可驗證可履行或滿足這ー個或多個更改。在方框328處,分配可供第一用戶在使用時段期間利用的計算節(jié)點組。如上文參考資源調(diào)度模塊208所論述的,分配的計算節(jié)點組可以包括特定計算節(jié)點或選自計算節(jié)點池的節(jié)點。參考圖3B,在使用時段期間,第二用戶可以進行與在已分配給第一用戶的計算節(jié)點上第一用戶的程序的執(zhí)行相關(guān)的ー個或多個更改。如上述,第二用戶可以但無需與第一用戶不同。在一個示例性情形中,第一用戶可能已請求執(zhí)行程序。在使用時段期間,第一用戶可提交對在計算節(jié)點上執(zhí)行的程序的設(shè)定的ー個或多個更改。在這個示例性情形中,第ニ用戶將與第一用戶是同一用戶。在某些這類情形中,第一用戶的請求可指示僅第一用戶(且沒有其他用戶)可對程序執(zhí)行或分配的計算節(jié)點進行更改。在其它示例性情形中,第二用戶可以是與第一用戶不同的用戶。例如,第一用戶的請求可以指示特定的第二用戶被授權(quán)進行相對于在使用時段期間在計算節(jié)點上執(zhí)行的程序的更改。在這個示例性情形中,第二用戶可是與第一用戶不同的用戶。例如,第一用戶可以是最初上傳并請求程序執(zhí)行容量的應(yīng)用開發(fā)者,而第二用戶可以是監(jiān)控正在進行的程序執(zhí)行的網(wǎng)絡(luò)管理員或應(yīng)用開發(fā)管理員。在另ー示例性情形中,第一用戶的請求可以指示程序執(zhí)行服務(wù)100的任何用戶皆可對在使用時段期間的程序執(zhí)行進行更改,前提是這個(第二)用戶要提交正確識別符信息。在此類情形中,第一用戶可以把識別符(例如,密鑰、令牌、密碼等)傳達給各第二用戶。接著,這些第二用戶中的任何一個將在請求在使用時段期間進行更改時使用程序識別符。在某些這類情形中,如果用戶請求了對在分配的計算節(jié)點上執(zhí)行的程序的更改但卻不具有(或未隨請求一起提交)程序識別符,那么交互請求管理器將拒絕請求。在方框336處,交互請求管理器可對第二用戶提供接ロ以使第二用戶能夠請求對被提供用于在計算節(jié)點上執(zhí)行程序的虛擬化環(huán)境進行ー個或多個更改。如上文論述,可以多種方式提供該接ロ。例如,可通過經(jīng)由交互控制臺或其它⑶1、命令行工具、網(wǎng)頁和集成開發(fā)環(huán)境等提供該接ロ。在方框340處,由交互請求管理器接收來自第二用戶的更改請求。例如,該請求可以是終止程序的執(zhí)行實例、啟動ー個或多個新實例來執(zhí)行程序、修改ー個或多個實例的運行時設(shè)置等。如上文論述,請求可以是更改分配的計算節(jié)點,例如資源分配的類型或量、執(zhí)行的地理和/或邏輯位置、時間相關(guān)條件、終止條件等。在方框344處,交互請求管理器確定是否可準許或滿足來自第二用戶的更改請求。例如,第一用戶的請求可能已指定對可能進行的對計算節(jié)點的更改施加ー個或多個要求或限制,并且如果第二用戶的請求不滿足某些或所有要求或限制,那么可以拒絕第二用戶的請求。在其它情況下,對計算節(jié)點的更改可能需要額外資源或計算節(jié)點,使得無法在第ニ用戶請求之時滿足第二用戶的請求。在這種情況下,在各個實施方案中,交互請求管理器可以拒絕第二用戶的請求或可以保留第二用戶的請求或把其排入隊列直到可產(chǎn)生供第二用戶使用的足夠計算節(jié)點為止。在某些實施方式中,交互請求管理器可以把有關(guān)何時可滿足請求的預(yù)計時間、可如何修改請求使得請求可被立即滿足等的信息提供給第二用戶。在方框348處,如果可滿足來自第二用戶的程序執(zhí)行請求,那么程序執(zhí)行服務(wù)在可能正在執(zhí)行第一用戶的程序的計算節(jié)點上實施ー個或多個更改。參考圖3A,例程300在方框352處繼續(xù)進行,在方框352處,交互請求管理器監(jiān)控和追蹤在被分配用于程序執(zhí)行的節(jié)點組上的程序執(zhí)行的使用。如參考監(jiān)控和報告模塊212論述的,交互請求管理器監(jiān)控在分配的計算節(jié)點上執(zhí)行程序的用戶(例如,第一用戶)的使用模式。使用模式可包括對分配的節(jié)點進行更改的用戶的數(shù)量或身份、程序執(zhí)行的開始/結(jié)束時間和持續(xù)時間和/或其它用戶指定的模式或診斷。在某些實施方案中,在方框352處,可以把交互反饋(包括例如可能是在何時在分配的計算節(jié)點上執(zhí)行程序和/或要執(zhí)行多久、對節(jié)點的實際或預(yù)測需求等的指示)提供給第一用戶或第二用戶。在某些實施方案中,可生成詳述或匯總使用統(tǒng)計數(shù)據(jù)的報表并經(jīng)由電子郵件或經(jīng)由由程序執(zhí)行服務(wù)提供的交互控制臺或其它GUI把報表提供給第一用戶。在程序執(zhí)行服務(wù)要收費的實施方案中,在方框356處,交互請求管理器(或其它會計或記賬管理器)可計算ー筆或多筆費用。例如,可以向第一用戶收取對于請求計算容量的預(yù)約費,并且可以向第一用戶或第二用戶收取針對在使用時段期間在分配的節(jié)點上執(zhí)行程序的使用費。在方框360處,可選地可由例程300的實施方案執(zhí)行其它服務(wù)。例如,可執(zhí)行包括在使用時段到期之后釋放計算節(jié)點以供其他用戶使用的各種內(nèi)務(wù)操作。接著,例程300繼續(xù)進行到方框364處并結(jié)束。圖3C是示意地示出了通過其交互請求管理器的實施方案可與用戶計算系統(tǒng)進行通信以用于確認對計算資源的請求的例程370的示例的流程圖。在某些實施方式中,可通過參考圖1和圖2描述的程序執(zhí)行服務(wù)100的交互請求管理器130的實施方案實施例程370。如參考圖3A的方框304和308論述的,交互請求管理器可從第一用戶接收對在使用時段期間的程序執(zhí)行容量的請求并且可確定是否可滿足該對程序執(zhí)行容量的請求。在圖3C的方框374處繼續(xù)進行,如果可滿足請求,那么交互請求管理器把確認提供給第一用戶。例如,如參考圖2B和圖3A的方框320論述的,確認可包括與在請求的使用時段期間(或在不同的使用時段期間)程序執(zhí)行服務(wù)是否可準許請求(全部或部分地)有關(guān)的信息。確認還可以包括與第一用戶的請求相關(guān)并且要結(jié)合在使用時段期間對計算資源進行更改而使用的一個或多個請求識別符(例如,密鑰、令牌、用戶名、密碼等)。確認可包括其它信息,例如確認可滿足用戶的偏好、需求和/或限制的信息。在某些實施方式中,經(jīng)由確認API傳達確認(參見例如圖2B)。在某些情況下,在確認請求之時(在方框374處)與使用時段開始之時之間第一用戶的程序執(zhí)行需求可以改變。在某些這類情況下,第一用戶可以把請求的修改提交給交互請求管理器。例如,修改的請求可以包括關(guān)于要執(zhí)行的修改的程序、計算節(jié)點的修改數(shù)量或與計算節(jié)點相關(guān)的設(shè)置、使用時段的修改的開始時間、終止時間和/或持續(xù)時間或第一用戶的其它偏好或需求的變化的信息。修改的請求可以是全部或部分地取消初始的請求。相應(yīng)地,在此類情況下,在方框378處,交互請求管理器可以從第一用戶接收修改的請求并且確定是否可(全部或部分地)滿足修改的請求。在方框382處,交互請求管理器把更新的確認提供給第一用戶,更新的確認可包含與在請求的使用時段期間(其可能已在修改的請求中被修改)程序執(zhí)行服務(wù)是否可準許修改的請求(全部或部分地)或在不同的使用時段期間程序執(zhí)行服務(wù)是否可準許修改的請求(全部或部分地)有關(guān)的信息。更新的確認還可以包括與第一用戶的修改的請求相關(guān)并且要結(jié)合在(可能更新的)未來使用時段期間對計算資源進行ー個或多個更改而使用的一個或多個更新的請求識別符(例如,密鑰、令牌、用戶名、密碼等)。更新的確認可包括其它信息,例如確認可滿足用戶的(可能更新的)偏好、需求和/或限制的信息。在某些實施方式中,更新的確認經(jīng)由確認API傳達到第一用戶(參見例如圖2B)。在方框386處,交互請求管理器可在使用時段期間從第二用戶接收對對分配給第一用戶的計算容量進行一個或多個更改的請求。如參考圖3B大致描述,交互請求管理器可以處理來自第二用戶的請求。例如,在某些實施方式中,從第二用戶接收的請求可以包括用于在方框374處(和/或如果從第一用戶接收到修改的請求那么在方框382處)傳達給第一用戶的分配的計算容量的請求識別符。圖4是示意地示出了通過其交互請求管理器的實施方案可與用戶計算系統(tǒng)進行通信以用于提供供用戶選擇的多個虛擬化環(huán)境(例如,應(yīng)用容器)的例程400的示例的流程圖。在某些實施方式中,可通過參考圖1和圖2描述的程序執(zhí)行服務(wù)100的交互請求管理器130的實施方案實施例程400。如參考圖3B的方框340論述的,交互請求管理器可被配置來接收與為用戶生成的虛擬化環(huán)境有關(guān)的至少一個更改。在圖4的方框404處繼續(xù)進行,交互請求管理器從第一用戶接收共享虛擬化環(huán)境的請求。例如,在交互請求管理器已生成用于第一用戶的虛擬化環(huán)境之后,第一用戶可以決定與其他用戶共享該虛擬化環(huán)境。為了啟用虛擬化環(huán)境共享,第一用戶可以把共享虛擬化環(huán)境的請求傳達給交互請求管理器。該請求可以指定要共享哪些虛擬化環(huán)境。在某些實施方式中,經(jīng)由請求API傳達請求(參見例如圖2B)。在示例性例程400的方框408處,交互請求管理器把虛擬化環(huán)境添加到虛擬化環(huán)境列表以創(chuàng)建虛擬化環(huán)境的更新的列表。更新的列表可以包括可以提供給程序執(zhí)行服務(wù)的其他用戶的虛擬化環(huán)境的列表。在某些情況下,更新的列表可以包括不僅由第一用戶而且由程序執(zhí)行服務(wù)和/或由程序執(zhí)行服務(wù)的其他用戶提供的虛擬化環(huán)境。某些虛擬化環(huán)境可以免費提供給用戶,而其它環(huán)境可收費才可用。更新的列表可以包括例如虛擬化環(huán)境的描述、生成虛擬化環(huán)境的用戶的名字、使用虛擬化環(huán)境的費用、對適合于與虛擬化環(huán)境一起使用的應(yīng)用的類型的推薦、到類似或有關(guān)虛擬化環(huán)境的鏈接、與虛擬化環(huán)境的性能有關(guān)的統(tǒng)計數(shù)據(jù)、虛擬化環(huán)境的屬性的設(shè)置等。在某些實施方式中,在交互請求管理器創(chuàng)建更新的列表之后,將確認經(jīng)由確認API傳達給第一用戶(參見例如圖2B)。在方框412處,交互請求管理器可以把應(yīng)用容器的更新的列表提供給程序執(zhí)行服務(wù)的第二用戶。第二用戶可與第一用戶相同或不同。在某些實施方式中,交互請求管理器經(jīng)由Web接口、GU1、API調(diào)用等把更新的列表提供給第二用戶。例如,第二用戶可以請求交互請求管理器在使用時段期間執(zhí)行程序(參見例如圖3A)。在請求過程期間,交互請求管理器可以提供虛擬化環(huán)境的更新的列表,使得第二用戶可請求應(yīng)將哪個虛擬化環(huán)境用于執(zhí)行第二用戶的應(yīng)用。在某些實施方式中,第二用戶可以提供用于執(zhí)行第二用戶的應(yīng)用的一個或多個偏好或需求,并且交互請求管理器可以推薦滿足某些或所有第二用戶的偏好或需求的一個或多個虛擬化環(huán)境。例如,第二用戶可以指示對第二用戶的應(yīng)用的預(yù)期需求、用戶的客戶的地理位置、希望的程序執(zhí)行容量(例如,CPU、存儲器、存儲裝置、帶寬等)等等。交互請求管理器可以識別匹配某些或所有第二用戶的偏好的一個或多個虛擬化環(huán)境并且把這個推薦提供給第二用戶。在某些情況下,交互請求管理器可以根據(jù)滿足第二用戶的偏好或需求的可能性對推薦的虛擬化環(huán)境進行排名或排序。在示例性例程400的方框412處,交互請求管理器可以從第二用戶接收對更新的列表中包括的至少一個虛擬化環(huán)境的選擇。在某些實施方式中,第二用戶可以在選擇之前或之后對一個或多個虛擬化環(huán)境進行至少一個更改。例如,第二用戶可以在把關(guān)于第二用戶的選擇的信息提供給交互請求管理器之前改變特定虛擬化環(huán)境的一個或多個設(shè)置。接著,交互請求管理器可以使用選定的虛擬化環(huán)境執(zhí)行第二用戶的應(yīng)用的實例(參見例如圖3A)。在某些實施方案中,在第二用戶已選擇至少一個虛擬化環(huán)境之后,可將費用提供給提供了選定的虛擬化環(huán)境的第一用戶。例如,如上文論述,可以向第二用戶收取用于使用至少一個選定的虛擬化環(huán)境執(zhí)行用戶的應(yīng)用的一筆或多筆費用(例如,預(yù)約費、使用費等)。一筆或多筆費用的一部分可以提供給第一用戶。例如,提供的費用可以是固定費用或向第二用戶收取的某些或所有費用的一定比例。提供的費用還可以是基于第二用戶已對至少一個選定的虛擬化環(huán)境進行的更改的數(shù)目、已選擇特定虛擬化環(huán)境的用戶的數(shù)量、特定虛擬化環(huán)境已存在或被使用的持續(xù)時間等的分級費用。在示例性例程400的某些實施方式中,第二用戶可以選擇改變選定的虛擬化環(huán)境。例如,第一用戶可能已提供基于例如Java的虛擬化環(huán)境,而第二用戶可以修改該環(huán)境使得其是基于另一編程語言(例如,Ruby)。第二用戶可以選擇與程序執(zhí)行服務(wù)的其他用戶共享包括由第二用戶進行的更改的經(jīng)過修改的虛擬化環(huán)境。第二用戶可以請求交互請求管理器與其他用戶共享這個虛擬化環(huán)境(參見例如方框404)并且(可選地)被提供使用費。例如,第三用戶可以選擇第一用戶的虛擬化環(huán)境,第一用戶的虛擬化環(huán)境的第二用戶的修改版本和/或由程序執(zhí)行服務(wù)和/或由其他用戶提供的虛擬化環(huán)境。相應(yīng)地,可以開發(fā)包括很多種虛擬化環(huán)境(免費和/或收費)的市場并且使其對程序執(zhí)行服務(wù)的用戶開放。在某些實施方案中,可提供被配置來管理用戶程序的執(zhí)行的計算系統(tǒng)。該系統(tǒng)可以包括被配置來管理程序執(zhí)行服務(wù)的用戶的程序的執(zhí)行的交互請求管理器組件。交互請求管理器組件可以被配置來從程序執(zhí)行服務(wù)的用戶接收生成用于在使用時段期間執(zhí)行用戶應(yīng)用的虛擬化環(huán)境的請求,該請求包括允許程序執(zhí)行服務(wù)至少部分基于用戶應(yīng)用來執(zhí)行程序的與用戶應(yīng)用相關(guān)的信息,程序執(zhí)行服務(wù)提供可被配置來執(zhí)行程序執(zhí)行服務(wù)的多個用戶的程序并生成虛擬化環(huán)境的多個計算節(jié)點,虛擬化環(huán)境包括一個或多個程序服務(wù),程序服務(wù)包括:(1)負載平衡器,其被配置來跨虛擬化環(huán)境的計算資源分布工作量,(2)監(jiān)控接口,其被配置來允許用戶監(jiān)控程序的執(zhí)行,(3)負載調(diào)節(jié)器,其被配置來響應(yīng)于對程序執(zhí)行的需求的變化而調(diào)節(jié)計算資源,和(4)多個數(shù)據(jù)庫管理服務(wù)。交互請求管理器組件還可以被配置來在一個或多個計算節(jié)點的組上執(zhí)行虛擬化環(huán)境的一個或多個實例、確定對虛擬化環(huán)境或?qū)υ趫?zhí)行虛擬化環(huán)境的一個或多個實例期間在一個或多個計算節(jié)點的組上執(zhí)行虛擬化環(huán)境的一個或多個實例的至少一個更改。交互請求管理器組件還可以被配置來在執(zhí)行虛擬化環(huán)境的一個或多個實例期間實施至少一個更改。在某些實施方式中,可以提供被配置來管理用戶程序的執(zhí)行的計算系統(tǒng)。該系統(tǒng)可以包括被配置來管理程序執(zhí)行服務(wù)的用戶的程序的執(zhí)行的交互請求管理器組件。交互請求管理器組件可以被配置來從第一用戶接收與程序執(zhí)行服務(wù)的用戶共享為第一用戶生成的第一虛擬化環(huán)境的請求、更新可供程序執(zhí)行服務(wù)的用戶選擇的虛擬化環(huán)境的列表以提供包括與第一虛擬化環(huán)境有關(guān)的信息的虛擬化環(huán)境的更新的列表,以及把虛擬化環(huán)境的更新的列表提供給程序執(zhí)行服務(wù)的用戶。交互請求管理器組件還可以被配置來從程序執(zhí)行服務(wù)的第二用戶接收對更新的列表中包括的第一虛擬化環(huán)境的選擇并生成用于第二用戶的第二虛擬化環(huán)境,第二虛擬化環(huán)境至少部分基于第一虛擬化環(huán)境。前面段落中描述的每個過程、方法和算法可以以由一個或多個計算機或計算機處理器執(zhí)行的代碼模塊的形式具體實施并且通過這樣的代碼模塊完全或部分地自動化。代碼模塊可以存儲在任何類型的非瞬時性計算機可讀介質(zhì)或計算機存儲裝置(如硬盤驅(qū)動器、固態(tài)存儲器、光盤等等)上。系統(tǒng)和模塊還可以作為生成的數(shù)據(jù)信號(例如,作為載波或者其它模擬或數(shù)字傳播信號的一部分)在多種計算機可讀傳輸介質(zhì)(包括基于無線和基于有線/電纜的介質(zhì))上傳輸,并且可以采取多種形式(例如,作為單用或復(fù)用模擬信號的一部分、或作為多個離散數(shù)字數(shù)據(jù)包或幀)??梢圆糠只蛉恳詫S秒娐返男问綄嵤┻^程和算法。公開的過程和過程步驟的結(jié)果可以永久或以其它方式存儲在任何類型的非瞬時性計算機存儲裝置(例如易失性或非易失性存儲裝置)中。上文描述的各個特征和過程可以獨立于彼此使用,或者可以以各種方式進行組合。所有可能的組合和子組合旨在落于本公開內(nèi)容的范圍內(nèi)。此外,在某些實施方式中可以省略特定方法或過程塊(方框)。本文描述的方法和過程也不限于任何特定順序,并且與其相關(guān)的塊或狀態(tài)可按其它適當順序執(zhí)行。例如,描述的塊或狀態(tài)可以按具體公開的次序外的次序執(zhí)行,或者多個塊或狀態(tài)可以組合成單個塊或狀態(tài)。示例性塊或狀態(tài)可以串行、并行或以某種其它方式執(zhí)行。塊或狀態(tài)可以添加到公開的示例性實施方案中或從其中移除。可以與所描述不同地配置本文描述的示例性系統(tǒng)和組件。例如,元件可以添加到公開的示例性實施方案中、從其中移除或與其相比而進行重新安排。除非另有特別說明或在如使用的上下文內(nèi)另外所理解,否則本文使用的條件語言(如尤其是“可”、“可能”、“可以”、“例如”等等)通常旨在表達特定實施方案包括而其它實施方案不包括特定特征、元件和/或步驟。因此,這樣的條件語言通常并非旨在暗示特征、元件和/或步驟是以任何方式對一個或多個實施方案所必需的或一個或多個實施方案必定包括用于在具有或沒有程序設(shè)計者輸入或提示的情況下決定是否包括這些特征、元件和/或步驟或其是否要在任何特定實施方案中被執(zhí)行的邏輯。術(shù)語“包括”(“comprising”、“including”)、“具有”(“having”)等等是同義的且以開放方式按包括之意使用,并且不排除額外元件、特征、動作、操作等等。此外,術(shù)語“或”是以其包括之意(而非以其排除之意)使用,使得當例如用來連接一系列元件時,術(shù)語“或”意指其中的一個、某些或所有元件。雖然已描述特定示例性實施方案,但是這些實施方案僅按舉例方式來呈現(xiàn),且并非旨在限制本文公開的發(fā)明的范圍。因此,前文描述中的任何部分并非旨在暗示任何特定特征、特性、步驟、模塊或塊是必要的或不可缺少的。實際上,本文描述的新穎方法和系統(tǒng)可以以多種其它形式具體實施;此外,可以在不脫離本文公開的本發(fā)明的精神的情況下對本文描述的方法和系統(tǒng)的形式進行各種省略、置換和改變。權(quán)利要求書和其等效物旨在涵蓋諸如將落于本文公開的特定發(fā)明的范圍和精神內(nèi)的形式或修改。
權(quán)利要求
1.一種用于動態(tài)管理對由程序執(zhí)行服務(wù)提供的計算容量的請求的計算機實施方法,所述方法包括: 在提供多個計算節(jié)點的程序執(zhí)行服務(wù)的控制下,其中每個所述計算節(jié)點可被配置來執(zhí)行所述程序執(zhí)行服務(wù)的多個用戶的ー個或多個程序, 從所述程序執(zhí)行服務(wù)的用戶接收生成用于在請求時段期間執(zhí)行用戶應(yīng)用的虛擬化環(huán)境的請求,所述請求包括與所述用戶應(yīng)用相關(guān)且允許所述程序執(zhí)行服務(wù)至少部分基于所述用戶應(yīng)用執(zhí)行程序的信息; 自動生成所述虛擬化環(huán)境,所述虛擬化環(huán)境包括由所述程序執(zhí)行服務(wù)提供的一個或多個程序服務(wù),所述程序服務(wù)包括:(I)負載平衡器,其被配置來跨所述多個計算節(jié)點中的一個或多個或者所述虛擬化環(huán)境的一個或多個實例分布工作量,(2)監(jiān)控接ロ,其被配置來允許所述用戶監(jiān)控所述程序的執(zhí)行,(3)負載調(diào)節(jié)器,其被配置來響應(yīng)于對所述程序的執(zhí)行的需求的變化而調(diào)節(jié)所述程序執(zhí)行服務(wù)的計算資源,和(4)多個數(shù)據(jù)庫管理服務(wù); 從所述程序執(zhí)行服務(wù)的所述多個計算節(jié)點確定可滿足所述用戶的所述請求的ー組計算節(jié)點; 在所述請求時段期間在所述ー組計算節(jié)點上執(zhí)行所述虛擬化環(huán)境的ー個或多個實例; 從所述用戶接收對所述虛擬化環(huán)境或?qū)υ谒稣埱髸r段期間在所述ー組計算節(jié)點上執(zhí)行所述虛擬化環(huán)境的所述ー個或多個實例進行至少ー個更改的請求;和在所述請求時段期間自動實施所述至少ー個更改。
2.根據(jù)權(quán)利要求1所述的方法,其還包括對所述用戶提供用于請求生成所述虛擬化環(huán)境或請求改變所述虛擬化環(huán)境的計算接ロ。
3.根據(jù)前述權(quán)利要求中任一項所述的方法,其中生成所述虛擬化環(huán)境的所述請求還包括對由所述程序執(zhí)行服務(wù)使用以下項中的一個或多個的請求:(I)操作系統(tǒng),(2)應(yīng)用服務(wù)器,(3) —個或多個計算節(jié)點,其具有所希望的程序執(zhí)行容量或地理分布,和(4)所述多個數(shù)據(jù)庫管理服務(wù)中的至少ー個。
4.根據(jù)前述權(quán)利要求中任一項所述的方法,其還包括: 自動識別所述一個或多個實例中的至少ー個的故障;和 自動啟動用于在所述ー組計算節(jié)點上執(zhí)行所述虛擬化環(huán)境的至少ー個新實例。
5.根據(jù)前述權(quán)利要求中任一項所述的方法,其還包括: 自動識別所述一組計算節(jié)點中的至少ー個的故障; 自動分配來自所述程序執(zhí)行服務(wù)的所述多個計算節(jié)點的至少ー個新計算節(jié)點;和 在所述至少一個新計算節(jié)點上自動執(zhí)行所述虛擬化環(huán)境的至少ー個新實例。
6.一種被配置來動態(tài)管理對計算服務(wù)的計算容量的請求的系統(tǒng),所述系統(tǒng)包括: 計算機存儲器,其被配置來存儲用于動態(tài)管理對計算服務(wù)的計算容量的請求的ー個或多個程序模塊,所述計算服務(wù)包括多個計算節(jié)點;和 交互請求管理器,其被配置來與所述計算機存儲器進行通信和執(zhí)行存儲在所述計算機存儲器中的所述ー個或多個程序模塊,所述程序模塊被配置來: 從用戶接收生成用于在使用時段期間執(zhí)行用戶應(yīng)用的虛擬化環(huán)境的請求,所述請求包括與所述用戶應(yīng)用相關(guān)且允許所述計算服務(wù)至少部分基于所述用戶應(yīng)用執(zhí)行程序的信息; 生成所述虛擬化環(huán)境,所述虛擬化環(huán)境包括ー個或多個程序服務(wù),所述程序服務(wù)包括:(I)負載平衡器,其被配置來跨所述多個計算節(jié)點中的一個或多個或者所述虛擬化環(huán)境的一個或多個實例分布工作量,(2)監(jiān)控接ロ,其被配置來允許所述用戶監(jiān)控所述程序的執(zhí)行,(3)負載調(diào)節(jié)器,其被配置來響應(yīng)于對所述程序的執(zhí)行的需求的變化而調(diào)節(jié)計算資源,和(4)多個數(shù)據(jù)庫管理服務(wù); 在所述使用時段期間在所述多個計算節(jié)點中的一個或多個的組上執(zhí)行所述虛擬化環(huán)境的一個或多個實例; 從所述用戶接收對所述虛擬化環(huán)境或?qū)υ谒鍪褂脮r段期間在所述多個計算節(jié)點中的所述ー個或多個的組上執(zhí)行所述虛擬化環(huán)境的所述ー個或多個實例進行至少ー個更改的請求;和 在所述使用時段期間實施所述至少ー個更改。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中所述計算服務(wù)的所述多個計算節(jié)點包括一個或多個物理計算系統(tǒng)。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述多個計算節(jié)點包括寄宿在所述ー個或多個物理計算系統(tǒng)上的一個或多個虛擬機。
9.根據(jù)權(quán)利要求6到8中任一項所述的系統(tǒng),其中所述使用時段包括要開始執(zhí)行所述一個或多個實例的開始時間和要結(jié)束所述ー個或多個實例的執(zhí)行的結(jié)束時間。
10.根據(jù)權(quán)利要求6到9中任一項所述的系統(tǒng),其中所述程序模塊還被配置來從所述計算服務(wù)的所述多個計算節(jié)點確定可滿足對生成所述虛擬化環(huán)境的所述用戶的所述請求的ー組計算節(jié)點。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述虛擬化環(huán)境包括所述負載平衡器,并且所述負載平衡器被配置來在所述使用時段期間跨所述多個計算節(jié)點中的所述ー個或多個的組平衡所述虛擬化環(huán)境的所述ー個或多個實例的執(zhí)行。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),其中程序模塊還被配置來: 識別所述虛擬化環(huán)境的所述ー個或多個實例中的至少ー個的故障;和 在所述多個計算節(jié)點中的所述ー個或多個的組上啟動所述虛擬化環(huán)境的至少ー個新實例。
13.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述程序模塊還被配置來當在所述虛擬化環(huán)境的所述ー個或多個實例的使用中或在所述多個計算節(jié)點中的所述ー個或多個的組的使用中檢測到錯誤時通知所述用戶。
14.根據(jù)權(quán)利要求10所述的系統(tǒng),其中對所述虛擬化環(huán)境進行至少ー個更改的所述請求包括對在在與所述多個計算節(jié)點中的所述ー個或多個的組中的所述計算節(jié)點中的至少ー些不同的地理位置的計算節(jié)點上執(zhí)行所述虛擬化環(huán)境的至少ー個實例的請求。
15.根據(jù)權(quán)利要求6到14中任一項所述的系統(tǒng),其中生成所述虛擬化環(huán)境的所述請求還包括對在ー個或多個希望的地理區(qū)域中執(zhí)行所述用戶應(yīng)用的請求。
全文摘要
描述了用于動態(tài)管理對來自計算資源提供者的計算容量的請求的系統(tǒng)和方法的實施方案。舉例來說,所述計算資源可以包括程序執(zhí)行能力、數(shù)據(jù)存儲或管理能力、網(wǎng)絡(luò)帶寬等。所述系統(tǒng)或方法自動分配用于執(zhí)行與用戶相關(guān)的一個或多個程序的計算資源。所述系統(tǒng)和方法可以使所述用戶能夠在所述一個或多個程序的執(zhí)行已開始之后改變所分配的資源。
文檔編號G06F9/50GK103098027SQ201180043637
公開日2013年5月8日 申請日期2011年7月25日 優(yōu)先權(quán)日2010年9月21日
發(fā)明者李·A·阿奇森, 布萊恩·A·懷特, 皮特·D·科恩, 皮特·N·德桑蒂斯, 麥克海爾·蓋博 申請人:亞馬遜技術(shù)有限公司