本發(fā)明涉及云計算技術(shù)領(lǐng)域,特別是涉及一種在混合云上的應(yīng)用分配方法及裝置。
背景技術(shù):
隨著云計算技術(shù)的發(fā)展和企業(yè)業(yè)務(wù)復(fù)雜度的提升,越來越多的企業(yè)選擇按照自身的實際需求,將私有云和公有云共同使用起來,把企業(yè)應(yīng)用部署在公有云、私有云兼具的混合云環(huán)境中,構(gòu)建混合云的使用模式。
私有云是企業(yè)出資購置服務(wù)器、存儲、網(wǎng)絡(luò)設(shè)備等it基礎(chǔ)設(shè)施構(gòu)成的云計算環(huán)境,具有安全可控、便于運維管理等優(yōu)勢。然而擴展資源需要重新購置設(shè)備,擴建效率低,且應(yīng)用運行性能有限。
公有云是第三方供應(yīng)商通過互聯(lián)網(wǎng)提供的云計算環(huán)境,具有標(biāo)準(zhǔn)化、自動化、快速響應(yīng)、按需創(chuàng)建、彈性擴展、性能高等優(yōu)勢。然而公有云具有運營性質(zhì),企業(yè)占用過多的公有云資源,會耗費較多的租賃資金。
公有云和私有云各有利弊,如何在有限的資金下,最優(yōu)的將各個應(yīng)用分配在混合云上,最大化的提高企業(yè)應(yīng)用的運行效率是本領(lǐng)域技術(shù)人員亟待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種在混合云上的應(yīng)用分配方法及裝置,用于在有限的資金下,最優(yōu)的將各個應(yīng)用分配在混合云上,最大化的提高企業(yè)應(yīng)用的運行效率。
為解決上述技術(shù)問題,本發(fā)明提供一種在混合云上的應(yīng)用分配方法,包括:
根據(jù)應(yīng)用分配到公有云和私有云的情況以及應(yīng)用在公有云上的運行資費將各應(yīng)用的總處理時間轉(zhuǎn)換為0-1背包問題對應(yīng)的數(shù)學(xué)模型;
按照0-1背包問題的計算方法計算所述0-1背包問題對應(yīng)的數(shù)學(xué)模型以得到各應(yīng)用分配到公有云和私有云的最優(yōu)分配解。
優(yōu)選地,所述0-1背包問題的計算方法具體為窮舉法、遞歸法、貪心法、動態(tài)規(guī)劃法、回溯法或限界分支法。
優(yōu)選地,所述根據(jù)應(yīng)用分配到公有云和私有云的取值情況以及應(yīng)用在公有云上的運行資費將各應(yīng)用的總處理時間轉(zhuǎn)換為0-1背包問題對應(yīng)的數(shù)學(xué)模型具體包括:
定義x=(x1,x2,x3,……xn)為各應(yīng)用分配到公有云和私有云的最優(yōu)分配解;其中xi=1表示將第i個應(yīng)用分配到公有云,xi=0表示將第i個應(yīng)用分配到私有云,0≤i≤n,i和n均為正整數(shù);
定義tig為第i個應(yīng)用在公有云上處理請求所需的時間,tis為第i個應(yīng)用在私有云上處理相同請求所需的時間,則n個應(yīng)用的總處理時間t(x)為如下公式:
定義wi為第i個應(yīng)用在公有云上的運行資費,企業(yè)資金為c,則分配至公有云上的各應(yīng)用滿足如下公式:
定義分配權(quán)值k,并求解所述分配權(quán)值k的最大值;
其中,
優(yōu)選地,所述0-1背包問題的計算方法為動態(tài)規(guī)劃法,則對應(yīng)的動態(tài)規(guī)劃函數(shù)為:
(1)k(i,0)=k(0,j)=0;
(2)j≥wi,k(i,j)=max{k(i-1,j),k(i-1,j-wi)+vi};
(3)0<j<wi,k(i,j)=k(i-1,j);
其中,k(i,j)表示企業(yè)資金為j時,前i個應(yīng)用分配到公有云的分配權(quán)值。
為解決上述技術(shù)問題,本發(fā)明還提供一種在混合云上的應(yīng)用分配裝置,包括:
模型建立單元,用于根據(jù)應(yīng)用分配到公有云和私有云的情況以及應(yīng)用在公有云上的運行資費將各應(yīng)用的總處理時間轉(zhuǎn)換為0-1背包問題對應(yīng)的數(shù)學(xué)模型;
模型求解單元,用于按照0-1背包問題的計算方法計算所述0-1背包問題對應(yīng)的數(shù)學(xué)模型以得到各應(yīng)用分配到公有云和私有云的最優(yōu)分配解。
優(yōu)選地,所述模型求解單元具體通過窮舉法、遞歸法、貪心法、動態(tài)規(guī)劃法、回溯法或限界分支法計算所述0-1背包問題對應(yīng)的數(shù)學(xué)模型以得到各應(yīng)用分配到公有云和私有云的最優(yōu)分配解。
優(yōu)選地,所述模型建立單元具體用于:
定義x=(x1,x2,x3,……xn)為各應(yīng)用分配到公有云和私有云的最優(yōu)分配解;其中xi=1表示將第i個應(yīng)用分配到公有云,xi=0表示將第i個應(yīng)用分配到私有云,0≤i≤n,i和n均為正整數(shù);
定義tig為第i個應(yīng)用在公有云上處理請求所需的時間,tis為第i個應(yīng)用在私有云上處理相同請求所需的時間,則n個應(yīng)用的總處理時間t(x)為如下公式:
定義wi為第i個應(yīng)用在公有云上的運行資費,企業(yè)資金為c,則分配至公有云上的各應(yīng)用滿足如下公式:
定義分配權(quán)值k,并求解所述分配權(quán)值k的最大值;
其中,
優(yōu)選地,模型求解單元具體通過動態(tài)規(guī)劃法計算最優(yōu)分配解,則對應(yīng)的動態(tài)規(guī)劃函數(shù)為:
(1)k(i,0)=k(0,j)=0;
(2)j≥wi,k(i,j)=max{k(i-1,j),k(i-1,j-wi)+vi};
(3)0<j<wi,k(i,j)=k(i-1,j);
其中,k(i,j)表示企業(yè)資金為j時,前i個應(yīng)用分配到公有云的分配權(quán)值。
本發(fā)明所提供的在混合云上的應(yīng)用分配方法及裝置,該方法包括根據(jù)應(yīng)用分配到公有云和私有云的情況以及應(yīng)用在公有云上的運行資費將各應(yīng)用的總處理時間轉(zhuǎn)換為0-1背包問題對應(yīng)的數(shù)學(xué)模型;按照0-1背包問題的計算方法計算0-1背包問題對應(yīng)的數(shù)學(xué)模型以得到各應(yīng)用分配到公有云和私有云的最優(yōu)分配解。由此可見,本方法將復(fù)雜的混合云劃分問題抽象成數(shù)學(xué)模型,并通過分析,將其規(guī)約為0-1背包問題。因此,本方法具有較強的普適性、擴展性、科學(xué)性。
附圖說明
為了更清楚地說明本發(fā)明實施例,下面將對實施例中所需要使用的附圖做簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種在混合云上的應(yīng)用分配方法的流程圖;
圖2為本發(fā)明實施例提供的一種在混合云上的應(yīng)用分配裝置的結(jié)構(gòu)圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下,所獲得的所有其他實施例,都屬于本發(fā)明保護范圍。
本發(fā)明的核心是提供一種在混合云上的應(yīng)用分配方法及裝置,用于在有限的資金下,最優(yōu)的將各個應(yīng)用分配在混合云上,最大化的提高企業(yè)應(yīng)用的運行效率。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步的詳細說明。
圖1為本發(fā)明實施例提供的一種在混合云上的應(yīng)用分配方法的流程圖。如圖1所示,在混合云上的應(yīng)用分配方法包括:
s10:根據(jù)應(yīng)用分配到公有云和私有云的情況以及應(yīng)用在公有云上的運行資費將各應(yīng)用的總處理時間轉(zhuǎn)換為0-1背包問題對應(yīng)的數(shù)學(xué)模型。
0-1背包問題的具體思想是:有n件物品和一個容量為v的背包。第i件物品的重量是w[i],價值是v[i]。求解將哪些物品裝入背包可使這些物品的重量總和不超過背包容量,且價值總和最大。本實施例中,考慮到有n個應(yīng)用,這n個應(yīng)用可以放在私有云和公有云上,但是這個n個應(yīng)用,放幾個在私有云上,放幾個在公有云上才能不超過當(dāng)前企業(yè)的資金,且達到最佳的運行狀態(tài)。
可以理解的是,本方案解決的應(yīng)用場景是,企業(yè)前期已經(jīng)具備一套相對成熟的私有云環(huán)境,后續(xù)投入資金購置公有云資源、部署混合云時,在算法的層面上,幫助企業(yè)最優(yōu)選擇合適的分配方式。
作為優(yōu)選的實施方式,本步驟中具體的數(shù)學(xué)模型建立過程如下:
定義x=(x1,x2,x3,……xn)為各應(yīng)用分配到公有云和私有云的最優(yōu)分配解。其中xi=1表示將第i個應(yīng)用分配到公有云,xi=0表示將第i個應(yīng)用分配到私有云,0≤i≤n,i和n均為正整數(shù)。
之所以能夠按照上述方式定義是因為,對于一個應(yīng)用來說,只有兩種分配方式,一種是放在私有云上,一種是放在公有云上,因此,這里我們將xi=的取值設(shè)定為0或1(符合0-1背包問題的形式,即可以放在背包,也可以不放在背包)。x=(0,0,1,0,1)表示,n=5,即由5個應(yīng)用,第一個應(yīng)用、第二個應(yīng)用以及第四個應(yīng)用放在私有云上,第三個應(yīng)用和第五個應(yīng)用放在公有云上。對于n個應(yīng)用來說,我們的目的就是要求解,這個n個應(yīng)用有幾個放在私有云上,有幾個放在公有云上。
2)定義tig為第i個應(yīng)用在公有云上處理請求所需的時間,tis為第i個應(yīng)用在私有云上處理相同請求所需的時間,則n個應(yīng)用的總處理時間t(x)為如下公式:
那么x=(x1,x2,x3,……xn)的最優(yōu)解就是另t(x)最小,即我們的目標(biāo)轉(zhuǎn)換為求解t(x)的最小值。
3)定義wi為第i個應(yīng)用在公有云上的運行資費,企業(yè)資金為c,則分配至公有云上的各應(yīng)用滿足如下公式:
4)定義分配權(quán)值k,并求解分配權(quán)值k的最大值。
其中,vi=tis-tig表示第i個應(yīng)用在私有云與公有云處理相同請求的時間差。
相比于租賃形式的公有云服務(wù),應(yīng)用部署在原有私有云環(huán)境上的開支資費可忽略不記。又由于每個應(yīng)用在私有云上的運行時間是固定的,即
設(shè)vi=tis-tig,表示第i個應(yīng)用在私有云與公有云處理相同請求的時間差。因此上述使總處理時間t(x)盡量小的問題,可歸結(jié)為,在滿足公式(2)的前提下,如何使分配權(quán)值k最大化的問題。
s11:按照0-1背包問題的計算方法計算0-1背包問題對應(yīng)的數(shù)學(xué)模型以得到各應(yīng)用分配到公有云和私有云的最優(yōu)分配解。
作為優(yōu)選的實施方式,0-1背包問題的計算方法具體為窮舉法、遞歸法、貪心法、動態(tài)規(guī)劃法、回溯法或限界分支法。本發(fā)明實施例中以動態(tài)規(guī)劃法進行計算,過程如下:
0-1背包問題的計算方法為動態(tài)規(guī)劃法,則對應(yīng)的動態(tài)規(guī)劃函數(shù)為:
(1)k(i,0)=k(0,j)=0公式(4)
(2)j≥wi,k(i,j)=max{k(i-1,j),k(i-1,j-wi)+vi}公式(5)
(3)0<j<wi,k(i,j)=k(i-1,j)公式(6)
其中,k(i,j)表示企業(yè)資金為j時,前i個應(yīng)用分配到公有云的分配權(quán)值。
可以理解的是k(i,j)中的i和j只是一種公式的表現(xiàn)形式而已,j為一種通用的表示方式,當(dāng)企業(yè)資金固定后,則j就是固定的,例如當(dāng)企業(yè)的資金為c時,則本公式中的資金j就是企業(yè)的擴建資金c。
上述第(4)個公式表示,當(dāng)資金為0或者部署0個應(yīng)用到公有云時,k為0;
第(5)和第(6)個公式表示,如果第i個應(yīng)用部署到公有云耗費的資金少于企業(yè)的擴建資金c時,則會出現(xiàn)兩種情況:
(1)如果第i個應(yīng)用部署到公有云,則k值等與把前i-1個應(yīng)用部署到資金為j-wi時的分配權(quán)值加第i個應(yīng)用對應(yīng)的時間差vi。
(2)如果第i個應(yīng)用部署到私有云,則k值等于在資金j時,前i-1個應(yīng)用部署到公有云的k值。顯然,取兩者中k值較大者作為在資金為j時,把前i個應(yīng)用部署到公有云的最優(yōu)解。
基于此,可以一步步的解出所需要的解,。
第一步,只部署第1個應(yīng)用,確定在各種情況下的最大k值;第二步,只部署前2個應(yīng)用,確定在各種情況下k能夠得到的最大值;依此類推,到了第n步即可得到我們所需要的最優(yōu)解。最后,k(n,c)便是在資金為c時,部署n個應(yīng)用時取得的最大分配權(quán)值。為了確定部署到公有云的應(yīng)用,從k(n,c)的值向前尋找,如果k(n,c)>k(n-1,c),則說明第n個應(yīng)用被部署到公有云中,前n-1個應(yīng)用被部署在資金為c-wi的環(huán)境中;否則,第n個應(yīng)用沒有部署到公有云,前n-1個應(yīng)用被部署在資金為c的環(huán)境中。依此類推,直到確定第一個應(yīng)用是否部署到公有云為止,具體算法對應(yīng)的代碼如下所示。
本實施例提供的在混合云上的應(yīng)用分配方法,根據(jù)應(yīng)用分配到公有云和私有云的情況以及應(yīng)用在公有云上的運行資費將各應(yīng)用的總處理時間轉(zhuǎn)換為0-1背包問題對應(yīng)的數(shù)學(xué)模型;按照0-1背包問題的計算方法計算0-1背包問題對應(yīng)的數(shù)學(xué)模型以得到各應(yīng)用分配到公有云和私有云的最優(yōu)分配解。由此可見,本方法將復(fù)雜的混合云劃分問題抽象成數(shù)學(xué)模型,并通過分析,將其規(guī)約為0-1背包問題。因此,本方法具有較強的普適性、擴展性、科學(xué)性。
需要說明的是,動態(tài)規(guī)劃算法只是其中的一種具體解決方式,并不代表只有這一種解決方式,只是其他解決方式在本實施例中沒有贅述。在問題求解時,采用動態(tài)規(guī)劃算法,主要考慮到易于編程。
相應(yīng)地本發(fā)明還提供一種與上述方法對應(yīng)的裝置。圖2為本發(fā)明實施例提供的一種在混合云上的應(yīng)用分配裝置的結(jié)構(gòu)圖。如圖2所示,在混合云上的應(yīng)用分配方法包括:
模型建立單元10,用于根據(jù)應(yīng)用分配到公有云和私有云的情況以及應(yīng)用在公有云上的運行資費將各應(yīng)用的總處理時間轉(zhuǎn)換為0-1背包問題對應(yīng)的數(shù)學(xué)模型;
模型求解單元11,用于按照0-1背包問題的計算方法計算0-1背包問題對應(yīng)的數(shù)學(xué)模型以得到各應(yīng)用分配到公有云和私有云的最優(yōu)分配解。
作為優(yōu)選的實施方式,模型求解單元具體通過窮舉法、遞歸法、貪心法、動態(tài)規(guī)劃法、回溯法或限界分支法計算0-1背包問題對應(yīng)的數(shù)學(xué)模型以得到各應(yīng)用分配到公有云和私有云的最優(yōu)分配解。
本實施例提供的在混合云上的應(yīng)用分配裝置,根據(jù)應(yīng)用分配到公有云和私有云的情況以及應(yīng)用在公有云上的運行資費將各應(yīng)用的總處理時間轉(zhuǎn)換為0-1背包問題對應(yīng)的數(shù)學(xué)模型;按照0-1背包問題的計算方法計算0-1背包問題對應(yīng)的數(shù)學(xué)模型以得到各應(yīng)用分配到公有云和私有云的最優(yōu)分配解。由此可見,本裝置將復(fù)雜的混合云劃分問題抽象成數(shù)學(xué)模型,并通過分析,將其規(guī)約為0-1背包問題。因此,本方法具有較強的普適性、擴展性、科學(xué)性。
作為優(yōu)選的實施方式,模型建立單元具體用于:
定義x=(x1,x2,x3,……xn)為各應(yīng)用分配到公有云和私有云的最優(yōu)分配解;其中xi=1表示將第i個應(yīng)用分配到公有云,xi=0表示將第i個應(yīng)用分配到私有云,0≤i≤n,i和n均為正整數(shù);
定義tig為第i個應(yīng)用在公有云上處理請求所需的時間,tis為第i個應(yīng)用在私有云上處理相同請求所需的時間,則n個應(yīng)用的總處理時間t(x)為如下公式:
定義wi為第i個應(yīng)用在公有云上的運行資費,企業(yè)資金為c,則分配至公有云上的各應(yīng)用滿足如下公式:
定義分配權(quán)值k,并求解分配權(quán)值k的最大值;
其中,
作為優(yōu)選的實施方式,模型求解單元具體通過動態(tài)規(guī)劃法計算最優(yōu)分配解,則對應(yīng)的動態(tài)規(guī)劃函數(shù)為:
(1)k(i,0)=k(0,j)=0;
(2)j≥wi,k(i,j)=max{k(i-1,j),k(i-1,j-wi)+vi};
(3)0<j<wi,k(i,j)=k(i-1,j);
由于裝置部分的實施例與方法部分的實施例相互對應(yīng),因此裝置部分的實施例請參見方法部分的實施例的描述,這里暫不贅述。
以上對本發(fā)明所提供的在混合云上的應(yīng)用分配方法及裝置進行了詳細介紹。說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。