本發(fā)明涉及一種基于混合模式的分布式云管理系統(tǒng)及方法,屬于云服務(wù)和計算技術(shù)領(lǐng)域。
背景技術(shù):
云計算發(fā)展日新月異,目前云計算仍著重解決單個數(shù)據(jù)中心內(nèi)部的問題,但隨著全球化互聯(lián)網(wǎng)的發(fā)展,越來越多的企業(yè)有跨地域建立分支機構(gòu)的需要,各區(qū)域、各層級的數(shù)據(jù)中心應(yīng)運而生,而這些眾多的數(shù)據(jù)中心還是處于煙囪式的建設(shè)和管理狀態(tài),這使得單個數(shù)據(jù)中心的云管理系統(tǒng)存在以下問題:(1)云服務(wù)呈現(xiàn)多源異構(gòu)性,管理復(fù)雜。各個數(shù)據(jù)中心的云服務(wù)在管理方式上差異較大,如私有云支持對物理資源的管理,而公有云支持對上層服務(wù)的管理,同時各個數(shù)據(jù)中心的資源異構(gòu),使得管理成本很高;(2)業(yè)務(wù)耦合程度高。由于單個數(shù)據(jù)中心承載的業(yè)務(wù)類型不同,軟硬件系統(tǒng)差異較大,物理資源和應(yīng)用緊耦合,業(yè)務(wù)的部署上線、管理運維等操作不可復(fù)用,使得維護成本很高;(3)業(yè)務(wù)邏輯描述困難。當需求增長、系統(tǒng)變得龐大、業(yè)務(wù)邏輯變得復(fù)雜時,已有的業(yè)務(wù)邏輯需要不斷修改甚至重定義,使得系統(tǒng)的擴展難度增加,系統(tǒng)靈活性下降。
而分布式云管理系統(tǒng)能夠有效解決以上問題,其核心理念是提出云間的互操作標準,建立統(tǒng)一的接口,設(shè)計合理的分布式云模型,為跨云之間的數(shù)據(jù)交換和服務(wù)部署提供支撐。分布式云正逐步成為產(chǎn)業(yè)界和學(xué)術(shù)界的關(guān)注熱點,Gartner報告指出,分散構(gòu)建數(shù)據(jù)中心將成為未來“影響數(shù)據(jù)中心的十大顛覆性技術(shù)”之一,數(shù)據(jù)中心逐漸分散修建,而不是作為一個整體結(jié)構(gòu)來建立。
已有的分布式云管理系統(tǒng)如Eucalyptus、OpenStack、OpenNebula,將私有云和一個或多個公有云組成混合架構(gòu)模型以保障服務(wù)質(zhì)量SLA,在混合架構(gòu)中,私有云和公有云的地位為非對等關(guān)系,私有云占主導(dǎo)地位,公有云作為改善私有云響應(yīng)應(yīng)用峰值需求的后備資源,但混合架構(gòu)對公有云的控制能力有限,只能在公有云廠商的授權(quán)范圍內(nèi)進行資源的簡單控制,而不支持高級控制。另一種聚合模式的分布式云管理系統(tǒng)如Reservior、InterCloud,將不同的云服務(wù)供應(yīng)商看作合作伙伴的對等關(guān)系,在一方資源不充足的時候從別的云服務(wù)供應(yīng)商租借,以充分利用資源,這種模式對云服務(wù)接口的匹配度有嚴格的要求,一般同一云服務(wù)供應(yīng)商的不同產(chǎn)品之間耦合度更高,更適合使用該模式。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是:克服現(xiàn)有技術(shù)的不足,提供一種基于混合模式的分布式云管理系統(tǒng)及方法,具有擴展性和可維護性高的特點,以提升現(xiàn)有分布式云管理系統(tǒng)對云服務(wù)的管理能力,提升系統(tǒng)的可維護性。
本發(fā)明的技術(shù)解決方案是:一種基于混合模式的分布式云管理系統(tǒng),包括客戶服務(wù)端、控制中心、配置中心、代理服務(wù)器和云服務(wù)端;
客戶服務(wù),為前臺的交互服務(wù),服務(wù)的主體可以是具體的人也可以是應(yīng)用,當客戶對某種服務(wù)資源有需求時,客戶服務(wù)端向控制中心發(fā)起包含業(yè)務(wù)邏輯的請求;
控制中心,為核心部分,包括服務(wù)管理器和工作流管理器;服務(wù)管理器采用基于樹型結(jié)構(gòu)的配置模型,使得多源異構(gòu)的云服務(wù)端可配置,服務(wù)管理器管理的目標對象為不同類型的云服務(wù)端,包括公有云和私有云。對于私有云而言,服務(wù)管理器通過配置中心部署一個新的私有云,或接管一個已有的私有云,并對客戶提供服務(wù);對于公有云而言,服務(wù)管理器通過配置中心從代理服務(wù)器獲取云服務(wù)端的接入方式,通常為HTTP協(xié)議的服務(wù)調(diào)用接口,服務(wù)管理器對這些接口進行統(tǒng)一封裝,并對客戶提供服務(wù);工作流管理器采用工作流模板,使得云服務(wù)端的業(yè)務(wù)邏輯可配置,當控制中心接收到客戶服務(wù)端發(fā)來的請求時,由工作流管理器進行處理,工作流管理器將客戶的請求轉(zhuǎn)化為工作流,并通過服務(wù)管理器協(xié)調(diào)云服務(wù)端的各個服務(wù)組件執(zhí)行工作流中的步驟,根據(jù)工作流的類型處理執(zhí)行結(jié)果,當有步驟執(zhí)行發(fā)生錯誤時,工作流管理器將回退已執(zhí)行步驟,避免冗余數(shù)據(jù)的產(chǎn)生;
配置中心,負責將云服務(wù)端所提供的服務(wù)描述成統(tǒng)一格式的配置文件,當需要接入新的云服務(wù)端時,配置中心從云服務(wù)供應(yīng)商獲取接入所需要的詳細信息,包括云服務(wù)類型、云服務(wù)名稱、云服務(wù)版本、云服務(wù)內(nèi)容等,配置中心將收集到的信息轉(zhuǎn)化為統(tǒng)一格式的配置文件,服務(wù)管理器根據(jù)配置文件配置云服務(wù),配置文件作為云服務(wù)端所提供服務(wù)的標準,能夠直觀描述不同云的服務(wù)差異性,同時配置文件決定服務(wù)管理器對客戶提供哪些服務(wù),對配置文件的修改能夠快速調(diào)整云服務(wù)端的服務(wù)內(nèi)容;
代理服務(wù)器,是公有云特有的服務(wù)中間層,封裝了公有云服務(wù)供應(yīng)商所提供的服務(wù)接口,當客戶服務(wù)端發(fā)起一個公有云的資源訪問請求時,工作流管理器轉(zhuǎn)發(fā)該請求到服務(wù)管理器,服務(wù)管理器再通知代理服務(wù)器響應(yīng)客戶的請求,代理服務(wù)器通過遠程調(diào)用的方式訪問公有云上的資源;
云服務(wù)端,是指接入的云服務(wù)供應(yīng)商的集合,每個云服務(wù)供應(yīng)商都對外提供一種或多種類型的服務(wù)。
進一步地,所述服務(wù)管理器包含云配置接口,所述接口的具體實現(xiàn)與所述接口具體的工作方式包括:
創(chuàng)建所述云配置接口,設(shè)計云配置接口的參數(shù),所述參數(shù)包括云服務(wù)類型、云服務(wù)名稱、云服務(wù)版本、云服務(wù)內(nèi)容;
定義所述云配置接口參數(shù)的屬性,所述屬性包括參數(shù)的類型、取值范圍和該參數(shù)是否為必須參數(shù)的標識;
調(diào)用云配置接口的返回對應(yīng)的結(jié)果,所述云配置接口返回的結(jié)果是一個XML表示的樹型結(jié)構(gòu),樹的深度為3,樹的第1層即根節(jié)點為云的身份驗證服務(wù),樹的第2層為云的各個核心服務(wù),樹的第3層為云服務(wù)的操作,所述云核心服務(wù)包括但不局限于計算服務(wù)、存儲服務(wù)、網(wǎng)絡(luò)服務(wù)、備份服務(wù)、安全服務(wù)、鏡像服務(wù),所述云服務(wù)的操作包括但不局限于創(chuàng)建、啟動、關(guān)閉、刪除、掛載、卸載、配置、啟用、連接、斷開。
進一步地,所述工作流管理器由以下部分組成:任務(wù)調(diào)度器、過程管理單元、任務(wù)管理器、服務(wù)調(diào)用單元和異常處理單元,其中:
任務(wù)調(diào)度器,負責接收客戶的請求,并根據(jù)請求類型觸發(fā)過程管理單元,最終將調(diào)用服務(wù)的結(jié)果返回給客戶;
過程管理單元,負責管理工作流模板,能夠依據(jù)不同的業(yè)務(wù)邏輯生成工作流模板,以XML格式保存,流程執(zhí)行過程中,根據(jù)請求內(nèi)容匹配相應(yīng)的工作流模板,并按照模板生成序列化事件傳遞給任務(wù)管理器;
任務(wù)管理器,負責管理工作流實例,能夠根據(jù)序列化事件創(chuàng)建并運行工作流實例,并能夠根據(jù)異常處理單元的反饋終止工作流實例,流程執(zhí)行過程中,根據(jù)序列化事件創(chuàng)建并運行工作流實例,向服務(wù)調(diào)用單元發(fā)起工作流步驟的執(zhí)行命令;
服務(wù)調(diào)用單元,負責分析執(zhí)行命令,調(diào)用相應(yīng)的服務(wù),同時將服務(wù)調(diào)用的結(jié)果返回給任務(wù)調(diào)度器,流程執(zhí)行過程中,記錄已執(zhí)行的步驟,當有步驟發(fā)生失敗時,將觸發(fā)異常處理單元進行異常處理;
異常處理單元,負責根據(jù)異常類型處理異常,并回退流程中已執(zhí)行步驟,異常處理結(jié)果將記錄到日志中,并將結(jié)果反饋給任務(wù)管理器。
進一步地,所述同一個工作流模板中的步驟可以跨度多個云服務(wù)供應(yīng)商訪問資源,以滿足業(yè)務(wù)邏輯的需求,如私有云虛擬機創(chuàng)建時可以申請公有云上的云盤服務(wù)。
進一步地,所述過程管理單元中,依據(jù)不同的業(yè)務(wù)邏輯生成工作流模板具體如下:
創(chuàng)建生成工作流模板的接口,設(shè)計工作流模板接口的參數(shù),所述工作流模板接口的參數(shù)包括工作流名稱,工作流步驟名稱,工作流步驟類型,工作流步驟ID,工作流步驟源;
定義工作流模板參數(shù)的屬性,所述屬性包括工作流模板參數(shù)的類型、以及表示該參數(shù)是否為必須的標識;
調(diào)用生成工作流模板接口的返回所對應(yīng)的結(jié)果,返回結(jié)果為XML格式的工作流模板。
返回結(jié)果為XML格式的工作流模板,所述工作流模板的格式示例如下:
<?xml version="1.0"encoding="UTF-8"?>
<workflow name="createVmFlow">
<list>
<setp name="VmAllocateHostFlow"class="sequence"id="1"source="KVM"></step>
<setp name="VmCreateVolumeFlow"class="sync"id="2"source="KVM"></step>
<setp name="VmCreateDataVolumeFlow"class="sync"id="2"source="ECS"></step>
<setp name="VmCreateInterfaceFlow"class="sync"id="2"source="KVM"></step>
<setp name="VmCreateOnHostFlow"class="sequence"id="3"source="KVM"></step>
</list>
</workflow>
所述工作流模板的作用是將工作流的步驟關(guān)系圖,通常為有向無環(huán)圖,轉(zhuǎn)化成XML格式的描述文件,工作流模板的內(nèi)容包括工作流名稱、工作流步驟名稱、工作流步驟類型、工作流步驟ID,工作流步驟源。
工作流名稱,通常對應(yīng)客戶服務(wù)端的一個功能點,如創(chuàng)建虛擬機;
工作流步驟名稱,通常對應(yīng)客戶服務(wù)端的一系列操作,如創(chuàng)建虛擬機中對計算、存儲、網(wǎng)絡(luò)資源的選擇;
工作流步驟類型,是由工作流管理器定義的執(zhí)行過程基本屬性,表示該步驟與其他步驟之間的關(guān)聯(lián)關(guān)系,如同步執(zhí)行、異步執(zhí)行、并發(fā)執(zhí)行、順序執(zhí)行等;
工作流步驟ID,是工作流管理器根據(jù)工作流步驟類型自動生成的步驟執(zhí)行ID,用來輔助標識步驟在工作流中的執(zhí)行順序;
工作流步驟源,標識該步驟訪問的云服務(wù)供應(yīng)商,通常為云服務(wù)供應(yīng)商的名稱。
所述工作流步驟支持的類型如下所示:
進一步地,所述工作流實例的描述記錄在數(shù)據(jù)庫和文件中,以供故障發(fā)生時重新生成實例。
進一步地,工作流實例的描述內(nèi)容包括實例ID、已執(zhí)行步驟名稱和執(zhí)行結(jié)果。
進一步地,所述分布式云管理方法還包括工作流的回退操作,回退操作將執(zhí)行以下步驟:
工作流執(zhí)行過程中,記錄已執(zhí)行步驟名稱和結(jié)果到數(shù)據(jù)庫,同時記錄到本地文件;
當工作流在執(zhí)行過程中發(fā)生錯誤時,工作流終止執(zhí)行,優(yōu)先從數(shù)據(jù)庫讀取已執(zhí)行步驟名稱和結(jié)果,并調(diào)用相關(guān)服務(wù)進行工作流回退;
當數(shù)據(jù)庫無法訪問時,從本地文件讀取已執(zhí)行步驟名稱和結(jié)果,并調(diào)用相關(guān)服務(wù)進行工作流回退;
將回退操作的執(zhí)行結(jié)果記錄到日志文件。
進一步地,所述數(shù)據(jù)庫部署在控制中心所在的服務(wù)器上。
進一步地,所述XML描述文件保存在控制中心所在的服務(wù)器上。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:
(1)本發(fā)明針對現(xiàn)有云管理平臺同時管理多個多源、異構(gòu)的云服務(wù)供應(yīng)商效果不佳的問題,將服務(wù)管理器作為云服務(wù)端的軟件適配層,對不同云服務(wù)供應(yīng)商提供的云服務(wù)進行一致性配置,并對不同的云服務(wù)接口進行統(tǒng)一封裝,能夠以統(tǒng)一的模型管理多源異構(gòu)的云服務(wù)端;
(2)本發(fā)明針對現(xiàn)有云管理平臺對于用戶請求中的復(fù)雜業(yè)務(wù)邏輯可維護性和擴展性低的問題,采用了工作流的管理模式,將請求中的業(yè)務(wù)邏輯描述成工作流,使用工作流模板和工作流實例對工作流進行生命周期管理,提高系統(tǒng)的可維護性;同時,工作流執(zhí)行步驟源可配置,支持工作流實例執(zhí)行過程中訪問不同云服務(wù)供應(yīng)商的資源,提高系統(tǒng)的擴展性。
附圖說明
圖1為本發(fā)明的實施例的基于混合模式的分布式云管理系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明的實施例的基于混合模式的分布式云管理系統(tǒng)的云配置的結(jié)構(gòu)示意圖;
圖3為本發(fā)明的實施例的基于混合模式的分布式云管理方法的工作流管理器流程示意圖;
圖4為本發(fā)明的實施例的基于混合模式的分布式云管理方法的工作流回退流程示意圖。
具體實施方法
下面將結(jié)合本發(fā)明的附圖,進一步說明本發(fā)明的技術(shù)方案,所描述的實施例是本發(fā)明一部分實施例,而不代表全部的實施例。
對于本領(lǐng)域的技術(shù)人員來說,一些公知技術(shù)可能未進行詳細闡述。
本實施例中,一種基于混合模式的分布式云管理系統(tǒng),如圖1所示,一種基于混合模式的分布式云管理方法,其特征在于步驟如下:
步驟101:配置中心從云服務(wù)供應(yīng)商獲取接入該云服務(wù)端所需的信息,包括云服務(wù)類型、云服務(wù)名稱、云服務(wù)版本、云服務(wù)內(nèi)容等;
步驟102:服務(wù)管理器調(diào)用云配置接口,將配置中心收集到的關(guān)于云服務(wù)端的信息轉(zhuǎn)化成XML格式的描述文件,配置中心將調(diào)用云配置接口的執(zhí)行結(jié)果返回給服務(wù)管理器;
步驟103:服務(wù)管理器根據(jù)配置中心的返回結(jié)果將云服務(wù)端所提供的服務(wù)進行統(tǒng)一封裝,并對客戶服務(wù)端提供與其他云服務(wù)同構(gòu)的服務(wù)接口;
步驟104:客戶通過客戶服務(wù)端發(fā)起一個云服務(wù)端的資源訪問請求,請求由控制中心的工作流管理器進行處理;
步驟105:工作流管理器將請求內(nèi)容轉(zhuǎn)化成工作流,并根據(jù)工作流的執(zhí)行步驟調(diào)用服務(wù)管理器的相關(guān)接口,服務(wù)管理器將接口的執(zhí)行結(jié)果返回給工作流管理器,如果步驟中的接口調(diào)用返回結(jié)果為失敗,則啟用工作流回退操作,工作流管理器調(diào)用服務(wù)管理器的回退相關(guān)接口,服務(wù)管理器將回退接口的執(zhí)行結(jié)果返回給工作流管理器;
步驟106:服務(wù)管理器執(zhí)行接口調(diào)用過程,訪問云服務(wù)的相關(guān)資源,并接收云服務(wù)的返回結(jié)果。
本實施例中,一種基于混合模式的分布式云管理系統(tǒng)的云配置的結(jié)構(gòu)示意圖,如圖2所示,云的各個服務(wù)和操作表示成一個樹型結(jié)構(gòu)模型,樹的基本約束是:樹的深度為3,樹的第1層也就是根節(jié)點為云的身份驗證服務(wù);樹的第2層為云的各個核心服務(wù),包括計算服務(wù)、存儲服務(wù)、網(wǎng)絡(luò)服務(wù)、備份服務(wù)、安全服務(wù)、鏡像服務(wù)等;樹的第3層為云服務(wù)的操作,包括但不局限于創(chuàng)建、啟動、關(guān)閉、刪除、掛載、卸載、配置、啟用、連接、斷開。云配置模型以統(tǒng)一模型描述云服務(wù)端所提供的服務(wù)和操作,提升系統(tǒng)的可配置性和擴展性。
本實施例中,一種基于混合模式的分布式云管理方法工作流管理器的流程如圖3所示,具體實施步驟如下:
步驟301:客戶提交一個包含系統(tǒng)中已定義業(yè)務(wù)邏輯的請求到任務(wù)調(diào)度器,任務(wù)調(diào)度器分析請求類型;
步驟302:根據(jù)請求類型,任務(wù)調(diào)度器觸發(fā)相對應(yīng)的過程管理單元;
步驟303:過程管理單元分析請求內(nèi)容,將其與已有的工作流模板進行匹配;
步驟304:過程管理單元依據(jù)工作流模板,生成序列化事件作為參數(shù)傳遞給任務(wù)管理器;
步驟305:任務(wù)管理器接收序列化事件,創(chuàng)建并運行工作流實例,當接收到來自異常處理單元的異常反饋時,則立即終止工作流實例的運行狀態(tài);
步驟306:任務(wù)管理器向服務(wù)調(diào)用單元發(fā)起包含工作流的執(zhí)行步驟的執(zhí)行命令;
步驟307:服務(wù)調(diào)用單元按照步驟執(zhí)行工作流,調(diào)用相關(guān)服務(wù),所述服務(wù)是指控制中心的服務(wù)管理器對云服務(wù)端服務(wù)接口的統(tǒng)一封裝;
步驟308:服務(wù)調(diào)用單元負責將工作流的執(zhí)行結(jié)果返回給任務(wù)調(diào)度器;
步驟309:任務(wù)管理器負責將客戶提交請求的工作流執(zhí)行結(jié)果返回給客戶;
步驟310:當服務(wù)調(diào)用失敗時,服務(wù)調(diào)用單元將觸發(fā)異常處理單元進行異常處理;
步驟311:異常處理單元負責對已執(zhí)行工作流步驟進行回退操作;
步驟312:異常處理的結(jié)果反饋給任務(wù)管理器,任務(wù)管理器終止工作流實例;
步驟313:同時異常處理的結(jié)果記錄到異常日志文件中。
本實施例中一種基于混合模式的管理方法的工作流回退方法,如圖4所示:
步驟401:服務(wù)調(diào)用模塊中,工作流表示為具體的執(zhí)行步驟,以服務(wù)調(diào)用的方式執(zhí)行;
步驟402:當服務(wù)調(diào)用成功時,將工作流實例中已執(zhí)行步驟的名稱和結(jié)果記錄到數(shù)據(jù)庫和文件;
步驟403:任務(wù)管理器根據(jù)異常處理單元的反饋結(jié)果,終止工作流實例的運行;
步驟404:異常處理單元從數(shù)據(jù)庫讀取已完成步驟的名稱和結(jié)果,用于進行工作流回退操作;
步驟405:當從數(shù)據(jù)庫讀取成功時,異常處理單元調(diào)用相關(guān)服務(wù)進行工作流回退操作;
步驟406:當從數(shù)據(jù)庫讀取失敗時,異常處理單元從文件讀取已完成步驟的名稱和結(jié)果,用于進行工作流回退操作;
步驟407:當從文件讀取成功時,異常處理單元調(diào)用相關(guān)服務(wù)進行工作流回退操作。
以上對于本發(fā)明實施例的具體實施方法的描述只是舉例說明,本發(fā)明的保護范圍由所述權(quán)利要求書闡述。本領(lǐng)域的技術(shù)人員在理解了上述說明的基礎(chǔ)之上,進行的任何形式的變化和改動均落入本發(fā)明的保護范圍之內(nèi)。