本申請涉及計算機技術(shù)領(lǐng)域,具體涉及云計算技術(shù)領(lǐng)域,尤其涉及用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法和裝置。
背景技術(shù):
云計算的IAAS(Infrastructure AS A Service,基礎(chǔ)架構(gòu)即服務(wù))通過互聯(lián)網(wǎng)提供了彈性和按需使用的數(shù)據(jù)中心、基礎(chǔ)架構(gòu)硬件、軟件資源以及管理這些資源的控制臺和API(Application Programming Interface,應(yīng)用程序編程接口)。這些彈性的資源給人們生活和工作以及社會發(fā)展帶來了巨大貢獻和便利,但資源底層(即,基礎(chǔ)設(shè)施層)實現(xiàn)模塊眾多,服務(wù)分布廣泛,各模塊間的交互和通信機制不統(tǒng)一,且模塊專注原子功能實現(xiàn),對外接口功能單一。進而導(dǎo)致通過管理控制臺和API進行綜合管理的性能低、難度大。
用戶對自己云資源的管理實際上就是通過云資源提供商提供的控制臺或API,靈活購買、查看、釋放和批量管理?,F(xiàn)有技術(shù)在實現(xiàn)云資源的管理時,大體可以有以下幾種方案:1、不提供管理控制臺和API,用戶直接登錄自己的云資源進行管理,這種方式下用戶需要記錄自己的所有資源信息,逐個操作,難度大、效率低。2、底層服務(wù)直接暴露原子接口,不對用戶隱藏底層實現(xiàn)細(xì)節(jié),且讓用戶自己來組合各種復(fù)雜的業(yè)務(wù)場景。3、借助控制臺來管理,但控制臺直接與底層服務(wù)交互,這種方式隱藏了底層實現(xiàn)細(xì)節(jié),但由于控制臺要調(diào)用多個底層服務(wù)和處理多個底層服務(wù)的數(shù)據(jù),邏輯非常復(fù)雜,效率極低。
技術(shù)實現(xiàn)要素:
本申請的目的在于提出一種用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法和裝置,來解決以上背景技術(shù)部分提到的技術(shù)問題。
第一方面,本申請?zhí)峁┝艘环N用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法,所述云計算架構(gòu)包括提供計算和存儲資源的基礎(chǔ)設(shè)施層以及在基礎(chǔ)設(shè)施層所提供資源的基礎(chǔ)上提供了多種服務(wù)的中間層,所述基礎(chǔ)設(shè)施層包括基礎(chǔ)設(shè)施層數(shù)據(jù)庫,所述中間層包括中間層數(shù)據(jù)庫,所述方法包括:響應(yīng)于接收到用戶通過用戶終端發(fā)送的對基礎(chǔ)設(shè)施層的操作請求,確定是否執(zhí)行所述操作請求所指示的操作;響應(yīng)于確定執(zhí)行所述操作,則向所述基礎(chǔ)設(shè)施層發(fā)送所述操作請求;在所述基礎(chǔ)設(shè)施層成功執(zhí)行所述操作并更新所述基礎(chǔ)設(shè)施層的相關(guān)資源后,更新所述中間層數(shù)據(jù)庫中存儲的所述基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài);采集所述基礎(chǔ)設(shè)施層的相關(guān)資源發(fā)生變化的數(shù)據(jù),并將所述數(shù)據(jù)存儲到所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中;將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中。
在一些實施例中,所述確定是否執(zhí)行所述操作請求所指示的操作,包括:確定所述用戶是否具有操作所述基礎(chǔ)設(shè)施層的權(quán)限;響應(yīng)于確定出所述用戶具有操作所述基礎(chǔ)設(shè)施層的權(quán)限,則確定所述基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)是否允許執(zhí)行所述操作;響應(yīng)于確定出所述基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)允許執(zhí)行所述操作,則確認(rèn)執(zhí)行所述操作。
在一些實施例中,所述操作請求還包括所述操作執(zhí)行失敗后重新執(zhí)行的最大次數(shù)。
在一些實施例中,在所述將所述數(shù)據(jù)存儲到所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中之后,所述方法還包括:記錄將所述數(shù)據(jù)存儲到所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的時間作為更新時間。
在一些實施例中,在所述將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中之后,所述方法還包括:記錄將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中的時間作為同步時間。
在一些實施例中,所述將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中,包括:按照預(yù)設(shè)的增量同步時間間隔將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的增量數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中,其中,所述增量數(shù)據(jù)是所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫在所述更新時間和所述同步時間之間發(fā)生變化的數(shù)據(jù)。
在一些實施例中,所述將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中,包括:按照預(yù)設(shè)的全量同步時間定時將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中。
第二方面,本申請?zhí)峁┝艘环N用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的裝置,所述云計算架構(gòu)包括提供計算和存儲資源的基礎(chǔ)設(shè)施層以及在基礎(chǔ)設(shè)施層所提供資源的基礎(chǔ)上提供了多種服務(wù)的中間層,所述基礎(chǔ)設(shè)施層包括基礎(chǔ)設(shè)施層數(shù)據(jù)庫,所述中間層包括中間層數(shù)據(jù)庫,所述裝置包括:確定單元,配置用于響應(yīng)于接收到用戶通過用戶終端發(fā)送的對基礎(chǔ)設(shè)施層的操作請求,確定是否執(zhí)行所述操作請求所指示的操作;發(fā)送單元,配置用于響應(yīng)于確定執(zhí)行所述操作,則向所述基礎(chǔ)設(shè)施層發(fā)送所述操作請求;更新單元,配置用于在所述基礎(chǔ)設(shè)施層成功執(zhí)行所述操作并更新所述基礎(chǔ)設(shè)施層的相關(guān)資源后,更新所述中間層數(shù)據(jù)庫中存儲的所述基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài);存儲單元,配置用于采集所述基礎(chǔ)設(shè)施層的相關(guān)資源發(fā)生變化的數(shù)據(jù),并將所述數(shù)據(jù)存儲到所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中;同步單元,配置用于將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中。
在一些實施例中,所述確定單元進一步配置用于:確定所述用戶是否具有操作所述基礎(chǔ)設(shè)施層的權(quán)限;響應(yīng)于確定出所述用戶具有操作所述基礎(chǔ)設(shè)施層的權(quán)限,則確定所述基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)是否允許執(zhí)行所述操作;響應(yīng)于確定出所述基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)允許執(zhí)行所述操作,則確認(rèn)執(zhí)行所述操作。
在一些實施例中,所述操作請求還包括所述操作執(zhí)行失敗后重新執(zhí)行的最大次數(shù)。
在一些實施例中,所述裝置還包括:記錄更新時間單元,配置用于在所述將所述數(shù)據(jù)存儲到所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中之后,記錄將所述數(shù)據(jù)存儲到所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的時間作為更新時間。
在一些實施例中,所述裝置還包括:記錄同步時間單元,配置用于在所述將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中之后,記錄將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中的時間作為同步時間。
在一些實施例中,所述同步單元進一步配置用于:按照預(yù)設(shè)的增量同步時間間隔將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的增量數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中,其中,所述增量數(shù)據(jù)是所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫在所述更新時間和所述同步時間之間發(fā)生變化的數(shù)據(jù)。
在一些實施例中,所述同步單元進一步配置用于:按照預(yù)設(shè)的全量同步時間定時將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中。
本申請?zhí)峁┑挠糜诓僮髟朴嬎慵軜?gòu)的基礎(chǔ)設(shè)施層的方法和裝置,通過中間層提供的控制臺或者API來操作基礎(chǔ)設(shè)施層的資源,并使中間層數(shù)據(jù)庫的數(shù)據(jù)與基礎(chǔ)設(shè)施層數(shù)據(jù)庫的數(shù)據(jù)同步,當(dāng)執(zhí)行查詢等操作時只需要訪問中間層數(shù)據(jù)庫而不需要和基礎(chǔ)設(shè)施層的資源進行交互,基于中間層這種利用空間換時間的方式,降低基礎(chǔ)設(shè)施層服務(wù)的實現(xiàn)復(fù)雜度,減輕基礎(chǔ)設(shè)施層服務(wù)的壓力,使基礎(chǔ)設(shè)施層服務(wù)更專注于原子功能的實現(xiàn)。對用戶來說,方便了對云資源的高效購買、查看、釋放和管理,減少了管理云資源所花費的時間,提高了用戶體驗。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1是本申請可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
圖2是根據(jù)本申請的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法的一個實施例的流程圖;
圖3是根據(jù)本申請的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法的又一個實施例的流程圖;
圖4是根據(jù)本申請的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的裝置的一個實施例的結(jié)構(gòu)示意圖;
圖5是適于用來實現(xiàn)本申請實施例的終端設(shè)備或服務(wù)器的計算機系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本申請作進一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本申請。
圖1示出了可以應(yīng)用本申請的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法或用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的裝置的實施例的示例性系統(tǒng)架構(gòu)100。
如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、102、103,網(wǎng)絡(luò)104和服務(wù)器105。網(wǎng)絡(luò)104用以在終端設(shè)備101、102、103和服務(wù)器105之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。
用戶可以使用終端設(shè)備101、102、103通過網(wǎng)絡(luò)104與服務(wù)器105交互,以接收或發(fā)送消息等。終端設(shè)備101、102、103上可以安裝有各種通訊客戶端應(yīng)用,例如網(wǎng)頁瀏覽器應(yīng)用、購物類應(yīng)用、搜索類應(yīng)用、即時通信工具、郵箱客戶端、社交平臺軟件、辦公軟件、企業(yè)管理軟件等。
終端設(shè)備101、102、103可以是具有顯示屏并且支持對云服務(wù)器的資源進行操作的各種電子設(shè)備,包括但不限于智能手機、平板電腦、電子書閱讀器、MP3播放器(Moving Picture Experts Group Audio Layer III,動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)、MP4(Moving Picture Experts Group Audio Layer IV,動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面4)播放器、膝上型便攜計算機和臺式計算機等等。
服務(wù)器105可以是提供各種服務(wù)的服務(wù)器,例如對終端設(shè)備101、102、103上運行的客戶端應(yīng)用提供支持的云服務(wù)器。云服務(wù)器可以對接收到的對基礎(chǔ)設(shè)施層的操作請求等數(shù)據(jù)進行分析等處理,并將處理結(jié)果(例如查詢結(jié)果)反饋給終端設(shè)備。需要說明的是,本申請實施例所提供的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法一般由服務(wù)器105執(zhí)行,相應(yīng)地,用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的裝置一般設(shè)置于服務(wù)器105中。
應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目僅僅是示意性的。根據(jù)實現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。
繼續(xù)參考圖2,示出了根據(jù)本申請的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法的一個實施例的流程200。所述的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法,包括以下步驟:
步驟201,響應(yīng)于接收到用戶通過用戶終端發(fā)送的對基礎(chǔ)設(shè)施層的操作請求,確定是否執(zhí)行操作請求所指示的操作。
云計算架構(gòu)包括三個層次:應(yīng)用層、中間層和基礎(chǔ)設(shè)施層。應(yīng)用層是以友好的用戶界面為用戶提供所需的各項應(yīng)用軟件和服務(wù),應(yīng)用層直接面向客戶需求,向企業(yè)客戶提供CRM(Customer Relationship Management,客戶關(guān)系管理)、ERP(Enterprise Resource Planning,企業(yè)資源計劃)、OA(Office Automation,辦公自動化)等企業(yè)應(yīng)用。中間層是承上啟下的一層,它在基礎(chǔ)設(shè)施層所提供資源的基礎(chǔ)上為用戶提供服務(wù),包括了訪問控制、資源管理、數(shù)據(jù)庫和中間件等集群,同時可通過集成API為客戶提供定制開發(fā)接口。基礎(chǔ)設(shè)施層是為中間層或者用戶提供其所需的計算和存儲等資源,并通過虛擬化等技術(shù)將資源池化,以實現(xiàn)資源的按需分配和快速部署。
在本實施例中,用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法運行于其上的電子設(shè)備(例如圖1所示的服務(wù)器)可以通過有線連接方式或者無線連接方式從用戶利用其進行云資源管理的用戶終端接收用戶對基礎(chǔ)設(shè)施層的操作請求,確定是否執(zhí)行操作請求所指示的操作。云服務(wù)器的中間層執(zhí)行確定是否執(zhí)行操作請求所指示的操作的步驟,中間層數(shù)據(jù)庫中存儲了基礎(chǔ)設(shè)施層的資源的狀態(tài),通過查詢中間層數(shù)據(jù)庫可在判斷基礎(chǔ)設(shè)施層的資源的狀態(tài),而不需要與基礎(chǔ)設(shè)施層進行交互。例如,用戶通過中間層提供的控制臺或API對虛擬機進行重啟操作時,中間層收到重啟操作指示后要先判斷能否執(zhí)行重啟操作。
在本實施例的一些可選的實現(xiàn)方式中,上述確定是否執(zhí)行該操作請求所指示的操作,包括:確定該用戶是否具有操作基礎(chǔ)設(shè)施層的權(quán)限;響應(yīng)于確定出該用戶具有操作基礎(chǔ)設(shè)施層的權(quán)限,則確定基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)是否允許執(zhí)行所述操作;響應(yīng)于確定出基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)允許執(zhí)行該操作,則確認(rèn)執(zhí)行該操作。例如,當(dāng)用戶發(fā)送重啟虛擬機的命令時,首先判斷該用戶是否具有管理員權(quán)限,如果該用戶只是普通用戶則不具備重啟虛擬機的權(quán)限,對于具有重啟虛擬機權(quán)限的用戶才執(zhí)行重啟的操作。在執(zhí)行操作前查詢中間層數(shù)據(jù)庫中存儲的虛擬機目前的狀態(tài)是否允許執(zhí)行重啟操作,發(fā)現(xiàn)不允許的操作時,可以直接由中間層封裝提示信息返回給用戶,以在用戶終端上顯示此信息。
在本實施例的一些可選的實現(xiàn)方式中,所述操作請求還包括所述操作執(zhí)行失敗后重新執(zhí)行的最大次數(shù)。為了增加操作成功的幾率,若發(fā)生超時,則進行重試,重試次數(shù)的最大次數(shù)可設(shè)置為3次,如果重新執(zhí)行達到最大次數(shù)時仍未成功,則由中間層封裝提示信息返回給用戶,以在用戶終端上顯示此信息,并終止后續(xù)操作。
步驟202,響應(yīng)于確定執(zhí)行操作,則向基礎(chǔ)設(shè)施層發(fā)送操作請求。
在本實施例中,中間層在確定可以執(zhí)行該操作后,向基礎(chǔ)設(shè)施層發(fā)送操作請求。例如,發(fā)請求給基礎(chǔ)設(shè)施層重啟虛擬機的接口,完成虛擬機的重啟操作。
步驟203,在基礎(chǔ)設(shè)施層成功執(zhí)行操作并更新基礎(chǔ)設(shè)施層的相關(guān)資源后,更新中間層數(shù)據(jù)庫中存儲的基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)。
在本實施例中,基礎(chǔ)設(shè)施層成功執(zhí)行操作后會更新基礎(chǔ)設(shè)施層的相關(guān)資源,然后通知中間層同步更新中間層數(shù)據(jù)庫中存儲的基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài),以使得中間層存儲的基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)與實際基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)保持一致。例如,重啟虛擬機后,虛擬機原先占用的CPU,物理內(nèi)存資源狀態(tài)發(fā)生變化,通知中間層同步更新這些資源的狀態(tài),并將該虛擬機標(biāo)識為重啟中,同時返回給用戶該虛擬機處于重啟中。
步驟204,采集基礎(chǔ)設(shè)施層的相關(guān)資源發(fā)生變化的數(shù)據(jù),并將數(shù)據(jù)存儲到基礎(chǔ)設(shè)施層數(shù)據(jù)庫中。
在本實施例中,云服務(wù)器將基礎(chǔ)設(shè)施層的相關(guān)資源發(fā)生變化的數(shù)據(jù)存儲到基礎(chǔ)設(shè)施層數(shù)據(jù)庫中。例如,重啟虛擬機后,將釋放的內(nèi)存資源數(shù)據(jù)存儲到基礎(chǔ)設(shè)施層數(shù)據(jù)庫中。采用“若存在則更新”的原則,即如果對象信息已經(jīng)存在,則只更新數(shù)據(jù)變化的時間和數(shù)據(jù)最新的狀態(tài),保證每臺虛擬機或者對象只有一條記錄,進而減少每次數(shù)據(jù)同步時需要讀取的數(shù)據(jù)量,提高同步效率。
步驟205,將基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到中間層數(shù)據(jù)庫中。
在本實施例中,將基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到中間層數(shù)據(jù)庫中,以保持基礎(chǔ)設(shè)施層數(shù)據(jù)庫與中間層數(shù)據(jù)庫的數(shù)據(jù)一致性。為了保證數(shù)據(jù)狀態(tài)變化延遲的時間足夠小,中間層數(shù)據(jù)同步服務(wù)針對每種資源的同步都起了相應(yīng)的線程,并且對統(tǒng)一資源部分不通過的操作也起了相應(yīng)的線程,以最大限度的減少用戶等待時間。
在本實施例的一些可選的實現(xiàn)方式中,按照預(yù)設(shè)的全量同步時間定時將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中。例如,預(yù)設(shè)的全量同步時間為凌晨6點鐘,每天凌晨6點時將基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到中間層數(shù)據(jù)庫中。并且可以檢測兩個數(shù)據(jù)庫中數(shù)據(jù)的一致性,如果發(fā)生不一致時可以按照預(yù)設(shè)的報警條件進行報警。
本申請的上述實施例提供的方法基于中間層以空間換時間的方式,節(jié)約購買、查看、釋放和管理云資源所花費的時間,降低基礎(chǔ)設(shè)施層服務(wù)的實現(xiàn)復(fù)雜度,并減輕基礎(chǔ)設(shè)施層服務(wù)的壓力。
繼續(xù)參考圖3,示出了根據(jù)本申請的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法的又一個實施例的流程300。所述的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法,包括以下步驟:
步驟301,響應(yīng)于接收到用戶通過用戶終端發(fā)送的對基礎(chǔ)設(shè)施層的操作請求,確定是否執(zhí)行操作請求所指示的操作。
步驟302,響應(yīng)于確定執(zhí)行操作,則向基礎(chǔ)設(shè)施層發(fā)送操作請求。
步驟303,在基礎(chǔ)設(shè)施層成功執(zhí)行操作并更新基礎(chǔ)設(shè)施層的相關(guān)資源后,更新中間層數(shù)據(jù)庫中存儲的基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)。
步驟304,采集基礎(chǔ)設(shè)施層的相關(guān)資源發(fā)生變化的數(shù)據(jù),并將數(shù)據(jù)存儲到基礎(chǔ)設(shè)施層數(shù)據(jù)庫中。
步驟301-304與步驟201-204基本相同,因此不再贅述。
步驟305,記錄將數(shù)據(jù)存儲到基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的時間作為更新時間。
在本實施例中,在將數(shù)據(jù)存儲到基礎(chǔ)設(shè)施層數(shù)據(jù)庫中后,記錄存儲的時間作為更新時間,用于后續(xù)判斷中間層數(shù)據(jù)庫是否要進行同步。
步驟306,將基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到中間層數(shù)據(jù)庫中
步驟306與步驟205基本相同,因此不再贅述。
步驟307,記錄將基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到中間層數(shù)據(jù)庫中的時間作為同步時間。
在本實施例中,每次將基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到中間層數(shù)據(jù)庫中后都記錄同步時間,作為下一次判斷是否需要同步時的依據(jù)。
步驟308,按照預(yù)設(shè)的增量同步時間間隔將基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的增量數(shù)據(jù)同步到中間層數(shù)據(jù)庫中。
在本實施例中,可以預(yù)先設(shè)置增量同步時間間隔,例如,15分鐘,每隔15分鐘就將基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的增量數(shù)據(jù)同步到中間層數(shù)據(jù)庫中,其中,上述增量數(shù)據(jù)是基礎(chǔ)設(shè)施層數(shù)據(jù)庫在步驟更新時間和同步時間之間發(fā)生變化的數(shù)據(jù)。例如,上一次中間導(dǎo)數(shù)據(jù)庫同步的時間為8:30,而基礎(chǔ)設(shè)施層數(shù)據(jù)庫的更新時間為8:40,到了8:45時則進行增量數(shù)據(jù)同步,如果基礎(chǔ)設(shè)施層數(shù)據(jù)庫的更新時間仍為8:30,則在8:45時不進行增量數(shù)據(jù)同步。進行增量同步時,每次到了增量同步時刻無論上一次同步是否完成都會執(zhí)行增量同步。
在本實施例的一些可選的實現(xiàn)方式中,還可以將數(shù)據(jù)按照類別設(shè)置不同的同步時間間隔,例如,為訂單類操作(新建/變配/續(xù)費)和非訂單類操作(重啟/快照/鏡像等)設(shè)置固定的時間間隔0.5s進行同步,每次同步完成之后間隔0.5s重復(fù)執(zhí)行同步??梢詾椴煌愋偷耐椒绞狡鸩煌木€程,以實現(xiàn)最高的吞吐量和最小的同步延遲。還可以采用手動同步以解決發(fā)現(xiàn)的少量不一致數(shù)據(jù)的問題。
從圖3中可以看出,與圖2對應(yīng)的實施例相比,本實施例中的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的方法的流程300突出了對增量數(shù)據(jù)進行同步的過程,作為全量的同步的有益補充,可以減少每次數(shù)據(jù)同步時需要讀取的數(shù)據(jù)量,提高同步的效率。
進一步參考圖4,作為對上述各圖所示方法的實現(xiàn),本申請?zhí)峁┝艘环N用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的裝置的一個實施例,該裝置實施例與圖2所示的方法實施例相對應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。
如圖4所示,本實施例所述的用于操作云計算架構(gòu)的基礎(chǔ)設(shè)施層的裝置400包括:確定單元401、發(fā)送單元402、更新單元403、存儲單元404和同步單元405。其中,確定單元401配置用于響應(yīng)于接收到用戶通過用戶終端發(fā)送的對基礎(chǔ)設(shè)施層的操作請求,確定是否執(zhí)行所述操作請求所指示的操作;發(fā)送單元402配置用于響應(yīng)于確定執(zhí)行所述操作,則向所述基礎(chǔ)設(shè)施層發(fā)送所述操作請求;更新單元403配置用于在所述基礎(chǔ)設(shè)施層成功執(zhí)行所述操作并更新所述基礎(chǔ)設(shè)施層的相關(guān)資源后,更新所述中間層數(shù)據(jù)庫中存儲的所述基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài);存儲單元404配置用于采集所述基礎(chǔ)設(shè)施層的相關(guān)資源發(fā)生變化的數(shù)據(jù),并將所述數(shù)據(jù)存儲到所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中;同步單元405配置用于將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中。
在本實施例中,云計算中間層中的確定單元401對基礎(chǔ)設(shè)施層的操作請求進行確認(rèn)后通過發(fā)送單元402發(fā)送給基礎(chǔ)設(shè)施層,基礎(chǔ)設(shè)施層執(zhí)行完操作后更新單元403更新中間層的存儲的資源狀態(tài),再通過存儲單元404存儲變化的數(shù)據(jù),最后將基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到中間層數(shù)據(jù)庫中。
在本實施例的一些可選的實現(xiàn)方式中,確定單元401進一步配置用于:確定所述用戶是否具有操作所述基礎(chǔ)設(shè)施層的權(quán)限;響應(yīng)于確定出所述用戶具有操作所述基礎(chǔ)設(shè)施層的權(quán)限,則確定所述基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)是否允許執(zhí)行所述操作;響應(yīng)于確定出所述基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài)允許執(zhí)行所述操作,則確認(rèn)執(zhí)行所述操作。
在本實施例的一些可選的實現(xiàn)方式中,上述操作請求還包括所述操作執(zhí)行失敗后重新執(zhí)行的最大次數(shù)。
在本實施例的一些可選的實現(xiàn)方式中,裝置400還包括:記錄更新時間單元(未示出),配置用于在所述將所述數(shù)據(jù)存儲到所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中之后,記錄將所述數(shù)據(jù)存儲到所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的時間作為更新時間。
在本實施例的一些可選的實現(xiàn)方式中,裝置400還包括:記錄同步時間單元(未示出),配置用于在所述將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中之后,記錄將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中的時間作為同步時間。
在本實施例的一些可選的實現(xiàn)方式中,同步單元405進一步配置用于:按照預(yù)設(shè)的增量同步時間間隔將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的增量數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中,其中,所述增量數(shù)據(jù)是所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫在所述更新時間和所述同步時間之間發(fā)生變化的數(shù)據(jù)。
在本實施例的一些可選的實現(xiàn)方式中,同步單元405進一步配置用于:按照預(yù)設(shè)的全量同步時間定時將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中。
下面參考圖5,其示出了適于用來實現(xiàn)本申請實施例的服務(wù)器的計算機系統(tǒng)500的結(jié)構(gòu)示意圖。
如圖5所示,計算機系統(tǒng)500包括中央處理單元(CPU)501,其可以根據(jù)存儲在只讀存儲器(ROM)502中的程序或者從存儲部分508加載到隨機訪問存儲器(RAM)503中的程序而執(zhí)行各種適當(dāng)?shù)膭幼骱吞幚?。在RAM 503中,還存儲有系統(tǒng)500操作所需的各種程序和數(shù)據(jù)。CPU 501、ROM 502以及RAM 503通過總線504彼此相連。輸入/輸出(I/O)接口505也連接至總線504。
以下部件連接至I/O接口505:包括鍵盤、鼠標(biāo)等的輸入部分506;包括諸如液晶顯示器(LCD)等以及揚聲器等的輸出部分507;包括硬盤等的存儲部分508;以及包括諸如LAN卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分509。通信部分509經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動器510也根據(jù)需要連接至I/O接口505??刹鹦督橘|(zhì)511,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲器等等,根據(jù)需要安裝在驅(qū)動器510上,以便于從其上讀出的計算機程序根據(jù)需要被安裝入存儲部分508。
特別地,根據(jù)本公開的實施例,上文參考流程圖描述的過程可以被實現(xiàn)為計算機軟件程序。例如,本公開的實施例包括一種計算機程序產(chǎn)品,其包括有形地包含在機器可讀介質(zhì)上的計算機程序,所述計算機程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機程序可以通過通信部分509從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)511被安裝。在該計算機程序被中央處理單元(CPU)501執(zhí)行時,執(zhí)行本申請的方法中限定的上述功能。
附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
描述于本申請實施例中所涉及到的單元可以通過軟件的方式實現(xiàn),也可以通過硬件的方式來實現(xiàn)。所描述的單元也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括確定單元、發(fā)送單元、更新單元、存儲單元和同步單元。其中,這些單元的名稱在某種情況下并不構(gòu)成對該單元本身的限定,例如,確定單元還可以被描述為“響應(yīng)于接收到用戶通過用戶終端發(fā)送的對基礎(chǔ)設(shè)施層的操作請求,確定是否執(zhí)行所述操作請求所指示的操作的單元”。
作為另一方面,本申請還提供了一種非易失性計算機存儲介質(zhì),該非易失性計算機存儲介質(zhì)可以是上述實施例中所述裝置中所包含的非易失性計算機存儲介質(zhì);也可以是單獨存在,未裝配入終端中的非易失性計算機存儲介質(zhì)。上述非易失性計算機存儲介質(zhì)存儲有一個或者多個程序,當(dāng)所述一個或者多個程序被一個設(shè)備執(zhí)行時,使得所述設(shè)備:響應(yīng)于接收到用戶通過用戶終端發(fā)送的對基礎(chǔ)設(shè)施層的操作請求,確定是否執(zhí)行所述操作請求所指示的操作;響應(yīng)于確定執(zhí)行所述操作,則向所述基礎(chǔ)設(shè)施層發(fā)送所述操作請求;在所述基礎(chǔ)設(shè)施層成功執(zhí)行所述操作并更新所述基礎(chǔ)設(shè)施層的相關(guān)資源后,更新所述中間層數(shù)據(jù)庫中存儲的所述基礎(chǔ)設(shè)施層的相關(guān)資源的狀態(tài);采集所述基礎(chǔ)設(shè)施層的相關(guān)資源發(fā)生變化的數(shù)據(jù),并將所述數(shù)據(jù)存儲到所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中;將所述基礎(chǔ)設(shè)施層數(shù)據(jù)庫中的數(shù)據(jù)同步到所述中間層數(shù)據(jù)庫中。
以上描述僅為本申請的較佳實施例以及對所運用技術(shù)原理的說明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時也應(yīng)涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術(shù)特征進行互相替換而形成的技術(shù)方案。