針對云應用的測試和管理的制作方法
【專利摘要】一種系統(tǒng)(100)包括應用模型(140)以表征用于部署在云(130)上的給定應用(110)。部署管理器(120)基于與所述給定應用(110)相關聯(lián)的所述應用模型(140)和策略(150)來分析對于所述給定應用(110)的應用要求以和在所述云(130)中用來實現(xiàn)所述應用要求的基礎設施資源(160)基本上匹配。測試管理器(170)被采用來經由所述部署管理器(120)針對所述給定應用(110)來配置和啟動應用部署的測試套件。
【專利說明】針對云應用的測試和管理
【背景技術】
[0001]云計算指的是可伸縮的和合并的計算、存儲以及聯(lián)網(wǎng)能力作為服務到終端接收者的網(wǎng)絡的遞送。名稱來自云作為網(wǎng)絡的復雜基礎設施和可在云內操作的關聯(lián)硬件的抽象的使用。例如,云計算通過網(wǎng)絡為用戶的數(shù)據(jù)、軟件以及計算提供服務。這樣的計算能力依靠資源的共享來通過網(wǎng)絡(通常為因特網(wǎng))實現(xiàn)規(guī)模與公用設施(例如電網(wǎng))類似的相干性和經濟。部署在支持云的資源上的應用目前常常不得不被手動地部署并且那消耗相當多的管理時間。部署應用的手動步驟包括基礎設施的提供和安裝。這需要從應用的安裝或映像的部署鏈接到所部署的基礎設施的完備知識。手動部署通常需要由試圖部署應用的用戶所通常啟動的步驟的許多序列。
【專利附圖】
【附圖說明】
[0002]圖1圖示了為應用提供自動化測試管理、分階段進行以及部署的系統(tǒng)的示例。
[0003]圖2圖示了用于應用在環(huán)境中的自動化測試和部署的測試管理器接口的示例。
[0004]圖3圖示了用于應用的自動化部署和監(jiān)視的示例系統(tǒng)。
[0005]圖4圖示了對于應用的部署和監(jiān)視利用閉環(huán)反饋的示例系統(tǒng)。
[0006]圖5圖示了用于應用的自動化部署的示例方法的流程圖。
[0007]圖6圖示了用于云應用的自動化部署的示例部署系統(tǒng)。
[0008]圖7圖示了使云的資源能力與應用的應用要求相匹配的部署管理器的示例。
【具體實施方式】
[0009]圖1圖示了促進應用的自動化測試管理、分階段進行以及部署的系統(tǒng)100的示例。系統(tǒng)100能夠通過利用部署管理器120來確定云基礎設施130 (還被稱為云130)的基礎設施能力并且還通過分析應用模型140和策略150而確定應用110的應用要求來提供應用110的自動化部署和生命周期管理。盡管示出了云130,但是如本文中所描述的部署、分階段進行以及測試也能夠被應用于非云環(huán)境(例如,本地數(shù)據(jù)庫和服務器)。在這樣的確定之后,部署管理器120能夠自動地管理應用110在云130上的生命周期,其中匹配被識別(例如,理想的或盡力而為-最接近匹配)?;谄ヅ浣咏牧慷群?或其他策略要求,匹配被選擇并且能夠提供/實例化基礎設施。
[0010]在資源與應用要求的這樣的匹配(例如,絕對匹配或最接近匹配)之后,然后應用110的組件能夠被部署在云130 (或非云本地執(zhí)行環(huán)境)上。云130的基礎設施能力能夠經由與云相關聯(lián)的資源供應和元數(shù)據(jù)160被確定。例如,支持云130的多個服務提供商能夠提供規(guī)定它們讓什么類型的資源可用的文件和描述相應資源供應(例如,可用的三個服務器的資源供應,其中元數(shù)據(jù)規(guī)定存儲器大小或處理器速度、負荷(如果已經實例化了)、位置、租賃條件、服務級別協(xié)定(SLA)、調度維護等等)的感興趣屬性的元數(shù)據(jù)。
[0011]測試管理器170被提供來經由部署管理器針對給定應用110來配置和啟動應用部署的測試套件。測試管理器170能夠為應用110配置與多個不同的操作部署場景相關聯(lián)的多個測試。能夠跨越組織邊界管理配置和結果的應用部署以適合各種組織需要。例如,開發(fā)可以具有一組需要并且生產可以具有單獨的一組需要。在一些情況下,針對應用的公用部署被配置和啟動,并且在其他情況下,諸如經由本地測試和儲存器180所示出的專用部署被啟動。在其他情況下,公用部署和專用部署的組合像由測試管理器170所配置的那樣被啟動并且經由部署管理器120部署。
[0012]例如,基于通過使應用模型140和策略150與如由資源供應和元數(shù)據(jù)160所規(guī)定的基礎設施模型相匹配來確定最佳匹配基礎設施,測試管理器170使得能實現(xiàn)自動化開發(fā)測試、針對運營的開發(fā)以及應用安全開發(fā)。應用模型140能夠被規(guī)定用于特定部署或測試。例如,當選擇哪一個模型以使用時,這能夠經由從一組模型中的不同模型進行選擇或者經由與策略中所規(guī)定的不同模型類型相關聯(lián)的標簽的匹配來實現(xiàn)。然后能夠采用匹配基礎設施來在還運行各種測試套件的同時并且在測試(和/或在生產階段監(jiān)視)的不同階段處測試或者促進生產分階段進行。對于開發(fā)測試,測試管理器170允許開發(fā)者遵循在云130中具有測試的任何軟件的開發(fā),其中它們能夠在多個部署場景中部署和運行軟件并且在沒有常見延遲和成本的情況下執(zhí)行目標測試用例以建立部署和測試。在軟件元件(例如,應用組件)的開發(fā)和測試之后,它們然后能夠在生產中被部署和操作(并且類似地監(jiān)視)。這還使得能夠測試應用110的安全方面,因為安全還能夠在安全的開發(fā)和生產環(huán)境中(諸如在本地測試和儲存器180上)測試。漏洞、安全攻破以及其他檢測到的事件的反饋能夠被容易地監(jiān)視并且反饋(例如,經由監(jiān)視器組件和監(jiān)聽器)給開發(fā)代理諸如以用于診斷和修復。當在生產中報告了問題時,部署條件和上下文能夠隨著漏洞/問題報告再現(xiàn)以便開發(fā)者(或支持)診斷和校正,這然后能夠導致然后能夠被分階段進行和/或測試的測試和補丁/更新。
[0013]測試管理器170和部署管理器120能夠被采用來針對測試套件在由部署管理器120所提供和部署的部署上的配置和啟動依照用戶接口(UI)(例如,見圖2)使測試自動化。這能夠包括提供能夠基于監(jiān)視到編碼器儲存庫中的改變而自動化的自動化應用編程接口(API)以及在由部署管理器120所提供和部署的部署上啟動/運行測試套件。部署管理器120能夠被用來從測試向生產移動,這能夠由在位置(在生產區(qū)中)方面的策略改變和關于容量、延遲、服務質量(QoS)等等的其他生產準則發(fā)起。由測試管理器170所支持的其他測試場景能夠包括能夠通過基礎設施的配置的監(jiān)視和閉環(huán)反饋所支持的安全開發(fā)、運營開發(fā)以及質量保證。針對給定應用的這樣的開發(fā)測試的結果能夠被部署管理器120利用以用于針對給定應用的部署和生命周期管理。應用組件(例如,與它們被開發(fā)和存儲在儲存庫中的現(xiàn)有應用集成在一起)的連續(xù)集成能夠隨著它們基于部署管理器120被開發(fā)而被支持。還能夠基于部署管理器120的自動化動作來支持軟件的連續(xù)遞送。
[0014]測試管理器170提供用于完全在單個工作流內在應用團隊內和跨越應用團隊并且貫穿開發(fā)應用的完整過程進行管理和自動化的集中式應用管理平臺。測試管理器170能夠支持負責隨著應用通過它們的生命周期進步而遞送應用的利益相關者。它集中于從設計至準備就緒以用于遞送給運營的核心生命周期。這能夠包括要求管理、測試規(guī)劃與功能測試、性能測試、開發(fā)者管理以及缺陷管理。這樣的應用生命周期活動能夠從工作流觀點與公共管理控制臺、項目跟蹤和規(guī)劃的層連接在一起,并且在包含具有支持的軟件開發(fā)工具包(SDK)的一致儲存庫和開放式集成架構的公用軟件基礎上構建。
[0015]如將在下面關于圖2所描述的那樣,測試管理器170能夠被編程為支持各種功能。這能夠包括諸如具有用于加速安全且可靠的應用的遞送的統(tǒng)一軟件平臺的應用生命周期管理(ALM)之類的示例功能。這包括為開發(fā)者、測試者以及商業(yè)分析遞送應用之間的協(xié)作提供框架的開發(fā)管理功能。測試管理器170還能夠使得能夠針對相應的應用定義、管理并且跟蹤軟件要求。例如,這能夠包括提供可重復的、可伸縮的、可自動化的功能以管理技術策略和可重用服務。經由接口組件支持合成應用以跨越生命周期管理高質量、可靠的且安全的合成應用。應用生命周期管理包括對于軟件即服務(SaaS)的支持。對于應用和部署還支持質量管理功能。這包括性能驗證,其中一組功能被提供來在基于項目的場景以及其他開發(fā)模式下測試應用性能。模塊化測試工具也被提供用于為應用迅速地開發(fā)自動化功能測試套件。
[0016]使用測試管理器170,規(guī)定的應用要求指導應用的開發(fā)。應用開發(fā)者和所規(guī)定的要求能夠被存儲在存儲器中以指導測試用例和測試套件的建立。例如,能夠在配置、部署以及使用場景方面定義這些。不同的測試用例和場景能夠作為應用模型140和策略150被捕獲。代表性部署能夠作為基礎設施模板被捕獲。能夠一鍵完成(例如,經由指向模板、模型、策略、工件并且執(zhí)行代碼的web站點)在目標配置中自動地運行測試套件。周期性地或在改變已隨著應用或經由手動改變或調度改變而發(fā)生了之后,這樣的改變能夠經由測試管理器170 (諸如調用API來傳遞新的工件并且運行測試)而自動化。安全測試還可以在開發(fā)的各種步驟處測試或者使得能實現(xiàn)安全挑戰(zhàn)。能夠通過改變策略以隨著選擇的或確定的部署遷移到生產環(huán)境來使得能實現(xiàn)開發(fā)運營。
[0017]當已基于匹配部署了應用之后,部署管理器120進一步能夠管理應用的生命周期的其他方面。例如,部署管理器120能夠監(jiān)視反饋,并且基于這樣的反饋來調整基礎設施資源。附加地或可替換地,部署管理器120能夠基于這樣的反饋或其他檢測到的事件動態(tài)地調整應用模型和對應的策略。類似地,這還能夠包括指令引退應用組件(例如,代碼、中間件(MW)、數(shù)據(jù)庫、操作系統(tǒng)(OS)等等)的較舊的版本并且安裝組件的新的版本以使得能實現(xiàn)應用在云基礎設施130中的繼續(xù)部署。
[0018]云130可以是混合的以便使得它可以是傳統(tǒng)數(shù)據(jù)中心的組合,所述傳統(tǒng)數(shù)據(jù)中心被做出成表現(xiàn)得像基礎設施資源、專用云(在內部開發(fā)的云技術)、公用云(由服務提供商提供)以及受管理云配置(在內部或在公用云/虛擬專用云中管理)。如本文中所使用的那樣,術語應用適用于組件的合集。此外,應用能夠針對其組件中的每一個由一組工件(例如,安裝程序、可執(zhí)行文件、配置等等)和被安裝并且與彼此交互的一組組件(例如,代碼、中間件(MW)、數(shù)據(jù)庫、操作系統(tǒng)(OS)等等)來表征。并且,如本文中所使用的那樣,術語確定能夠包括編譯、枚舉以及匹配。
[0019]如本文中所使用的那樣,術語“基本上”旨在指示雖然正被修改的術語的功能或結果是期望的或計劃中的結果但是一些變化能夠產生。在這個上下文中,例如,術語“基本上匹配”或其變體描述了結果得到的分析和比較被執(zhí)行以識別為相同的資源的情形;然而,在實踐中匹配能夠對應于充分地類似于使得能實現(xiàn)部署(上面識別為絕對匹配或盡力而為匹配)的一組資源。在一個以上這樣的一組資源可能對應于匹配情況下,部署管理器能夠選擇最佳匹配的一組可用資源。能夠利用用于選擇這樣的匹配的其他方法。
[0020]應用模型140能夠被采用來諸如通過用于應用的各種組件的元數(shù)據(jù)描述來表征用于部署在云基礎設施130上的給定應用110。部署管理器120能夠經由可由處理器執(zhí)行的指令或可由處理器讀取的數(shù)據(jù)來實現(xiàn)以基于與給定應用相關聯(lián)的應用模型140和策略150 (或諸策略)來分析對于給定應用110的應用要求。如將在下面所描述的那樣,策略150能夠被提供來描述應用110的附加的操作上下文(例如,在午夜之后操作應用、使用僅東海岸服務器、維護服務器之間的負荷均衡、部署在給定網(wǎng)絡域內、確保負荷在服務器上的規(guī)定限制之間、確保在給定窗口內不存在即將到來的維護等等以及匹配的“測量接近”的技術)。部署管理器120然后能夠確定在云基礎設施中足以實現(xiàn)如由模型140和策略150所規(guī)定的應用110的應用要求的基礎設施資源。
[0021]在一個示例中,部署管理器120能夠在使應用110的應用要求與如由資源供應和元數(shù)據(jù)160所規(guī)定的云的能力相匹配之后自動地將給定應用110部署在云基礎設施130上。在這種示例中,它通常相當于(可能通過調用管理基礎設施的和/或應用的生命周期的外部系統(tǒng))執(zhí)行在下面所描述的其他以下示例的指令。如本文中所使用的那樣,術語“應用”(例如,包括應用110)能夠包括將被安裝和執(zhí)行的一組組件。這樣的組件的示例包括除用來安裝和配置或卸載這樣的組件的代碼之外的多個分層邏輯、用戶接口(UI)、中間件(麗)、數(shù)據(jù)庫(DB)、操作系統(tǒng)(OS)。因此,應用110指的是還能夠包括這樣的組件和工件的儲存庫的組件和工件的這些集合。應用110還能夠由包括單獨的指針或一組組件的指針的組件和工件的指針來識別。在另一示例中,部署管理器120能夠生成關于如何將給定應用110部署在云基礎設施130上而通知系統(tǒng)(或用戶)的指令。在任何一個示例中,部署管理器120能夠自動地使如由模型140和策略150所規(guī)定的應用110的要求與如由資源供應和元數(shù)據(jù)160所規(guī)定的云130的能力相匹配。
[0022]與常規(guī)系統(tǒng)的手動過程相反系統(tǒng)100利用策略和模型驅動方法來使部署自動化。系統(tǒng)100能夠基于表征它們在基礎設施屬性方面的要求的模型140和策略150來動態(tài)地(或靜態(tài)地)優(yōu)化基礎設施資源(由元數(shù)據(jù)屬性來表征)并且將基礎設施資源綁定到應用110。這能夠包括使應用元數(shù)據(jù)與資源元數(shù)據(jù)相匹配以及考慮策略和上下文使應用和它們的組件/依賴性在云130上的優(yōu)化的或優(yōu)選的/標記的部署自動化而同樣無需手動部署步驟。在一個示例中,系統(tǒng)100允許實例的跟蹤同時還支持這樣的實例的自動化管理(例如,在下面所描述的自動化監(jiān)視和反饋)。不同的技術被提供來吸入、創(chuàng)造和設計還能夠描述基礎設施模板、應用模型以及策略的元數(shù)據(jù)。這樣的實例能夠連同應用110、應用模型140以及策略150 —起存儲在數(shù)據(jù)庫或儲存庫(未示出)中。
[0023]系統(tǒng)100能夠對于監(jiān)視應用采用閉合反饋回路(見圖4)。這樣的監(jiān)視應用能夠被利用來例如按比例放大或者按比例縮小應用執(zhí)行要求,以及利用來通知適當?shù)慕邮照?,諸如用戶或其他系統(tǒng)應用。在一個示例中,監(jiān)聽器能夠被安裝在各種組件中以從監(jiān)視捕獲事件。由監(jiān)聽器所接收到的事件能夠觸發(fā)處理機,所述處理機能夠在系統(tǒng)100上生成生命周期管理操作。一些生命周期管理操作的示例包括按比例放大、按比例縮小、移動、取消提供、向用戶或系統(tǒng)報警,并且運行另一可執(zhí)行文件,其可以牽涉本文中所描述的系統(tǒng)和其他應用的合成。
[0024]能夠在一個硬件平臺上或跨越多個硬件平臺實現(xiàn)系統(tǒng)100,其中能夠在一個平臺上或跨越多個平臺執(zhí)行系統(tǒng)中的模塊。這樣的模塊能夠在云技術(各種形式/和混合云)上運行或者作為能夠被實現(xiàn)在云上或云之外的SaaS (軟件即服務)提供。能夠在需要的基礎設施資源上自動地部署復雜應用,而同樣無需用戶理解如何執(zhí)行這樣的操作。策略150為幫助管理員減輕部署錯誤的操作指導方針提供自動化指令。元數(shù)據(jù)還能夠通過識別應用的類型(例如,經由Π或API)與應用相關聯(lián),然后用戶不必理解應用特性。這個方法對于應用基于它們與元數(shù)據(jù)的關聯(lián)而允許“最佳實踐”、推薦的或以強加的部署模型。
[0025]策略同樣允許使應用特性與其他上下文考慮事項(例如,關于用戶、關于應用、關于基礎設施、關于上下文、關于該特定用戶、關于特定應用等等)分離。這促進應用模型跨越許多應用的再使用。還能夠經由策略實現(xiàn)特殊化(例如,為一個應用與另一應用的關系規(guī)定特定的一組策略)。這還是例如系統(tǒng)如何強制實行特定的一組特性值對于給定應用或版本來說為固定的。例如,系統(tǒng)能夠對于web應用應用通用應用模型,然而在另一情況下,為模型的屬性顯式地規(guī)定不同的模型或特定值。還能夠從混合云提供資源(例如,一些資源從本地數(shù)據(jù)庫或服務器提供而一些資源從因特網(wǎng)服務提供)。
[0026]出于說明的簡單目的,在圖1的示例中,系統(tǒng)100的不同的組件被圖示和描述為執(zhí)行不同的功能。然而,本領域的普通技術人員應理解和了解,所描述的組件的功能能夠由不同的組件執(zhí)行,并且能夠在單一組件上組合和執(zhí)行數(shù)個組件的功能性。組件能夠被例如實現(xiàn)為計算機可執(zhí)行指令、硬件(例如,專用集成電路或處理單元),或者實現(xiàn)為兩者的組合。在其他示例中,組件能夠跨越網(wǎng)絡分布在遠程設備之中。在一個示例中,能夠定義拓撲,其中應用模板能夠包括應該部署哪些組件(例如,什么組件要被部署在哪一個位置處)的拓撲模型。在另一示例中,部署管理器120能夠提供有拓撲模型并且然后確定和它匹配的最好的基礎設施資源。在又一個示例中,在資源的提供和應用組件的部署之后,能夠創(chuàng)建拓撲實例。如本文中所公開的那樣,拓撲實例能夠被存儲和用于以后的管理、監(jiān)視。
[0027]圖2圖示了用于應用在云環(huán)境中的自動化測試和部署的測試管理器接口 200 (還被稱為接口 200)的示例。接口 200包括選擇窗格210,所述選擇窗格210使得能實現(xiàn)源代碼修改和設計、測試套件的構建和啟動、釋放和部署選項、多平臺編排(例如,在應用組件之間使事件同步)以及管理、運行并且使應用環(huán)境安全。例如,如本文中所描述的這樣的選擇窗格還能夠經由應用編程接口(API)而暴露于其他應用。服務和支持選項214包括服務治理(例如,金融協(xié)定、容量、廠商信息等等)。服務和支持選項214中的服務市場選項包括服務商店、產品商店、對實現(xiàn)、使用數(shù)據(jù)以及拒付信息的目錄請求。選項214中的支持中樞能夠包括用例交換和應用管理細節(jié)。選項214還能夠包括協(xié)作式用例管理,諸如針對應用的事故、問題、缺陷、要求、改變以及釋放數(shù)據(jù)的報告和跟蹤。信息數(shù)據(jù)庫220能夠存儲/交換到/來自本文中關于接口 200所描述的組件中的每一個的數(shù)據(jù)。
[0028]應用生命周期管理器224能夠包括用于對包括合成或混合應用的應用進行設計、建模、構建和測試的選項。服務實現(xiàn)組件230使得能實現(xiàn)服務設計合成和實現(xiàn)、應用建模、部署和工作負荷管理,以及基礎設施設計和實現(xiàn)。應用性能模塊(APM)使得能實現(xiàn)所部署的應用的性能測試、分析以及分級。服務操作和橋接組件240使得能實現(xiàn)事件處理、監(jiān)視、分析和報告以及與實時服務模型(RTSM)儲存庫的交互。基礎設施管理組件250提供了用于定義/搜索系統(tǒng)組件、網(wǎng)絡組件以及存儲組件的選項。這包括用于處理/分析故障、分析應用、網(wǎng)絡和/或系統(tǒng)性能并且提供用于配置選項的各種配置接口的選項。資源窗格260包括用于規(guī)定應用如何將被部署的選項,包括用于部署在公用云、受管理云、專用云、虛擬運營以及傳統(tǒng)部署上(例如,根據(jù)標準部署場景)的選項。
[0029]接口 200和本文中所描述的關聯(lián)的測試管理器(例如,圖1的測試管理器170)使得開發(fā)測試者和安全開發(fā)者能夠對于測試用應用和關聯(lián)的測試套件的部署具有全自動化。這包括基于模型的自動化,其進一步促進并且加速開發(fā)過程。接口 200促進待以此采用的模型和配置的創(chuàng)建。這能夠包括混合遞送模型,其中測試可以在專用云、公用云上,或者測試可以部分地在專用云和公用云上(例如,在測試容量需要(例如,以用于負荷測試)時的突發(fā))。測試能夠被從專用云自動地移動到公用云并且能夠自動相反地移動。
[0030]同樣給運營開發(fā)者提供了用于應用從開發(fā)和測試到生產的部署的全自動化。這包括生命周期管理在運營下的全自動化。基于模型的自動化使得能夠構建和再使用從類似的應用創(chuàng)建和/或在開發(fā)與測試時使用的模型。這同樣包括包括有公用和/或專用云部署的混合遞送模型的測試以及如先前所描述的測試。這能夠包括監(jiān)視源儲存庫以檢測改變并且以自動地啟動測試。這也還能夠包括用于周期性手動的和調度的測試的選項。
[0031]圖3圖示了用于應用的自動化部署和監(jiān)視的示例系統(tǒng)300。系統(tǒng)300包括用于應用的自動化部署的執(zhí)行引擎310。這樣的引擎還能夠包括用于與服務提供商建立服務級別協(xié)定的提供管理器并且能夠包括上面所描述的部署管理器。事件處理器和調度器314能夠被用于處理應用事件并且對與應用相關聯(lián)的任務進行調度。如本文中所公開的那樣,能夠定義和安裝監(jiān)聽器/處理機以用于監(jiān)視事件。這能夠包括對提供/部署和后續(xù)生命周期管理運營進行調度(例如,今夜或部署持續(xù)接下來2個星期)。配置監(jiān)視器320和規(guī)則引擎能夠被用于配置從應用提供反饋的監(jiān)視器組件324并且用于應用用于執(zhí)行該應用的規(guī)則和策略。例如,系統(tǒng)300包括能夠包括應用模型、基礎設施模型以及工件指針的模型數(shù)據(jù)庫330。
[0032]實例數(shù)據(jù)庫334能夠被采用來存儲應用的實現(xiàn)的目標實例。應用用戶接口 340能夠被采用來設計應用并且配置用于操作該應用的元數(shù)據(jù),然而基礎設施用戶接口 244能夠被采用來規(guī)定用于將應用部署在云中的基礎設施要求。例如,部署組件350能夠包括諸如可以經由部署秘訣(recipe)所規(guī)定的部署應用編程接口(API)和指令。一個或多個調出(call-out)354能夠為給定應用規(guī)定定制的操作指令。提供組件360能夠包括用于與各種云基礎設施組件交互的提供API和插件。
[0033]系統(tǒng)300能夠作為設計者工具被利用來構建/部署基礎設施和應用模板。它同樣允許應用開發(fā)者、測試者或其他管理員或設計者構建應用模型。類似地,它們能夠為應用的執(zhí)行和部署設計策略和規(guī)則。基礎設施和應用數(shù)據(jù)中的一些或全部能夠被吸入到分別作為數(shù)據(jù)庫330和340所示出的儲存庫中??商鎿Q地,這樣的基礎設施或應用數(shù)據(jù)能夠經由API來傳遞。應用工件(代碼、可執(zhí)行文件、安裝包等等)能夠經由數(shù)據(jù)庫或API被同樣吸入或參考。例如,API或入口用戶接口 340和344能夠被用來聯(lián)合或者上傳請求以在還規(guī)定要使用的應用模板和策略的同時進行匹配和部署。這樣的API和用戶接口能夠作為設計者工具的一部分被實現(xiàn)來定義元數(shù)據(jù)并且使元數(shù)據(jù)與基礎設施相關聯(lián)(例如,經由基礎設施模板和拓撲)。
[0034]能夠提供代理和監(jiān)視工具的準備和建立以便使得應用能夠發(fā)現(xiàn)實例(其已被儀表化并且如果需要具有代理)。這能夠在將應用及其關聯(lián)的組件綁定到基礎設施資源之后經由利用來部署基礎設施和應用元件的指令/秘訣來實現(xiàn)。事件/報告允許閉合反饋回路,所述閉合反饋回路能夠被用來如果策略允許則針對將來的改變(基于策略)按比例放大/按比例縮小或者更新上下文/策略以及通知適當?shù)姆交蛳到y(tǒng)(見圖4和下面的描述)。如上面所指出的那樣,云和資源池可以是其中一些資源被在本地服務而一些被遠程地服務的混合實體。對于能夠支持保證/監(jiān)視事件的自動定標、工作負荷管理以及處理的云或硬件資源,應用可以是自我管理的。這樣的自我管理例如利用反饋來確定性能,變更應用要求,并且視情況而定生成警報。
[0035]圖4圖示了對于應用在云基礎設施中的部署和管理利用閉環(huán)反饋的示例系統(tǒng)400。系統(tǒng)400包括執(zhí)行來自存儲器414的指令的處理單元410 (或處理器),所述存儲器414包括用于存儲與計算機相關聯(lián)的計算機可執(zhí)行指令的固件或其他存儲介質。處理單元410和存儲器420能夠作為部署工具420的一部分被提供,所述部署工具420經由部署管理器450將應用430部署在云基礎設施440上。如所示,反饋460從所部署的應用430被接收并且由監(jiān)視器組件470處理。這樣的反饋460可以是來自所部署的應用430的指示應用如何在執(zhí)行的狀態(tài)或事件。在一個示例中,反饋460能夠被采用來調整所部署的應用430的操作參數(shù),其已根據(jù)先前確定的應用要求被設置。例如,可以調整前臺任務以便使得任務在與目前正在執(zhí)行的不同數(shù)目的微秒期間操作。這能夠包括按比例放大或縮小所部署的應用430的操作要求。在另一示例中,反饋460可以被采用來調整云基礎設施440的操作基礎設施。例如,服務級別協(xié)定可以與云基礎設施服務提供商自動地重新協(xié)商以增加或者減少可用資源以適當?shù)貪M足所部署的應用430的操作需要。
[0036]計算機480能夠操作一個或多個接口 484以對應用模型490進行編程并且存儲在數(shù)據(jù)庫494中。計算機還能夠與部署工具420交互以變更部署并且促進應用的生命周期管理。接口 484還能夠配置基礎設施模板,變更操作要求,配置監(jiān)視器組件470,并且與在系統(tǒng)400內所生成的事件和警報交互。如先前所指出的那樣,連同在云上執(zhí)行一起,所部署的應用430能夠跨越不相關云傳播或者作為混合應用的一部分被提供。例如,能夠部分地在云基礎設施440上和部分地在作為與云不同的實體(例如,本地服務器數(shù)據(jù)庫對網(wǎng)絡數(shù)據(jù)庫)的數(shù)據(jù)庫494上執(zhí)行所部署的應用430。
[0037]鑒于上面所描述的前面的結構和功能特征,將參考圖5更好地了解示例方法。雖然出于說明的簡單目的,圖5的示例方法被示出和描述為串行地執(zhí)行,但是應當理解和了解的是,本示例不受所圖示的次序限制,因為一些動作在其他示例中能夠以不同的次序和/或同時根據(jù)本文中所示出和描述的次序發(fā)生。而且,不必要執(zhí)行所有描述的動作來實現(xiàn)方法。圖5的示例方法能夠被實現(xiàn)為能夠被存儲在非暫時性計算機可讀介質中的機器可讀指令,所述非暫時性計算機可讀介質諸如可以是計算機程序產品或其他形式的存儲器儲存器。與圖5的方法相對應的計算機可讀指令還能夠從存儲器存取并且由處理器(例如,圖4的處理單元410)執(zhí)行。
[0038]圖5圖示了用于應用的自動化部署的示例方法500。在510處,方法500包括處理對給定應用進行建模的應用元數(shù)據(jù)(例如,經由圖1的部署管理器120)。方法500包括在520處處理描述用于云執(zhí)行給定應用的資源的資源元數(shù)據(jù)。在530處,方法500針對給定應用配置一套測試(例如,經由圖1的測試管理器170)。在540處,方法500包括基于使應用元數(shù)據(jù)與資源元數(shù)據(jù)相匹配以便于執(zhí)行該套測試來將給定應用部署在云中。方法500還能夠包括自動地將給定應用部署在公用云或專用云中的至少一個上。方法500還能夠包括監(jiān)視針對儲存庫中的給定應用的改變并且基于改變的檢測自動地啟動一套測試。方法500還能夠包括在改變已隨著給定應用、經由手動改變或經由調度改變而發(fā)生了之后,通過傳遞新的應用工件并且以周期性方式在新的應用工件上運行測試來使改變自動化。該方法還包括在第一環(huán)境中使給定應用分階段進行并且將給定應用移動到至少一個其他環(huán)境。
[0039]方法500能夠作為諸如圖1或4中所描繪的示例之類的系統(tǒng)的一部分被自動地執(zhí)行。系統(tǒng)能夠包括用于存儲與計算機相關聯(lián)的計算機可執(zhí)行指令的存儲器和用于訪問存儲器、執(zhí)行計算機可執(zhí)行指令并且從而執(zhí)行方法500的處理單元。計算機可執(zhí)行指令能夠包括存儲在存儲器中以表征用于部署在云基礎設施上的給定應用的應用模型,其中該應用模型能夠由應用元數(shù)據(jù)來描述。在存儲器中存儲的部署管理器能夠分析給定應用的應用元數(shù)據(jù)和與給定應用相關聯(lián)的策略以確定云基礎設施中的基礎設施資源?;A設施資源能夠被規(guī)定為資源元數(shù)據(jù)。部署管理器能夠自動地使應用元數(shù)據(jù)與資源元數(shù)據(jù)基本上匹配(例如,識別最接近匹配)以實現(xiàn)應用要求。測試管理器能夠被存儲在存儲器中以經由部署管理器針對給定應用在云中配置和啟動應用部署的測試套件。監(jiān)視器組件能夠根據(jù)給定應用在云中的部署來監(jiān)視測試條件并且以為給定應用提供與所監(jiān)視到的測試條件相對應的反饋。
[0040]圖6圖不了用于云應用的自動化部署的不例部署系統(tǒng)600。系統(tǒng)600包括應用模型610以表征用于部署在諸如上面關于圖1所示出的云基礎設施上的給定應用620。部署管理器630基于與給定應用相關聯(lián)的應用模型610和策略640來分析對于給定應用620的應用要求以確定在云基礎設施中用來實現(xiàn)該應用要求的基礎設施資源。測試管理器650能夠經由部署管理器針對給定應用來配置和啟動應用部署的測試套件。
[0041]圖7圖示了用于使云730的資源能力720與應用的應用要求740相匹配的部署管理器710的示例。資源能力720能夠包括資源供應750,所述資源供應750可以來自由支持云730的多個資源提供商所提供的資源供應的池。例如,這樣的資源供應能夠包括云服務(例如,可經由對應的應用程序接口(API)訪問)、能夠激活并且提供這樣的服務的現(xiàn)有系統(tǒng)、或現(xiàn)有外部合成物(具有功能調用的參數(shù)化工作流/合成腳本)中的一個或多個。資源供應750能夠由資源提供商編譯/從資源提供商吸入。資源能力720同樣包括與表征資源的感興趣屬性的每個資源供應相關聯(lián)的資源元數(shù)據(jù)760。例如,這樣的元數(shù)據(jù)760能夠規(guī)定除其他規(guī)格、容量、SLA、調度維護、工作負荷(如果已經在部分使用中)外的位置/拓撲(例如,針對合成資源)、硬件、CPU、存儲器、所包括或支持的操作系統(tǒng)、其他軟件方面以及標簽。
[0042]資源元數(shù)據(jù)760能夠與由資源設計或吸入過程所設計或添加到資源池的任何資源相關聯(lián)。描述應用模型和資源供應的元數(shù)據(jù)能夠經由設計者(例如,工具、入口 Π或API)來捕獲以描述元數(shù)據(jù)。包括秘訣(例如,與用于諸如取消部署和監(jiān)視之類的部署和其他生命周期管理功能的指令相對應)的元數(shù)據(jù)能夠構成資源模板。由元數(shù)據(jù)所規(guī)定的資源元數(shù)據(jù)760和所關聯(lián)的資源供應750能夠作為能夠被其他應用利用的模板(例如,元數(shù)據(jù)和供應的數(shù)據(jù)文件)的一部分被提供。
[0043]給定應用的應用要求740能夠經由能夠在應用設計時或在應用設計之后定義的應用元數(shù)據(jù)770規(guī)定。這能夠包括待個別地部署的組件(例如,多個層中的多個應用)。應用元數(shù)據(jù)770還能夠規(guī)定關于資源的要求/偏好。這能夠包括作為工作流或過程(異步的或同步的)的通用部署腳本。部署腳步能夠進一步包括用于每個組件的部署指令(例如,用來在分配的資源上運行的腳本、服務的指令等等)。這能夠包括用來部署代理或者為監(jiān)視和/或管理做好準備的關聯(lián)指令。能夠跨越組件應用指令。一般而言,應用元數(shù)據(jù)770能夠表示上面關于圖1所描述的應用模型。給定應用模型能夠被存儲在存儲器中并且由多個應用利用來促進其部署。如先前所指出的那樣,應用能夠包括提供有被部署腳本利用的應用的多個合作組件和工件(例如,源或可執(zhí)行的和可安裝的)。
[0044]如所示,能夠提供適用于應用/基礎設施并且參考用于操作應用的上下文的附加的策略780。例如,策略可以規(guī)定應用的位置(例如,僅在東海岸服務器上操作)、時間(例如,在午夜之后并且在上午6點之前操作)、處理要求(例如,所規(guī)定的處理速度和存儲器需要)和/或負荷均衡要求(例如,無服務器將在超過50%負荷情況下操作)、SLA、可用性要求(例如,在接下來X天內無調度的維護等)、安全(例如,特定網(wǎng)絡域或安全域)。
[0045]應用能夠由部署管理器710通過檢索所關聯(lián)的元數(shù)據(jù)770并且基于最佳匹配(如果例如由策略強加則可以是確切標記)和資源池中可用的資源供應750匹配來部署。資源元數(shù)據(jù)760與應用元數(shù)據(jù)770的匹配可以是根據(jù)嚴格規(guī)格的(例如,處理器必須在I GHZ下操作)或者能夠根據(jù)閾值規(guī)格(例如,在500 MHZ之上操作的任何處理器都是可接受的)被匹配。因此,匹配在該匹配是最佳擬合或接近于所期望的匹配準則情況下可以是絕對匹配或者可以是基本匹配。秘訣能夠由部署管理器710處理并且指的是用于應用部署的代碼/工件。例如,這樣的秘訣能夠經由已知儲存庫位置變得可用或者經由秘訣的指針來參考。例如,對應于應用的合成資源的拓撲能夠被部署管理器710保存為新的資源類型以用于在類似的應用元數(shù)據(jù)被另一應用使用時再使用。相同的應用或類似的應用的多個版本能夠再使用相同的應用元數(shù)據(jù),但是,例如,采用不同的策略來涉及操作上下文。
[0046]上面已描述的是示例。當然,不可能描述組件或方法的每個可想象到的組合,但是本領域的普通技術人員應認識到,許多另外的組合和排列是可能的。因此,本發(fā)明旨在包含落入本申請(包括所附權利要求)的范圍內的所有這樣的變更、修改以及變化。附加地,在本公開內容或權利要求記載“一”、“一個”、“第一”或“另一”元件或其等同物情況下,它應該被解釋成包括一個或一個以上這樣的元件,既不要求也不排除兩個或更多個這樣的元件。如本文中所使用的那樣,術語“包括”意指包括但不限于,并且術語“包括有”意指包括有但不限于。術語“基于”意指至少部分地基于。
【權利要求】
1.一種系統(tǒng),其包括: 應用模型,被存儲在存儲器中,以表征用于部署在云上的給定應用; 部署管理器,與可由處理器執(zhí)行的指令相對應,以基于與所述給定應用相關聯(lián)的所述應用模型和策略來分析對于所述給定應用的應用要求以和在所述云中用來實現(xiàn)所述應用要求的基礎設施資源基本上匹配;以及 測試管理器,與可由所述處理器執(zhí)行的指令相對應,以經由所述部署管理器針對所述給定應用來配置和啟動應用部署的測試套件。
2.根據(jù)權利要求1所述的系統(tǒng),其中所述部署管理器將基于來自所述測試管理器的命令自動地將所述給定應用部署在所述云上。
3.根據(jù)權利要求1所述的系統(tǒng),進一步包括應用編程接口(API)以監(jiān)視儲存庫中的應用改變并且經由所述部署管理器來啟動應用部署的所述測試套件。
4.根據(jù)權利要求1所述的系統(tǒng),進一步包括用戶接口以經由所述部署管理器來配置和啟動應用部署的所述測試套件。
5.根據(jù)權利要求4所述的系統(tǒng),其中所述用戶接口進一步將命令所述部署管理器將所述給定應用從測試移動到生產。
6.根據(jù)權利要求5所述的系統(tǒng),其中所述用戶接口進一步將使得能實現(xiàn)為所述給定應用的所述移動規(guī)定目的地位置、為所述給定應用規(guī)定能力或者為所述給定應用規(guī)定服務質量(QoS)中的至少一個的策略改變。
7.根據(jù)權利要求4所述的系統(tǒng),其中所述用戶接口提供接口選項以針對開發(fā)測試環(huán)境、開發(fā)安全環(huán)境、開發(fā)運營環(huán)境或質量保障環(huán)境中的至少一個來配置應用部署的所述測試套件。
8.根據(jù)權利要求4所述的系統(tǒng),其中所述用戶接口包括選擇窗格,所述選擇窗格包括源代碼選擇用戶接口元件、構建測試選擇用戶接口元件、版本和部署選擇用戶接口元件、多平臺編排選擇用戶接口元件以及管理、運行和安全選擇用戶接口元件。
9.根據(jù)權利要求4所述的系統(tǒng),其中所述用戶接口包括資源窗格,所述資源窗格包括用于公用云、專用云、受管理云、虛擬運營以及傳統(tǒng)配置的配置功能選項。
10.根據(jù)權利要求4所述的系統(tǒng),其中所述用戶接口包括用來對測試組件進行設計、建模和構建的自動化選項卡管理器、用于服務設計、應用建模、工作負荷管理和基礎設施設計的服務實現(xiàn)組件、用于配置事件、性能和分析的服務和運營網(wǎng)橋,或用來管理所述云中的所述基礎設施資源的故障、性能和配置的基礎設施管理組件。
11.一種方法,其包括: 由計算機處理用來對給定應用進行建模的應用元數(shù)據(jù); 由所述計算機處理用來描述用于云執(zhí)行所述給定應用的資源的資源元數(shù)據(jù); 由所述計算機配置針對所述給定應用的一套測試;以及 由所述計算機基于使所述應用元數(shù)據(jù)與所述資源元數(shù)據(jù)相匹配以便于執(zhí)行該套測試將所述給定應用部署在所述云中。
12.根據(jù)權利要求11所述的方法,進一步包括在改變已隨著所述給定應用、經由手動改變或經由調度改變而發(fā)生了之后,通過以周期性方式傳遞新的應用工件并且對所述新的應用運行測試來使改變自動化。
13.根據(jù)權利要求11所述的方法,進一步包括在第一環(huán)境中使所述給定應用分階段進行并且將所述給定應用移動到至少一個其他環(huán)境。
14.一種系統(tǒng),包括: 存儲器,其用于存儲與計算機相關聯(lián)的計算機可執(zhí)行指令;以及 處理單元,其用于訪問所述存儲器并且執(zhí)行所述計算機可執(zhí)行指令,所述計算機可執(zhí)行指令包括: 應用模型,其被存儲在所述存儲器中以表征用于部署在云上的給定應用,其中所述應用模型由應用元數(shù)據(jù)來描述; 部署管理器,其被存儲在所述存儲器中以分析所述給定應用的所述應用元數(shù)據(jù)和與所述給定應用相關聯(lián)的策略來確定所述云中的基礎設施資源,其中所述基礎設施資源被規(guī)定為資源元數(shù)據(jù)并且所述部署管理器自動地使所述應用元數(shù)據(jù)與所述資源元數(shù)據(jù)相匹配以實現(xiàn)應用要求;以及 測試管理器,其被存儲在所述存儲器中以經由所述部署管理器針對所述給定應用在所述云中配置和啟動應用部署的測試套件。
15.根據(jù)權利要求14所述的系統(tǒng),進一步包括監(jiān)視器組件用以根據(jù)所述給定應用在所述云中的部署來監(jiān)視測試條件并且用以為所述給定應用提供與所監(jiān)視到的測試條件相對應的反饋。
【文檔編號】G06F15/16GK104246740SQ201280072843
【公開日】2014年12月24日 申請日期:2012年6月8日 優(yōu)先權日:2012年6月8日
【發(fā)明者】H. 梅斯 S., 巴拉赫瓦 R., S. 特里普 T., S. 桑哈瓦拉姆 V., 齊爾伯斯坦 A., 滕勒 D. 申請人:惠普發(fā)展公司,有限責任合伙企業(yè)