用於測試和證明客戶計算機系統上的虛擬設備的系統的製作方法
2023-10-09 10:40:19 5
專利名稱:用於測試和證明客戶計算機系統上的虛擬設備的系統的製作方法
用於測試和證明客戶計算機系統上的虛擬設備的系統
背景技術:
通常,軟體產品在該產品被投放市場之前由廠商進行測試和證明。產品的質量保證團隊更新回歸測試套件以覆蓋在投放到市場的每個建立(build)中引入的改變。然而,即使客戶對產品和客戶的計算機系統應用全部更新,這個過程在產品的生命周期中也不能自始至終保證產品無缺陷。產品在從其被部署在客戶的計算機環境中的那天起其生命周期期間經歷若干改變。這些改變包括平臺更新、產品更新、系統配置改變、網絡配置改變、以及產品配置改變。當運行時環境發展時,在某一時刻,引入到環境中的改變使產品中斷。遺憾的是,這樣的中斷可能不立即地顯露。替代地,這樣的中斷可能僅在嵌入的特徵被觸發之後才顯露,這可能是中斷之後的許多天或者甚至是幾周。當缺陷顯露時,客戶不知道什麼引起了該缺陷並且因此提出與廠商的支持呼叫。由於細節的有限的知識和運行時環境的發展,支持團隊可能花費長時間識別問題的根本原因,這會引起客戶不滿。即使客戶使用產品環境的備份,如果缺陷被諸如系統或網絡配置之類的外部參數觸發則備份也不奏效。由於這些和其他原因,存在對於本發明的需要。
圖1是圖示了包括廠商計算機系統和客戶計算機系統的系統的一個實施例的圖。圖2是圖示了能夠在圖1的系統中採用的計算機系統的一個實施例的圖。圖3是圖示了廠商計算機系統中的廠商SaaS環境的一個實施例的圖。圖4是圖示了客戶計算機系統中的管理的客戶計算環境的一個實施例的圖。圖5是圖不了第一主機機器和第二主機機器的一個實施例的圖。圖6是圖示了圖1的系統的一個實施例的操作的流程圖。
具體實施例方式在以下詳細描述中,對形成於此一部分的附圖進行參考,並且在附圖中通過圖示的方式示出了其中可以實踐本發明的特定實施例。在這點上,方向術語,諸如「頂部」、「底部」、「前面」、「背面」、「在前的」、「後面的」等被參考正被描述的(一個或多個)圖的方位來使用。因為本發明的實施例的部件能夠被定位在多個不同的方位,所以方向術語是出於圖示的目的而使用的並且決不是限制性的。應當理解的是,在不背離本發明的範圍的情況下,可以利用其他實施例並且可以做出結構或邏輯改變。以下詳細描述因此將不在限制的意義上進行,並且本發明的範圍由隨附權利要求來限定。圖1是圖示了包括廠商計算機系統22和客戶計算機系統24、26、以及28的系統20的一個實施例的圖。廠商計算機系統22被經由通信路徑32通信地耦合到網絡30,諸如網際網路或全球資訊網。客戶計算機系統24、26、以及28分別被經由通信路徑34、36、以及38通信地耦合到網絡30。廠商計算機系統22和客戶計算機系統24、26、以及28經由網絡30進行通信。在其他實施例中,系統20包括任何合適數量的客戶計算機系統,諸如一個或多個客戶計算機系統。系統20使用軟體即服務(SaaS)和虛擬化技術來建立。虛擬應用(vApp)在管理的客戶計算環境中工作,諸如圖4的管理的客戶計算環境300。客戶計算機系統24、26、以及28中的每一個都表示管理的客戶計算環境,諸如圖4的管理的客戶計算環境300。每個vApp都包括連接在一起的一個或多個虛擬機(VM)。系統20包括管理的客戶計算環境中的包括VM的vApp的測試。這減少了其為客戶和廠商識別問題的根本原因花費的時間,這增加了客戶滿意。在系統20中,客戶能夠經由廠商計算機系統22或通過其他銷售渠道來購買一個或多個vApp並且經由廠商計算機系統22訂閱用於所購買的vApp的部署後的vApp證明服務。vApp證明服務提供了用於測試vApp並且證明vApp在訂閱客戶的計算機系統上操作的vApp更新和回歸測試套件更新,所述訂閱客戶的計算機系統諸如客戶計算機系統24、26以及28中的一個。測試套件中的測試包括用於測試vApp的測試腳本和測試數據兩者。通信軟體被安裝和/或激活在訂閱客戶的計算機系統中以用於與廠商計算機系統22進行通信。同樣地,監控軟體被安裝和/或激活在訂閱客戶的計算機系統中以用於監控客戶的計算機系統並且用於將關於客戶的計算機系統的運行時環境信息發送到廠商計算機系統22。運行時環境信息包括作業系統、服務包、更新、補丁、和產品信息、以及硬體和網絡配置,諸如處理器的數目和網際網路協議版本(IPV)。如果客戶不訂閱vApp證明服務,則所購買的vApp在客戶的計算環境中正常地起作用,但是vApp證明服務對非訂閱客戶不是可用的。在一個實施例中,客戶訂閱vApp證明服務並且安裝訂閱密鑰以使得能夠實現vApp證明服務。在一個實施例中,客戶訂閱vApp證明服務諸如90天、每年、或超過一年之類的時間段。在訂閱客戶的計算機系統上安裝和/或激活的監控軟體來監控訂閱客戶的計算機系統的運行時環境中的改變。監控軟體檢測包括作業系統、硬體、以及產品中的改變的平臺中的改變,其中,改變包括用於每個項目的補丁和更新。如果檢測到改變,則訂閱客戶的計算機系統通知廠商計算機系統22。客戶計算機系統24、26、以及28招致至少兩種類型的改變。第一種類型的改變是可容易地識別的改變,諸如作業系統更新或服務包升級。第二類型的改變是不可容易地檢測到的配置改變,諸如對於一個或多個環境變量的改變或對於一個或多個註冊表關鍵碼值(registry key values)的改變。監控軟體檢測第一類型的可容易地識別的改變,但是監控軟體不檢測第二類型的配置改變。如果第一類型的可容易地識別的改變首先由廠商前攝性地識別到,則在沒有客戶計算機系統的幫助的情況下,廠商建立合併了廠商計算機系統22上的改變的新的運行時環境。新的運行時環境與訂閱客戶的當前證明的計算環境外加經識別的改變相同,其中,訂閱客戶的計算環境經由發送到廠商計算機系統22的運行時計算環境信息知道。廠商運行舊的測試套件並且建立和運行新的測試套件以在新的運行時環境中測試vApp。如果發生失敗,則廠商生成被提供給訂閱客戶計算機系統的vApp更新和測試套件更新。在這種情形下,如果在訂閱客戶的計算機系統上的監控軟體檢測到先前識別的改變並且通知廠商計算機系統22,則vApp更新和測試套件更新已經可用於下載並且可用於在客戶計算機系統上測試vApp。
如果第一類型的可容易地識別的改變首先由訂閱客戶的計算機系統中的監控軟體識別到,則廠商接收已檢測到的改變的通知,並且響應於該通知開始支持案例(case)。支持人員經由發送到廠商計算機系統22的運行時環境信息在廠商計算機系統22上建立與訂閱客戶的計算機系統上的運行時環境相同的運行時環境。支持人員然後使用新近建立的運行時環境在廠商計算機系統22上測試vApp。廠商支持人員運行舊的測試套件並且建立和運行新的測試套件以在新的運行時環境中測試vApp。諸如vApp更新和測試套件更新之類的更新被提供給客戶計算機系統以用於下載和在客戶計算機系統上測試vApp。訂閱客戶的計算機系統,諸如客戶計算機系統24、26以及28中的一個,從廠商計算機系統22下載vApp更新和測試套件更新以在訂閱客戶的計算機系統的運行時環境中測試vApp。訂閱客戶的計算機系統經由測試套件來測試vApp以檢測在訂閱客戶的計算機系統上發生的失敗。這些失敗可能由於由不可容易地檢測到的客戶計算機系統24、26以及28的配置改變招致的第二類型的改變。訂閱客戶的計算機系統檢測失敗並且向廠商計算機系統22通知該失敗。作為響應,廠商在與訂閱客戶的計算機系統上的運行時環境相同的廠商計算機系統22上的運行時環境中並且使用來自訂閱客戶的計算機系統的配置和值測試vApp。廠商生成被訂閱客戶的計算機系統下載以用於在訂閱客戶的計算機系統上測試vApp的vApp更新和測試套件更新。這個過程重複直到測試套件在訂閱客戶的計算機系統上通過為止。在通過之後,訂閱客戶的計算機系統對vApp進行基線對齊並且存儲每個vApp的基線拷貝,其中,能夠在等待更新的同時使用基線版本。圖2是圖示了能夠在系統20中採用的計算機系統100的一個實施例的圖。計算機系統100包括物理計算部件並且可以包括虛擬機。在一個實施例中,廠商計算機系統22與計算機系統100相同或類似。在一個實施例中,由客戶計算機系統24、26以及28表示的被管理的客戶計算環境中的一個或多個與計算機系統100相同或類似。計算機系統100包括至少包括一個處理單元,即處理器102的處理器架構和存儲器104。存儲器104是易失性存儲器、非易失性存儲器、或這兩個的一些組合。在一個實施例中,存儲器104被布置在諸如高速緩存的存儲器層級中。計算機系統100包括附加的儲存器,所述儲存器包括不可移動的儲存器106和可移動的儲存器108。這個附加的儲存器包括設備,諸如磁碟、光碟、固態存儲器、和/或閃速存儲設備。處理器102與存儲器104和不可移動的儲存器106進行通信並且被經由存儲路徑110通信地耦合到可移動的儲存器108。附加的儲存器存儲信息,諸如計算機可讀指令、數據結構、程序模塊、和/或其他數據。計算機系統100被配置成運行能夠被與組成系統平臺的一個或多個軟體應用一起存儲在存儲媒體上的作業系統軟體程序。存儲器104、不可移動的儲存器106以及可移動的儲存器108都是能夠被用來存儲所期望的信息的計算機存儲媒體的示例。計算機系統100還包括經由通信路徑114通信地耦合到處理器102的一個或多個通信連接112。通信連接112允許計算機系統100與能夠被用來存儲期望的信息並且由計算機系統100訪問的其他計算機/應用進行通信。計算機系統100的用戶接口部件包括一個或多個輸入設備116,諸如鍵盤、定點設備(例如,滑鼠)、語音輸入設備、和/或觸摸輸入設備;以及一個或多個輸出設備118,諸如顯示器和/或印表機。輸入設備116和輸出設備118被經由輸入/輸出路徑120通信地耦合到處理器102。圖3是圖示了諸如廠商計算機系統22 (圖1中所示)的廠商計算機系統中的廠商SaaS環境200的一個實施例的圖。廠商SaaS環境200包括用戶接口 202、測試套件204、以及vApp證明服務206。在208處,廠商支持人員經由用戶接口 202訪問廠商SaaS環境200。廠商支持人員包括工程師、技術人員以及為廠商工作的管理人員。用戶接口 202被通信地耦合到測試套件儲存庫204並且經由廠商通信路徑210通信地耦合到vApp證明服務206,這給予廠商支持人員對測試套件儲存庫204和vApp證明服務206的訪問。在一個實施例中,用戶接口202包括諸如輸入設備116和輸出設備118 (圖2中所示)之類的設備。測試套件儲存庫204是包括用於測試由廠商銷售的vApp的回歸測試套件的資料庫。所存儲的測試套件包括針對測試原始vApp發行而開發的測試套件和響應於在本領域(field)中發生的改變和失敗而建立的新的vApp發行和/或更新。這些改變和失敗包括第一類型的可容易地識別的改變和第二類型的配置改變。在第一類型的可容易地識別的改變由廠商或訂閱客戶的計算機系統中的監控軟體識別到之後,廠商支持人員運行舊的測試套件並且建立和運行新的測試套件以在新的運行時環境中測試vApp。這些舊的和新的測試套件被存儲在測試套件儲存庫204中並且從其中訪問。廠商支持人員經由用戶接口 202存儲並且訪問測試套件,並且客戶的計算機系統經由vApp證明服務206訪問舊的和新的測試套件。在客戶的計算機系統上測試了 vApp之後,vApp證明服務206被通知失敗並且廠商支持人員在包括來自訂閱客戶的計算機系統的配置的新的運行時環境中測試vApp。廠商支持人員生成被存儲在測試套件儲存庫204中並且從其中訪問的vApp更新和測試套件更新。在一個實施例中,測試套件儲存庫204被存儲在一個或多個存儲媒體中,諸如存儲器104、非易失性儲存器106、和/或可移動的儲存器108 (圖2中所示)。vApp證明服務206在廠商SaaS環境200中操作以將訂閱服務提供給廠商的客戶。vApp證明服務206被通過測試套件儲存庫204建立並且被經由測試套件通信路徑212通信地耦合到測試套件儲存庫204。vApp證明服務206經由測試套件通信路徑212和測試套件標識(ID)從測試套件儲存庫204中檢索測試套件。測試套件ID唯一地標識測試套件並且包括來自客戶的環境的建立ID和其他參數,諸如作業系統名稱和版本,以及服務包信息。建立ID包括vApp產品號、vApp版本號、以及vApp被建立以在其上運行的平臺。建立ID每當存在投放到市場的新的全部/部分vApp建立時改變,包括升級、補丁、以及熱修復。廠商支持人員經由用戶接口 202將用於每個vApp建立的測試套件上載到測試套件儲存庫204中。在一個實施例中,vApp證明服務206被經由諸如處理器102 (圖2中所示)之類的處理器執行。vApp證明服務206與諸如客戶計算機系統24、26、以及28 (圖1中所示)之類的客戶計算機系統進行通信,以將訂閱服務提供給客戶。訂閱服務包括使客戶訂閱服務;從訂閱客戶的計算機系統接收改變和失敗通知;以及將訂閱密鑰、測試套件、以及測試套件更新提供給訂閱客戶的計算機系統。vApp證明服務206經由網絡通信路徑214與客戶計算機系統進行通信。在一個實施例中,vApp證明服務206經由網絡通信路徑214將購買的vApp提供給客戶的計算機系統。vApp證明服務206是基於任何合適的網絡服務技術的網絡服務,包括使用代理和數據加密的網絡服務技術。在一個實施例中,vApp證明服務206被作為使用JAX-WS標準的RESTful網絡服務來建立。在一個實施例中,vApp證明服務206是基於SOAP的。vApp證明服務206將測試套件提供給客戶以用於在客戶的計算機系統上測試由廠商所銷售的vApp。測試套件被客戶經由網絡通信路徑214下載,以用於在客戶的計算機系統上測試購買的vApp。為了下載測試套件,客戶將測試套件ID提供給vApp證明服務206,所述vApp證明服務206從測試套件儲存庫204中檢索所識別的測試套件並且將所檢索到的測試套件提供給客戶。vApp證明服務206針對購買的vApp提供原始測試套件和測試套件更新,包括響應於廠商識別的軟體和/或硬體改變而建立的測試套件更新。vApp證明服務206從訂閱客戶的計算機系統中的監控軟體接收第一類型的可容易地識別的改變的通知和來自在訂閱客戶的計算機系統上運行測試套件的測試失敗的通知。同樣地,vApp證明服務206從訂閱客戶的計算機系統接收客戶計算機系統平臺和/或配置數據。vApp證明服務206經由用戶接口 202接收這些報告並且通知廠商支持人員。廠商支持人員使用客戶計算機系統平臺和/或從訂閱客戶的計算機系統所獲得的配置數據在廠商計算機系統上再創建訂閱客戶的計算機系統。廠商支持人員在廠商計算機系統上經由已再創建的客戶計算機系統測試vApp。如果vApp未通過測試,則廠商支持人員更新vApp並且建立包括測試套件更新的新的測試套件以用於測試已更新的vApp。在通過新的測試套件之後,vApp更新被提供給其計算機系統和vApp包含最近測試的改變的客戶,並且新的測試套件被存儲在測試套件儲存庫204中並且經由網絡通信路徑214提供給訂閱客戶的計算機系統。在一個實施例中,vApp更新被經由vApp證明服務206和網絡通信路徑214來提供。該過程繼續直到問題被解決為止。圖4是圖示了客戶計算機系統中的管理的客戶計算環境300的一個實施例的圖。客戶計算機系統24、26以及28 (圖1中所示)中的每一個都表示管理的客戶計算環境,諸如管理的客戶計算環境300。管理的客戶計算環境300被經由網絡通信路徑302通信地耦合到廠商SaaS環境200。管理的客戶計算環境300包括基線管理系統304、第一主機機器306、以及第二主機機器308。基線管理系統304被經由測試路徑310、基線路徑312、以及監控路徑340通信地率禹合到第一主機機器306和第二主機機器308。第一主機機器306和第二主機機器308僅僅是可以在諸如管理的客戶計算環境300的管理的客戶計算環境中的機器的示例。在其他實施例中,管理的客戶計算環境300包括基線管理系統304和任何合適數目的主機機器,諸如沒有主機機器、一個主機機器、或兩個以上的主機機器。管理的客戶計算環境300包括監控在管理的客戶計算環境300中的改變的監控軟體並且將改變通知提供給廠商SaaS環境200。管理的客戶計算環境300還將測試失敗通知提供給廠商SaaS環境200。響應於這些報告或通知,廠商計算機系統將一個或多個測試套件提供給客戶計算機系統。同樣地,廠商計算機系統在不使用來自客戶計算機系統的報告或通知的情況下響應於計算機軟體和硬體中的改變提供一個或多個測試套件。基線管理系統304管理客戶的計算機系統中的至少一些,包括客戶的對vApp證明服務的訂閱;將改變通知傳送或上載到廠商計算機系統;從廠商計算機系統下載回歸測試套件;在客戶的計算機系統上測試vApp ;將測試失敗通知上載到廠商計算機系統;以及在客戶的計算機系統上對vApp進行基線對齊。基線管理系統304經由網絡通信路徑302與廠商SaaS環境200進行通信。在管理的客戶計算環境300中,第一主機機器306和第二主機機器308是不同的物理計算機器。第一主機機器306是執行經由廠商所接收到的一個或多個vApp的第一物理計算機器。在第一主機機器306上的所接收到的vApp中的每一個都包括在第一主機機器306上被執行的一個或多個VM。第二主機機器308是執行經由廠商所接收到的一個或多個vApp的第二物理計算機器。第二主機機器308上的所接收到的vApp中的每一個都包括在第二主機機器308上被執行的一個或多個VM。在一個實施例中,第一主機機器306執行vApp的一個或多個VM,而第二主機機器308執行同一 vApp的一個或多個其他VM。基線管理系統304以及第一主機機器306和第二主機機器308在邏輯上是不同的機器。在一個實施例中,基線管理系統304在不同於第一主機機器306和第二主機機器308的物理計算機器上運行。在一個實施例中,基線管理系統304是在第一主機機器306上運行的VM,其中基線管理系統304是與vApp中的VM相比不同的VM。在一個實施例中,基線管理系統304是在第二主機機器308上運行的VM,其中基線管理系統304是與vApp中的VM相比不同的VM。在其他實施例中,管理的客戶計算環境300包括一個物理計算機器,所述物理計算機器包括基線管理系統304和來自廠商的vApp,其中基線管理系統304是與vApp中的VM相比不同的VM。基線管理系統304包括五個模塊vApp證明訂戶314、監控服務342、測試執行管理器316、基線服務318、以及用戶接口 320。基線管理系統還包括三個存儲模塊測試套件和結果儲存器322、部署配置資料庫324、以及基線對齊的版本儲存器326。在一個實施例中,vApp證明訂戶314、監控服務342、測試執行管理器316、以及基線服務318是經由諸如處理器102 (圖2中所示)之類的處理器所執行的軟體程序。在一個實施例中,測試套件和結果儲存器322、部署配置資料庫324、和/或基線對齊的版本儲存器326在一個或多個存儲媒體中,諸如存儲器104、非易失性儲存器106、和/或可移動的儲存器108(圖2中所示)。vApp證明訂戶314作為對vApp證明服務的訂戶操作並且經由網絡通信路徑302與vApp證明服務206進行通信。vApp證明訂戶314管理客戶的計算機系統中的vApp訂閱服務的激活;將關於管理的客戶計算環境300的信息或數據上載到廠商計算機系統;將改變通知上載到廠商計算機系統;從廠商計算機系統下載回歸測試套件;以及將失敗的測試結果或通知上載到廠商計算機系統。vApp證明訂戶314被經由網絡通信路徑302通信地耦合到廠商SaaS環境200。此外,vApp證明訂戶314被經由改變通知路徑344通信地耦合到監控服務342,經由測試路徑328通信地耦合到測試執行管理器316,並且經由存儲路徑330通信地耦合到測試套件和結果儲存器322。在一個實施例中,vApp證明訂戶314從廠商接收訂閱密鑰以激活客戶的計算機系統中的vApp訂閱服務。在一個實施例中,vApp證明訂戶314下載vApp訂閱服務軟體以激活客戶的計算機系統中的vApp訂閱服務。新的vApp和vApp更新被經由vApp證明訂戶314用基線管理系統304來註冊。對於每個新的vApp或vApp更新而言,vApp證明訂戶314獲得建立ID和/或測試套件ID並且從廠商SaaS環境200請求測試套件。vApp證明服務206從測試套件儲存庫204中檢索測試套件並且vApp證明訂戶314經由網絡通信路徑302從vApp證明服務206下載已檢索到的測試套件。vApp證明訂戶314經由存儲路徑330將已下載的測試套件存儲在測試套件和結果儲存器322中。在一個實施例中,vApp證明訂戶314經由存儲路徑330將已下載的測試套件存儲在測試套件和結果儲存器322中,並且經由測試路徑328通知測試執行管理器316新的測試套件已經被下載到測試套件和結果儲存器322。監控服務342管理在管理的客戶計算環境300中的改變的監控。監控服務342被經由監控路徑340通信地耦合到第一主機機器306和第二主機機器308。監控服務342與一個或多個vApp監控代理進行通信以監控第一主機機器306和第二主機機器308中的vApp。在一個實施例中,一個或多個監控代理是監控服務342的一部分。在一個實施例中,一個或多個監控代理是一個或多個主機機器的一部分,所述主機機器諸如第一主機機器306和第二主機機器308,其中監控服務342遠程地與一個或多個監控代理進行通信以監控vApp。監控服務342經由數據路徑346填充並且保持部署配置資料庫324,並且監控服務342經由改變通知路徑344將改變通知提供給vApp證明訂戶314,其將該改變通知上載到廠商SaaS環境200。響應於這些報告或通知,廠商計算機系統將一個或多個測試套件提供給客戶計算機系統。測試執行管理器316管理在管理的客戶計算環境300中的對vApp的測試套件執行的調度和協調。測試執行管理器316經由測試路徑310通信地耦合到第一主機機器306和第二主機機器308。測試執行管理器316與一個或多個vApp測試代理進行通信以測試第一主機機器306和第二主機機器308中的vApp。在一個實施例中,一個或多個測試代理是測試執行管理器316的一部分。在一個實施例中,一個或多個測試代理是一個或多個主機機器的一部分,所述主機機器諸如第一主機機器306和第二主機機器308,其中測試執行管理器316遠程地激活一個或多個測試代理以測試vApp。為了測試vApp,測試執行管理器316從測試套件和結果儲存器322中檢索與vApp相對應的測試套件,其中測試執行管理器316被經由存儲路徑332通信地耦合到測試套件和結果儲存器322。測試執行管理器316將已檢索到的測試套件傳送到測試代理,所述測試代理進行vApp的拷貝並且將測試套件插入到vApp的拷貝中以獲得測試結果。測試代理將測試結果傳送到測試執行管理器316,所述測試執行管理器316將測試結果存儲在測試套件和結果儲存器322中並且將測試結果傳送到用戶接口 320。同樣地,測試執行管理器316向vApp證明訂戶314通知測試失敗,並且vApp證明訂戶314將失敗的測試結果上載到vApp證明服務206。如果vApp通過,則測試執行管理器316通知基線服務318,其中測試執行管理器316被經由通知路徑334通信地耦合到基線服務318。測試執行管理器316與部署配置資料庫324進行通信以在被管理的客戶計算環境300中找到vApp,並且調度vApp的測試。部署配置資料庫324包括管理的客戶計算環境300的拓撲,包括諸如第一主機機器306和第二主機機器308的主機機器、(一個或多個)vApp位置和用途、以及(一個或多個)VM位置和用途。部署配置資料庫324還包括對於管理的客戶計算環境300的改變的歷史。測試執行管理器316經由配置路徑336通信地耦合到部署配置資料庫324。在一個實施例中,部署配置資料庫324包括用於測試vApp的時間調度。在vApp通過所有的測試套件之後,測試執行管理器316通知基線服務318和用戶接口 320。響應於該通知,基線服務318通知進行vApp的拷貝的基線代理,其中基線服務318被經由基線路徑312通信地耦合到第一主機機器306和第二主機機器308。基線服務318從基線代理接收vApp的拷貝並且對作為vApp的最後的已知好的版本的vApp的拷貝進行基線對齊。基線服務318將vApp的經基線對齊的拷貝存儲在基線對齊的版本儲存器326中,其中基線服務318被經由存儲路徑338通信地耦合到基線對齊的版本儲存器326中。為了恢復到vApp的先前的拷貝,vApp的經存儲的基線對齊的版本中的一個被從基線對齊的版本儲存器326中檢索。在一個實施例中,基線對齊的版本儲存器326存儲vApp的歷史基線對齊的拷貝。在一個實施例中,基線對齊的版本儲存器326僅僅存儲vApp的最近基線對齊的拷貝。在一個實施例中,基線服務318包括基線代理,所述基線代理遠程地進行vApp的拷貝並且將vApp拷貝傳遞到基線服務318。在一個實施例中,基線代理是主機機器的一部分,所述主機機器諸如第一主機機器306和第二主機機器308中的一個,並且基線服務318遠程地激活基線代理以進行vApp的複製並且將vApp的拷貝傳送到基線服務318。用戶接口 320提供客戶支持人員對管理的客戶計算環境300的訪問,包括對vApp證明訂戶314、測試執行管理器316、以及基線服務318的訪問。客戶支持人員,包括工程師、技術人員、以及管理人員能夠訪問設置測試和基線頻率以及部署配置。用戶接口 320還生成報告,諸如通過/失敗報告以及其中檢測到失敗的配置。用戶接口 320經由為了清楚而未被示出的通信路徑通信地耦合到vApp證明訂戶314、測試執行管理器316以及基線服務318。在一個實施例中,用戶接口 320包括諸如輸入設備116和輸出設備118 (圖2中所示)之類的設備。圖5是圖不了第一主機機器306和第二主機機器308的一個實施例的圖。第一主機機器306和第二主機機器308包括三個vApp :400處的vAppl、402處的vApp2、以及404處的vApp3。400處的vAppl包括三個VM =VMl.1、VMl. 2以及VMl. 3,其彼此進行通信以提供在400處的vAppl。402處的vApp2包括三個VM VM2.1、VM2. 2以及VM2. 3,其彼此進行通信以提供在402處的vApp2。404處的vApp3包括兩個VM VM3.1和VM3. 2,其彼此進行通信以提供在404處的vApp3。第一主機機器306包括第一 vApp監控代理422、第一 vApp基線代理406、以及第
一vApp測試代理408,其被經由vAppl路徑414和第一 vApp3路徑416通信地耦合到400處的vAppl和作為404處的vApp3的一部分的VM3.1。第二主機機器308包括第二 vApp監控代理424、第二 vApp基線代理410、以及第二 vApp測試代理412,其被經由vApp2路徑418和第二 vApp3路徑420通信地耦合到402處的vApp2和作為404處的vApp3的一部分的VM3. 2。第一 vApp監控代理422和第二 vApp監控代理424被經由監控路徑340通信地耦合到監控服務342。第一 vApp測試代理408和第二 vApp測試代理412被經由測試路徑310通信地耦合到測試執行管理器316。第一 vApp基線代理406和第二 vApp基線代理410被經由基線路徑312通信地耦合到基線服務318。監控服務342與第一 vApp監控代理422和第二 vApp監控代理424進行通信以監控第一主機機器306和第二主機機器308中的vApp。第一 vApp監控代理422和第二監控代理424經由監控路徑340將更新提供給監控服務342。監控服務342將改變通知提供給vApp證明訂戶314,所述vApp證明訂戶314將該改變通知上載到廠商SaaS環境200。在操作中,測試執行管理器316從測試套件和結果儲存器322中檢測與三個vApp 400處的vAppl、402處的vApp2以及404處的vApp3中的一個相對應的測試套件。測試執行管理器316經由部署配置資料庫324確定第一主機機器306和第二主機機器308中的哪一個包括與所檢索到的測試套件相對應的vApp。如果對應的vApp是400處的vAppl,則第一主機機器306中的第一 vApp測試代理408接收測試套件,進行400處的vAppl的拷貝,並且將測試套件插入到400處的vAppl的拷貝中以獲得測試結果。如果對應的vApp是402處的vApp2,則第二主機機器308中的第二 vApp測試代理412接收測試套件,進行402處的vApp2的拷貝,並且將測試套件插入到402處的vApp2的拷貝中以獲得測試結果。如果對應的vApp是404處的vApp3,則第一主機機器306中的第一 vApp測試代理408和第二主機機器308中的第二 vApp測試代理412分別接收用於測試VM3.1和VM3. 2的測試套件中的至少一些。第一 vApp測試代理408進行VM3.1的拷貝並且將測試套件插入到VM3.1的拷貝中以獲得測試結果,而第二 vApp測試代理412進行VM3. 2的拷貝並且將測試套件插入到VM3. 2的拷貝中以獲得測試結果。第一 vApp測試代理408和第二 vApp測試代理412將測試結果傳送到測試執行管理器316,所述測試執行管理器316將測試結果存儲在測試套件和結果儲存器322中並且將測試結果傳送到用戶接口 320。測試執行管理器316向vApp證明訂戶314通知測試失敗,並且vApp證明訂戶314將失敗的測試結果上載到vApp證明服務206。如果被測試的vApp通過,則測試執行管理器316通知基線服務318,其通知包括被測試的vApp的(一個或多個)主機機器306和308中的(一個或多個)vApp基線代理406和410。如果被測試的vApp是400處的vAppl,則第一主機機器306中的第一 vApp基線代理406被激活以進行400處的vAppl的拷貝。如果被測試的vApp是402處的vApp2,則第二主機機器308中的第二 vApp基線代理410被激活進行402處的vApp2的拷貝。如果被測試的vApp是404處的vApp3,則第一主機機器306中的第一 vApp基線代理406和第二主機機器308中的第二 vApp基線代理410被激活以分別進行VM3.1和VM3. 2的拷貝。基線服務318從(一個或多個)基線代理406和410接收被測試的vApp的拷貝並且對作為被測試的vApp的最後已知的好的版本的被測試的vApp的拷貝進行基線對齊。基線服務318將經基線對齊的拷貝存儲在基線對齊的版本儲存器326中。圖6是圖示了用於向vApp證明服務的訂戶的系統20的一個實施例的操作的流程圖。在500處,在訂閱客戶的計算環境300中安裝的監控軟體監控訂閱客戶的計算機系統的運行時環境中的改變。在502處,監控軟體檢測平臺中的改變,包括作業系統、硬體和/或產品的改變,其中平臺的改變包括針對每個項目的補丁和更新。如果檢測到改變,則訂閱客戶的計算機系統通知廠商計算機系統22。同樣地,在504處,廠商在沒有從客戶計算機系統接收到通知的情況下識別計算機軟體和硬體中的改變。在506處,廠商支持人員使用客戶計算機系統平臺和/或從訂閱客戶的計算機系統所獲得的配置數據在廠商計算機系統22上再創建訂閱客戶的計算機系統。廠商支持人員經由廠商計算機系統22上的已再創建的客戶計算機系統測試一個或多個vApp。在508處,如果vApp失敗,則廠商支持人員更新vApp並且建立新的測試套件,包括用於測試經更新的vApp的測試套件更新。在通過新的測試套件之後,vApp更新被提供給客戶並且新的測試套件被存儲在測試套件儲存庫204中並且經由網絡通信路徑214提供給訂閱客戶的計算機系統。在510處,vApp證明服務206從測試套件儲存庫204中檢索一個或多個測試套件,並且vApp證明訂戶314從vApp證明服務206下載更新的vApp和已檢索的(一個或多個)測試套件。同樣地,如果在512處客戶購買新的vApp,則在510處vApp證明訂戶314從vApp證明服務206下載已購買的vApp和測試套件。vApp證明訂戶314將已下載的(一個或多個)測試套件存儲在測試套件和結果儲存器322中。在514處,測試執行管理器316從測試套件和結果儲存器322中檢索與vApp相對應的測試套件。測試執行管理器316經由部署配置資料庫324確定第一主機機器306和第二主機機器308中的哪一個包括與所檢索到的測試套件相對應的vApp。如果對應的vApp是400處的vAppl,則第一主機機器306中的第一 vApp測試代理408接收測試套件,進行400處的vAppl的拷貝,並且將測試套件插入到400處的vAppl的拷貝中以獲得測試結果。如果對應的vApp是402處的vApp2,則第二主機機器308中的第二 vApp測試代理412接收測試套件,進行402處的vApp2的拷貝,並且將測試套件插入到402處的vApp2的拷貝中以獲得測試結果。如果對應的vApp是404處的vApp3,則第一主機機器306中的第一 vApp測試代理408和第二主機機器308中的第二 vApp測試代理412分別接收用於測試VM3.1和VM3. 2的測試套件中的至少一些。第一 vApp測試代理408進行VM3.1的拷貝並且將測試套件插入到VM3.1的拷貝中以獲得測試結果,而第二 vApp測試代理412進行VM3. 2的拷貝並且將測試套件插入到VM3. 2的拷貝中以獲得測試結果。第一 vApp測試代理408和第
二vApp測試代理412將測試結果傳送到測試執行管理器316,所述測試執行管理器316將測試結果存儲在測試套件和結果儲存器322中並且將測試結果傳送到用戶接口 320。在516處,如果vApp未通過測試,則測試執行管理器316向vApp證明訂戶314通知測試失敗並且vApp證明訂戶314將失敗的測試結果上載到vApp證明服務206。過程在506處繼續,其中廠商支持人員使用客戶計算機系統平臺和從訂閱客戶的計算機系統所獲得的配置數據在廠商計算機系統22上再創建訂閱客戶的計算機系統。接下來,廠商支持人員在廠商計算機系統22上在所再創建的客戶計算機系統上測試vApp。該過程在508、510以及514處繼續。在518處,如果在訂閱客戶的計算機系統上測試的vApp通過,則測試執行管理器316通知基線服務318。在520處,基線服務318通知包括通過vApp的(一個或多個)主機機器306和308中的(一個或多個)vApp基線代理406和410。如果被測試的vApp是400處的vAppl,則第一主機機器306中的第一 vApp基線代理406被激活以進行400處的vAppl的拷貝。如果被測試的vApp是402處的vApp2,則第二主機機器308中的第二 vApp基線代理410被激活以進行402處的vApp2的拷貝。如果被測試的vApp是404處的vApp3,則第一主機機器306中的第一 vApp基線代理406和第二主機機器308中的第二 vApp基線代理410被激活以分別進行VM3.1和VM3. 2的拷貝。同樣地,在520處,基線服務318從(一個或多個)基線代理406和410接收被測試的vApp的拷貝並且對作為被測試的vApp的最後已知的好的版本的被測試的vApp的拷貝進行基線對齊。在522處,基線服務318將經基線對齊的拷貝存儲在基線對齊的版本儲存器326中。系統20基本上保證了訂閱客戶的vApp是完整的並且在由廠商證明的條件下運行。系統20通過前攝性地並且在早期階段檢測vApp中的缺陷來逐漸灌輸信心,避免了停機時間的偶發事件。同樣地,如果存在vApp問題,則訂閱客戶能夠恢復到vApp的最後已知的證明的、基線對齊的版本。此外,軟體廠商通過與客戶共享測試套件產生收益。儘管已經在本文中說明並且描述了特定實施例,但是本領域的普通技術人員應當了解的是,在不背離本發明的範圍的情況下,各種替代的和/或等同的實施方式可以代替所示出和所描述的特定實施例。本申請旨在覆蓋在本文中所討論的特定實施例的任何適應或變化。因此,意圖是此發明僅僅由權利要求和其等同物來限制。
權利要求
1.一種系統,包括 客戶計算機系統,其被配置成從廠商計算機系統接收測試並且在所述客戶計算機系統上執行所述測試以測試和證明所述客戶計算機系統上的虛擬設備,其中,所述客戶計算機系統響應於所述測試失敗將測試失敗數據提供給所述廠商計算機系統,並且所述客戶計算機系統響應於所述測試通過提供所述虛擬設備的基線。
2.根據權利要求1所述的系統,其中,所述客戶計算機系統被配置成監控它本身並且將關於所述客戶計算機系統中的改變的報告提供給所述廠商計算機系統,所述廠商計算機系統響應於所述報告將所述測試提供給所述客戶計算機系統。
3.根據權利要求2所述的系統,包括所述廠商計算機系統,所述廠商計算機系統被配置成接收所述報告並且在將所述客戶計算機系統中的所述改變合併到所述廠商計算機系統之後測試所述廠商計算機系統上的所述虛擬設備,並且如果所述測試失敗,則針對所述虛擬設備提供更新。
4.根據權利要求1所述的系統,其中,在不使用來自所述客戶計算機系統的報告的情況下,響應於計算機軟體和硬體中的改變而創建所述測試。
5.根據權利要求1所述的系統,其中,所述客戶計算機系統被配置成在所述客戶計算機系統上進行所述虛擬設備的拷貝並且對所述虛擬設備的所述拷貝執行所述測試。
6.根據權利要求1所述的系統,其中,所述客戶計算機系統包括一個或多個主機計算機,並且所述虛擬設備包括多個虛擬機,從而使得所述一個或多個主機計算機中的每一個都包括所述虛擬設備中的至少一個虛擬機。
7.根據權利要求1所述的系統,包括所述廠商計算機系統。
8.一種存儲用於控制客戶計算機系統執行包括以下的方法的指令的計算機可讀存儲介質 監控所述客戶計算機系統以檢測所述客戶計算機系統中的改變; 將關於所述客戶計算機系統中的所述改變的報告提供給廠商計算機系統,其中,響應於所述報告來提供測試; 在所述客戶計算機系統處從所述廠商計算機系統接收所述測試;以及 在所述客戶計算機系統上執行所述測試以測試在所述客戶計算機系統上的虛擬設備。
9.存儲用於控制所述客戶計算機系統執行權利要求8並且包括以下的所述的方法的指令的計算機可讀存儲介質 響應於所述測試失敗將測試失敗數據提供給所述廠商計算機系統;以及 響應於所述測試通過對所述虛擬設備進行基線對齊。
10.存儲用於控制所述客戶計算機系統執行權利要求8並且包括以下的指令的計算機可讀存儲介質 將測試結果存儲在所述客戶計算機系統中; 將基線對齊的版本存儲在所述客戶計算機系統中;以及 使用所述虛擬應用的所述存儲的基線對齊的版本中的一個。
11.一種測試的方法,其包括 建立用於測試虛擬設備的測試; 將所述測試中的至少一個從廠商計算機系統傳輸到客戶計算機系統以用於測試所述客戶計算機系統上的所述虛擬設備; 在所述廠商計算機系統處從所述客戶計算機系統接收測試失敗數據; 在所述廠商計算機系統處接收客戶計算機系統配置數據; 在所述廠商計算機系統上再創建所述客戶計算機系統;以及 在所述廠商計算機系統上經由所述再創建的客戶計算機系統測試所述虛擬設備。
12.根據權利要求11所述的方法,包括 在所述廠商計算機系統上經由所述再創建的客戶計算機系統解決所述虛擬設備的問題;以及 基於解決所述問題針對所述虛擬設備提供更新。
13.根據權利要求11所述的方法,其中,建立用於測試所述虛擬設備的測試包括 在不使用所述客戶計算機系統配置數據的情況下,響應於軟體和硬體改變而建立測試。
14.根據權利要求11所述的方法,其中,建立用於測試所述虛擬設備的測試包括 在所述廠商計算機系統處接收關於所述客戶計算機系統的改變的報告; 在所述廠商計算機系統上再創建改變的客戶計算機系統;以及 建立用於測試所述改變的客戶計算機系統上的所述虛擬設備的測試。
15.根據權利要求14所述的方法,包括 在所述廠商計算機系統上經由所述再創建的改變的客戶計算機系統解決所述虛擬設備的問題;以及 在解決所述問題之後針對所述虛擬設備提供更新。
全文摘要
一種系統包括客戶計算機系統,所述客戶計算系統被配置成從廠商計算機系統接收測試並且在所述客戶計算機系統上執行所述測試以測試和證明在所述客戶計算機系統上的虛擬設備。客戶計算機系統響應於測試失敗將測試失敗數據提供給所述廠商計算機系統,並且所述客戶計算機系統響應於所述測試通過提供所述虛擬設備的基線。
文檔編號G06Q30/06GK103038786SQ201080068695
公開日2013年4月10日 申請日期2010年6月21日 優先權日2010年6月21日
發明者A.M.奧爾瓦, R.伊斯瓦蘭 申請人:惠普發展公司,有限責任合夥企業