用于在一個(gè)或多個(gè)云系統(tǒng)上便攜部署應(yīng)用的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及使得能夠有效地部署要求將服務(wù)和便攜性供應(yīng)給一個(gè)或多個(gè)云服務(wù) 基礎(chǔ)設(shè)施的應(yīng)用的方法和系統(tǒng)。
【背景技術(shù)】
[0002] 相關(guān)技術(shù)描述
[0003] 計(jì)算行業(yè)的爆炸性增長(zhǎng)已導(dǎo)致要求供應(yīng)以使得能夠在一個(gè)或多個(gè)環(huán)境(例如,云 服務(wù))中發(fā)動(dòng)的應(yīng)用的數(shù)量的上升。這些應(yīng)用包括可以被設(shè)計(jì)用于不同硬件/軟件平臺(tái)的商 業(yè)應(yīng)用、社交媒體應(yīng)用、游戲應(yīng)用等。有時(shí),最初被供應(yīng)來在一個(gè)特定環(huán)境中發(fā)動(dòng)的應(yīng)用可 能需要在不同環(huán)境中發(fā)動(dòng)。為了使在另一或不同環(huán)境中成功地發(fā)動(dòng)應(yīng)用,將要求應(yīng)用開發(fā) 者識(shí)別/指定在每個(gè)環(huán)境中成功地執(zhí)行應(yīng)用和其它重新供應(yīng)所要的必需的且最少的硬件、 軟件資源。
[0004] 不幸地,非常常見的是設(shè)計(jì)原始發(fā)動(dòng)要求的開發(fā)者/供應(yīng)工程師可能不再為相同 實(shí)體工作或可以確定最初指派的資源可能隨時(shí)間推移而過期或被取代。因此,通常非常難 以維持較舊應(yīng)用和將應(yīng)用迀移到可具有完全不同的資源、供應(yīng)規(guī)則和其它操作要求的不同 發(fā)動(dòng)環(huán)境。
[0005] 應(yīng)用的迀移例如可以包括從具有第一資源集的一個(gè)云服務(wù)切換到具有不同于第 一資源集的第二資源集的第二云服務(wù)。切換需要可以受成本、性能、使用、資源可用性等所 驅(qū)使,且變化可以是使應(yīng)用執(zhí)行環(huán)境更劃算同時(shí)使環(huán)境資源最優(yōu)地且有效地使用所必需 的。為了在新環(huán)境中成功地運(yùn)行應(yīng)用,必須進(jìn)行諸多重組工程以確保在新環(huán)境內(nèi)滿足最低 資源要求且資源/服務(wù)依賴性是恰當(dāng)?shù)牟⒈幻鞔_地定義。通常,手動(dòng)地實(shí)行應(yīng)用環(huán)境的這些 變化。不幸但非常常見的是,手動(dòng)核對(duì)可以導(dǎo)致非期望結(jié)果和過多重組工程,因?yàn)槌粍澦?外詳情被忽視或遺失的概率更高。
[0006]在這個(gè)背景下,出現(xiàn)本發(fā)明的實(shí)施方案。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的實(shí)施方案提供一種允許在一個(gè)云服務(wù)/平臺(tái)上或跨多個(gè)云服務(wù)/平臺(tái)部 署應(yīng)用實(shí)例的多云部署機(jī)構(gòu)。部署機(jī)構(gòu)包括使用在應(yīng)用中所提供的規(guī)范以在其中例示應(yīng)用 的云服務(wù)/平臺(tái)中的任何一個(gè)中管理服務(wù)、資源和服務(wù)狀態(tài)的工作流程。部署機(jī)構(gòu)提供被應(yīng) 用開發(fā)者用來指定資源要求以在云服務(wù)的環(huán)境中成功地執(zhí)行應(yīng)用的框架,且部署機(jī)構(gòu)將在 所述環(huán)境中自動(dòng)地供應(yīng)必需資源/服務(wù)。為了完成供應(yīng)必需資源/服務(wù)的任務(wù),部署機(jī)構(gòu)將 確定將需要采取的動(dòng)作、通過各自工作流程調(diào)度動(dòng)作、監(jiān)控動(dòng)作、和提供采取的動(dòng)作的日志 以便確定是否已供應(yīng)所要或足夠的服務(wù)/資源和提供環(huán)境狀態(tài)以成功地執(zhí)行應(yīng)用。
[0008] 在一個(gè)實(shí)施方案中,框架可以提供一種使得部署工程師能夠指定應(yīng)用所需的資源 而無須具體地識(shí)別和供應(yīng)特定服務(wù)的描述符方法。在一種實(shí)施方式中,描述符方法可以按 JS0N描述符文檔的形式。JS0N描述符文檔包括其中應(yīng)用被設(shè)計(jì)來執(zhí)行的每個(gè)環(huán)境的記錄。 JSON記錄用來概述執(zhí)行應(yīng)用所需的所有服務(wù)和資源的細(xì)節(jié),包括將需要在將執(zhí)行的應(yīng)用的 環(huán)境內(nèi)供應(yīng)的云服務(wù)、網(wǎng)絡(luò)、存儲(chǔ)裝置、處理器類型或任何其它種類的技術(shù)資源。接著,部署 機(jī)構(gòu)將要求轉(zhuǎn)化成將需要采取的特定動(dòng)作。在例示時(shí),在轉(zhuǎn)化中所識(shí)別的動(dòng)作中的每個(gè)與 被設(shè)計(jì)來供應(yīng)所要資源或服務(wù)的工作流程相關(guān)聯(lián)。因此,部署機(jī)構(gòu)為共生服務(wù)的復(fù)雜的且 可擴(kuò)展的系統(tǒng),所述共生服務(wù)通過集中消息代理彼此進(jìn)行通信以得到信息和協(xié)調(diào)工作流程 任務(wù)的復(fù)雜的且時(shí)間依賴的編排。部署機(jī)構(gòu)包括用來提供可靠環(huán)境平臺(tái)以托管應(yīng)用的松散 耦合的且分布式的服務(wù)組件和后端服務(wù)。部署機(jī)構(gòu)提供在開發(fā)、測(cè)試、生產(chǎn)和維護(hù)應(yīng)用(諸 如游戲應(yīng)用、娛樂應(yīng)用、商業(yè)服務(wù)應(yīng)用、互聯(lián)網(wǎng)應(yīng)用、網(wǎng)站分配等)期間供應(yīng)、增添、配置、使 用、監(jiān)控、故障排解、擴(kuò)展和關(guān)閉服務(wù)/資源的能力。
[0009] 在一個(gè)實(shí)施方案中,提供一種方法。所述方法包括檢測(cè)用于在云服務(wù)的環(huán)境中執(zhí) 行應(yīng)用的請(qǐng)求。響應(yīng)于請(qǐng)求,訪問來自存儲(chǔ)庫(kù)的描述符文件。描述符文件包括針對(duì)在一個(gè)或 多個(gè)云服務(wù)上執(zhí)行的每個(gè)應(yīng)用定義的一個(gè)或多個(gè)描述符記錄。響應(yīng)于請(qǐng)求,從描述符文件 檢索應(yīng)用的描述符記錄。描述符記錄專用于云服務(wù)環(huán)境且提供在云服務(wù)上執(zhí)行應(yīng)用所要的 環(huán)境資源或服務(wù)的詳情。將在描述符記錄中所定義的資源和服務(wù)要求轉(zhuǎn)化成將需要在云服 務(wù)環(huán)境中采取的一個(gè)或多個(gè)動(dòng)作以供應(yīng)服務(wù)和資源來執(zhí)行應(yīng)用。響應(yīng)于請(qǐng)求,提供采取的 動(dòng)作的狀態(tài)。狀態(tài)用于確定所要資源和服務(wù)是否已被供應(yīng)來在云服務(wù)中成功地執(zhí)行應(yīng)用。
[0010] 在另一實(shí)施方案中,公開一種方法。所述方法包括接收在云系統(tǒng)上執(zhí)行應(yīng)用所要 的一個(gè)或多個(gè)資源和一個(gè)或多個(gè)服務(wù)的屬性。使用接收的屬性生成應(yīng)用的描述符記錄。描 述符記錄定義專用于云系統(tǒng)的環(huán)境配置文件。通過將資源和服務(wù)要求轉(zhuǎn)化成將需要采取的 一個(gè)或多個(gè)動(dòng)作以在云系統(tǒng)中供應(yīng)所要資源和服務(wù)以成功地執(zhí)行應(yīng)用來生成描述符記錄。 將描述符記錄存儲(chǔ)在維持在部署系統(tǒng)數(shù)據(jù)庫(kù)中的描述符文件中以在于云系統(tǒng)中后續(xù)地執(zhí) 行應(yīng)用期間進(jìn)行檢索。檢索造成觸發(fā)在描述符記錄中所識(shí)別的動(dòng)作以在云系統(tǒng)上供應(yīng)所要 服務(wù)和資源以使得能夠成功地執(zhí)行應(yīng)用。
[0011] 從結(jié)合附圖所作、通過舉例說明本發(fā)明原理的下文詳述,本發(fā)明的其它方面將變 得顯而易見。
【附圖說明】
[0012] 通過參考結(jié)合附圖所作的下文描述,可以最好地了解本發(fā)明。
[0013] 圖1示出根據(jù)本發(fā)明的實(shí)施方案的其中提供部署機(jī)構(gòu)的系統(tǒng)的概述圖。
[0014] 圖1A示出根據(jù)本發(fā)明的實(shí)施方案的部署在云系統(tǒng)中的服務(wù)(即,應(yīng)用)的使用周 期。
[0015] 圖1B示出根據(jù)本發(fā)明的實(shí)施方案的部署機(jī)構(gòu)的簡(jiǎn)化概述圖。
[0016]圖2示出根據(jù)本發(fā)明的不同實(shí)施方案的識(shí)別部署機(jī)構(gòu)的各種核心服務(wù)模塊和服務(wù) 組件的服務(wù)架構(gòu)。
[0017] 圖3示出根據(jù)本發(fā)明的實(shí)施方案的示例性發(fā)布環(huán)境視圖。圖3A示出根據(jù)本發(fā)明的 實(shí)施方案的用于發(fā)布環(huán)境的示例性預(yù)覽視窗屏幕演示。
[0018] 圖4示出在本發(fā)明的一個(gè)實(shí)施方案中的指定從環(huán)境歷史頁(yè)面內(nèi)的特定工作流程執(zhí) 行的示例性工作流程步驟的日志(識(shí)別工作流程動(dòng)作/活動(dòng))的示例性視圖。
[0019] 圖5示出根據(jù)本發(fā)明的一個(gè)實(shí)施方案的示例性環(huán)境動(dòng)作(工作流程執(zhí)行)預(yù)覽視 窗。
[0020] 圖6示出根據(jù)本發(fā)明的實(shí)施方案的示例性環(huán)境動(dòng)作(工作流程執(zhí)行)狀態(tài)視窗。
[0021] 圖7示出根據(jù)本發(fā)明的實(shí)施方案的演示環(huán)境歷史概況的示例性屏幕。
[0022]圖8示出根據(jù)本發(fā)明的實(shí)施方案的演示環(huán)境歷史概況內(nèi)的工作流程錯(cuò)誤的示例性 屏幕。
[0023]圖9示出根據(jù)本發(fā)明的實(shí)施方案的演示環(huán)境歷史中的請(qǐng)求者詳情的示例性屏幕。 [0024]圖10示出根據(jù)本發(fā)明的實(shí)施方案的用于執(zhí)行應(yīng)用的用戶配置文件的示例性屏幕。
[0025] 圖11示出根據(jù)本發(fā)明的實(shí)施方案的個(gè)人請(qǐng)求訪問部署機(jī)構(gòu)的一般工作流程。
[0026] 圖12示出根據(jù)本發(fā)明的實(shí)施方案的如在部署機(jī)構(gòu)中所提供的訪問的級(jí)別之間的 層級(jí)關(guān)系。
[0027] 圖13示出根據(jù)本發(fā)明的實(shí)施方案的部署系統(tǒng)環(huán)境描述符工作流程。
[0028] 圖14示出根據(jù)本發(fā)明的實(shí)施方案的捕捉應(yīng)用服務(wù)狀態(tài)的示例性屏幕演示。
[0029] 圖15示出根據(jù)本發(fā)明的實(shí)施方案的部署系統(tǒng)的示例性發(fā)布模型。
[0030] 圖16示出根據(jù)本發(fā)明的實(shí)施方案的進(jìn)程流程圖,其示出由部署機(jī)構(gòu)所遵循的方 法。
[0031] 圖17示出根據(jù)本發(fā)明的替代實(shí)施方案的進(jìn)程流程圖,其示出由部署機(jī)構(gòu)所遵循的 方法。
【具體實(shí)施方式】
[0032]本發(fā)明的實(shí)施方案提供一個(gè)或多個(gè)云部署機(jī)構(gòu),其允許在一個(gè)或多個(gè)云服務(wù)/平 臺(tái)中部署應(yīng)用實(shí)例和自動(dòng)地供應(yīng)必需資源/服務(wù)以在部署的云服務(wù)/平臺(tái)中成功地執(zhí)行應(yīng) 用實(shí)例。部署機(jī)構(gòu)為彼此進(jìn)行通信且協(xié)調(diào)工作流程任務(wù)的復(fù)雜編排的可擴(kuò)展共生服務(wù)系 統(tǒng)。工作流程任務(wù)以有序時(shí)間或循序方式操作,因?yàn)椴渴饳C(jī)構(gòu)框架追蹤哪個(gè)任務(wù)已完成和 哪個(gè)任務(wù)需要在其它任務(wù)之前處理以維持協(xié)調(diào)的且共生的執(zhí)行。部署機(jī)構(gòu)包括核心服務(wù)組 件的集中集、后端服務(wù)集和服務(wù)層。核心服務(wù)組件被配置來與終端用戶進(jìn)行交互,以管理操 作工作流程和協(xié)調(diào)核心服務(wù)組件與托管在環(huán)境內(nèi)的環(huán)境資源之間的通信。核心服務(wù)組件被 配置來供應(yīng)資源(諸如服務(wù)器/處理器、存儲(chǔ)器等)、配置服務(wù)/應(yīng)用、部署軟件、配置域名系 統(tǒng)、自動(dòng)擴(kuò)展資源/服務(wù)、監(jiān)控應(yīng)用和資源狀態(tài)、管理存儲(chǔ)裝置等。核心服務(wù)組件通過充當(dāng)核 心服務(wù)組件與后端服務(wù)之間的聯(lián)絡(luò)器的服務(wù)層與后端服務(wù)進(jìn)行通信。分布式服務(wù)層提供抽 象層以使核心服務(wù)組件可使用基于消息的通信相互操作且可容易隨著技術(shù)進(jìn)步而被取代。 可擴(kuò)展框架允許新技術(shù)包裝在服務(wù)層內(nèi)且整合到云服務(wù)中而不影響核心服務(wù)組件集??蓴U(kuò) 展框架還允許終端用戶基于隨時(shí)間推移伴隨的變化需要和/或技術(shù)進(jìn)步更新現(xiàn)有服務(wù),改 變或移除舊服務(wù)和整合新服務(wù)。
[0033]在一個(gè)實(shí)施方案中,以JSON(JavaScript對(duì)象標(biāo)注)的形式提供框架。用于定義要 求的JS0N描述符的使用是示例性的且不應(yīng)被視為限制性,因?yàn)榭梢允褂闷渌绦蛘Z(yǔ)言、或 其它語(yǔ)法或文件形式或數(shù)據(jù)結(jié)構(gòu)。描述符文件表示名稱/值對(duì)的樹結(jié)構(gòu)且包括多個(gè)記錄,其 中描述符文件中的每個(gè)記錄指定用于在特定云服務(wù)或服務(wù)器計(jì)算系統(tǒng)的環(huán)境中執(zhí)行應(yīng)用 的服務(wù)/資源要求。每個(gè)記錄例如指定需要被供應(yīng)以便在特定環(huán)境中執(zhí)行應(yīng)用的存儲(chǔ)裝置、 網(wǎng)絡(luò)、處理資源、云服務(wù)和其它種類的技術(shù)資源要求。
[0034]圖1示出在一個(gè)實(shí)施方案中的用來將應(yīng)用部署到云服務(wù)的特定環(huán)境上的部署機(jī)構(gòu) 的簡(jiǎn)化概述圖。在這個(gè)實(shí)施方案中,開發(fā)應(yīng)用110的應(yīng)用開發(fā)者可通過應(yīng)用編程界面(API) 訪問部署機(jī)構(gòu)以指定成功地執(zhí)行應(yīng)用110所要的資源/服務(wù)。部署機(jī)構(gòu)在圖1中表示為云生 態(tài)系統(tǒng)(ECO)核心模塊120且用來訪問ECO的API表示為ECO API。部署機(jī)構(gòu)120允許開發(fā)者描 述在其中將執(zhí)行應(yīng)用110的環(huán)境122。例如,部署機(jī)構(gòu)可以提供工具(諸如通過圖形用戶界面 或命令行界面訪問的API),以允許開發(fā)者指定在環(huán)境中所要的最少資源和/或服務(wù)使得可 執(zhí)行應(yīng)用110。前述工具是示例性的且不應(yīng)被視為詳盡性的。其它工具或方式可以被提供來 使得開發(fā)者能夠指定用于執(zhí)行他/她已開發(fā)的應(yīng)用的環(huán)境。由開發(fā)者指定的環(huán)境描述122提 供為更新到描述符文件124(諸如JS0N描述符文件)的描述符記錄。在替代實(shí)施方案中,開發(fā) 者可以將應(yīng)用代碼提供給部署機(jī)構(gòu)120。部署機(jī)構(gòu)120可以分析應(yīng)用代碼以確定在特定環(huán)境 中成功地執(zhí)行應(yīng)用所要的資源/服務(wù)。資源/服務(wù)要求信息用來定義更新到描述符文件且在 執(zhí)行應(yīng)用期間用于在特定環(huán)境中供應(yīng)服務(wù)/資源的描述符記錄。
[0035] 顧名思義,JS0N( JavaScript在線標(biāo)注)描述符使用JavaScript腳本語(yǔ)言來定義以 屬性名稱-值對(duì)的形式的數(shù)據(jù)對(duì)象,且用來傳輸應(yīng)用與服務(wù)組件之間的數(shù)據(jù)。應(yīng)明白,JS0N 為另一示例性代碼語(yǔ)言且只要提供功能,就可以使用其它語(yǔ)言。在這個(gè)實(shí)例中,JS0N描述符 124采取由開發(fā)者提供的規(guī)范或由機(jī)構(gòu)識(shí)別的要求,并生成將服務(wù)/資源要求(即,屬性名 稱-值對(duì)中的屬性名稱)映射到需要被執(zhí)行來針對(duì)云服務(wù)的每個(gè)環(huán)境(在其上應(yīng)用被托管來 執(zhí)行)供應(yīng)必需服務(wù)/資源(即,屬性名稱-值對(duì)的值)的動(dòng)作的記錄(例如,描述符或ECO記錄 126)。描述符記錄與應(yīng)用實(shí)例相關(guān)聯(lián)使得在以后需要在環(huán)境中執(zhí)行應(yīng)用時(shí),可以快速地識(shí) 別應(yīng)用的正確描述符記錄且適當(dāng)資源和服務(wù)被提供來在環(huán)境中成功地執(zhí)行應(yīng)用實(shí)例。在一 個(gè)實(shí)施方案中,生成的記錄126中的每個(gè)例如識(shí)別在各自環(huán)境中成功地執(zhí)行應(yīng)用所要的最 少資源/服務(wù),諸如數(shù)據(jù)庫(kù)/存儲(chǔ)裝置124a、處理器124b、網(wǎng)絡(luò)124c、密鑰管理124d、其它資源 124e、其它服務(wù)124f等。使用在ECO描述符記錄(即,描述符記錄)中所提供的信息,E⑶核心 (即,部署機(jī)構(gòu))識(shí)別需要被采取來供應(yīng)服務(wù)/資源的必需動(dòng)作128。針對(duì)在EC0描述符記錄中 所識(shí)別的每個(gè)動(dòng)作例示工作流程128a使得在各自環(huán)境中供應(yīng)必需服務(wù)和資源。識(shí)別的動(dòng)作 可以包括需要在執(zhí)行應(yīng)用實(shí)例之前采取的動(dòng)作、需要在執(zhí)行應(yīng)用實(shí)例期間采取的動(dòng)作和需 要在完成應(yīng)用實(shí)例之后采取的動(dòng)作。因此,動(dòng)作可以包括供應(yīng)所要資源、檢查供應(yīng)的資源的 資源依賴性、迀移一個(gè)或多個(gè)資源或服務(wù)、停止服務(wù)、例示應(yīng)用和/或資源/服務(wù)、核對(duì)應(yīng)用 的成功完成、檢查錯(cuò)誤日志以確定是否成功地執(zhí)行應(yīng)用等。
[0036] 一旦識(shí)別工作流程128a,那么通過工作流程服務(wù)工作者進(jìn)程集執(zhí)行工作流程128a 以允許工作流程采取在適當(dāng)云服務(wù)130中供應(yīng)資源/服務(wù)的必需動(dòng)作、例示應(yīng)用、生成關(guān)于 服務(wù)/資源的采取/未采取的動(dòng)作的狀態(tài)的日志和傳回采取/未采取的動(dòng)作的狀態(tài)。動(dòng)作狀 態(tài)可以用于將應(yīng)用執(zhí)行更新提供給開發(fā)者。其中資源/服務(wù)被提供來執(zhí)行應(yīng)用的云服務(wù)環(huán) 境可以是私人或公共的可用云服務(wù)/環(huán)境。
[0037]基于在映射到應(yīng)用的一個(gè)或多個(gè)資源/服務(wù)處所檢測(cè)到的變化周期性地更新EC0 記錄。例如,在一個(gè)實(shí)施方案中,可以移除舊資源和添加新資源,可以歸因于故障、例行維護(hù) 等對(duì)資源進(jìn)行移除、改變、取代和/或升級(jí),且EC0核心允許在背景中進(jìn)行無縫資源轉(zhuǎn)變,使 得執(zhí)行應(yīng)用而沒有顯著的停機(jī)時(shí)間。在一個(gè)實(shí)施方案中,在移除舊資源和添加新資源時(shí), EC0核心自動(dòng)地編排數(shù)據(jù)從舊資源到新資源的迀移且在特定環(huán)境中更新應(yīng)用的EC0記錄以 反映變化。在替代實(shí)例中,現(xiàn)有資源可以升級(jí)為例行維護(hù)的部分。例如,額外存儲(chǔ)裝置可以 添加到現(xiàn)有存儲(chǔ)資源提供者。在這個(gè)實(shí)施方案中,可以在背景中無縫地執(zhí)行升級(jí)而不影響 在服務(wù)器或云服務(wù)上執(zhí)行的應(yīng)用的性能,且歸因于升級(jí)的資源變化可以實(shí)質(zhì)上實(shí)時(shí)地更新 到ECO記錄。在一個(gè)實(shí)施方案中,一個(gè)或多個(gè)資源的升級(jí)可以是暫時(shí)升級(jí)且可以被完成來允 許最優(yōu)地執(zhí)行應(yīng)用。在這個(gè)實(shí)施方案中,ECO記錄可以不被更新來反映歸因于升級(jí)的變化。 在替代實(shí)施方案中,資源升級(jí)可以是永久性的且這個(gè)升級(jí)信息可以更新到ECO記錄。相似 地,在服務(wù)升級(jí)時(shí),ECO記錄可以被更新來包括升級(jí)信息。部署機(jī)構(gòu)內(nèi)的服務(wù)層提供采取核 心服務(wù)/資源要求并將其映射到可在云服務(wù)內(nèi)使用的實(shí)際服務(wù)/資源的抽象層。
[0038]在另一實(shí)施方案中,應(yīng)用可以從一個(gè)云服務(wù)迀移到不同云服務(wù)??梢曰趹?yīng)用所 期望的性能的類型執(zhí)行這個(gè)迀移。例如,可以由ECO核心基于資源可用性自動(dòng)地開始迀移以 便降低成本,增大性能等。在一些實(shí)施方案中,可以針對(duì)應(yīng)用定義預(yù)定義規(guī)則集,且迀移服 務(wù)和/或資源的決定可以基于預(yù)定義規(guī)則自動(dòng)進(jìn)