本發明涉及雲計算技術領域,特別是涉及一種雲環境下SaaS軟件部署方法及裝置。html
背景技術:算法
隨着雲計算技術的快速發展,SaaS(Software-as-a-Service,軟件即服務)模式逐漸興起。SaaS模式是雲計算在應用層提供的服務。在SaaS模式下,客戶不須要購買完整的軟件系統,也不須要配備相應的硬件系統和維護人員,只須要經過互聯網,按需租用應用軟件便可,這對成本預算有限、技術條件不足的中小企業來講,具備很強的吸引力。編程
在雲環境下,SaaS模式主要涉及三類角色:租戶、SaaS服務提供商和基礎設施提供商。租戶租用SaaS服務提供商提供的SaaS軟件來知足其業務需求,每一個租戶能夠租用一個或多個SaaS軟件,一個SaaS軟件能夠爲多個租戶提供服務。當前的SaaS軟件大多基於多租戶模式,多個租戶經過SaaS服務提供商的統一平臺租用服務,共享軟、硬件資源。多個租戶共享相同的應用代碼和應用實例,能夠下降SaaS服務提供商開發、部署、運行、維護、更新等運營成本。同時,多個租戶共同承擔了軟件服務的相關成本,下降了各個租戶企業的服務購買成本。SaaS服務提供商經過向租戶提供SaaS軟件獲取利潤。服務器
在平臺層,SaaS軟件是在虛擬機上進行部署、組織和管理的,每一個虛擬機包含了預安裝、預配置的操做系統、中間件和應用構件。在SaaS服務提供商租用了基礎設施提供商的基礎設施的狀況下,部署了SaaS軟件的虛擬機及其之間的通訊網絡被部署在基礎設施提供商的雲數據中心,SaaS服務提供商須要向基礎設施提供商交付相應的虛擬機使用費用,即SaaS服務提供商所使用的虛擬機具備必定的租用成本。網絡
在租用基礎設施狀況下,如何有效解決SaaS軟件部署問題,是當前本領域技術人員亟需解決的技術問題。併發
技術實現要素:負載均衡
本發明的目的是提供一種雲環境下SaaS軟件部署方法及裝置,以對雲環境下SaaS軟件進行優化部署,在知足租戶租約的同時,使得資源利用率最高,對虛擬機的租用成本最低。優化
爲解決上述技術問題,本發明提供以下技術方案:雲計算
一種雲環境下SaaS軟件部署方法,包括:spa
得到至少一個租戶對SaaS軟件的租約;
根據所述租約,肯定需部署的SaaS軟件信息,所述SaaS軟件信息包含SaaS軟件的類型信息及每種類型的SaaS軟件的資源消耗要求;
根據租用基礎設施狀況,肯定可租用的虛擬機信息,所述虛擬機信息包含虛擬機的類型信息、每種類型的虛擬機的資源提供能力及每種類型的虛擬機的租用成本;
根據所述SaaS軟件信息和所述虛擬機信息,肯定部署方案,所述部署方案中包含:每種類型的SaaS軟件實例數量、每種類型的虛擬機實例數量、租戶與SaaS軟件實例的對應關係及SaaS軟件實例與虛擬機實例的對應關係,所述部署方案對應的虛擬機的總租用成本最低;
依據所述部署方案進行SaaS軟件的部署。
在本發明的一種具體實施方式中,所述得到至少一個租戶對SaaS軟件的租約,包括:
接收至少一個租戶對SaaS軟件的租用請求;
根據每一個租戶的租用請求,得到每一個租戶的租約。
在本發明的一種具體實施方式中,根據所述SaaS軟件信息和所述虛擬機信息,肯定部署方案,包括:
利用貪心算法,根據所述SaaS軟件信息和所述虛擬機信息,分別計算僅使用單一類型的虛擬機部署所有租約時,須要每種類型的虛擬機實例的最大數量;
至少以虛擬機的總租用成本最低爲優化目標,利用遺傳算法求解租戶、SaaS軟件實例與虛擬機實例的映射關係,得到部署方案。
在本發明的一種具體實施方式中,根據所述SaaS軟件信息和所述虛擬機信息,肯定部署方案,包括:
根據所述SaaS軟件信息和所述虛擬機信息,肯定多個待部署方案,不一樣待部署方案中包含每種類型的SaaS軟件實例數量、每種類型的虛擬機實例數量、租戶與SaaS軟件實例的對應關係及SaaS軟件實例與虛擬機實例的對應關係不一樣;
肯定每一個待部署方案對應的虛擬機的總租用成本;
將最低的總租用成本對應的待部署方案肯定爲部署方案。
在本發明的一種具體實施方式中,最低的總租用成本對應的待部署方案有至少兩個,所述將最低的總租用成本對應的待部署方案肯定爲部署方案,包括:
在本發明的一種具體實施方式中,最低的總租用成本對應的待部署方案有至少兩個,所述部署方案肯定模塊,具體用於:
將最低的總租用成本對應的待部署方案中SaaS軟件實例數量最少的待部署方案肯定爲部署方案。
應用本發明實施例所提供的技術方案,得到至少一個租戶對SaaS軟件的租約後,根據租約,能夠肯定需部署的SaaS軟件信息,該SaaS軟件信息包含SaaS軟件的類型信息及每種類型的SaaS軟件的資源消耗要求,根據租用基礎設施狀況,能夠肯定可租用的虛擬機信息,虛擬機信息包含虛擬機的類型信息、每種類型的虛擬機的資源提供能力及每種類型的虛擬機的租用成本,根據SaaS軟件信息和虛擬機信息,能夠肯定部署方案,部署方案對應的虛擬機的總租用成本最低,依據該部署方案進行SaaS軟件的優化部署,節省了SaaS服務提供商的租用成本,提升了資源利用率。
附圖說明
爲了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所須要使用的附圖做簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來說,在不付出創造性勞動的前提下,還能夠根據這些附圖得到其餘的附圖。
圖1爲本發明實施例中一種雲環境下SaaS軟件部署方法的實施流程圖;
圖2爲本發明實施例中雲環境下SaaS軟件部署模型結構示意圖;
圖3爲本發明實施例中租戶需求的一種示意圖;
圖4爲本發明實施例中部署方案的一種示意圖;
圖5爲本發明實施例中一種雲環境下SaaS軟件部署裝置的結構示意圖。
具體實施方式
爲了使本技術領域的人員更好地理解本發明方案,下面結合附圖和具體實施方式對本發明做進一步的詳細說明。顯然,所描述的實施例僅僅是本發明一部分實施例,而不是所有的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所得到的全部其餘實施例,都屬於本發明保護的範圍。
參見圖1所示,爲本發明實施例所提供的一種雲環境下SaaS軟件部署方法的實施流程圖,該方法能夠包括如下步驟:
S110:得到至少一個租戶對SaaS軟件的租約。
本發明實施例是在雲環境下針對採用多租戶多實例的軟件第四級成熟度模型的SaaS軟件,在服務構建階段,對租戶的租約和SaaS軟件實例進行優化部署。一個或多個租戶能夠發送對SaaS軟件的租用請求,接收至少一個租戶對SaaS軟件的租用請求後,能夠根據每一個租戶的租用請求,得到每一個租戶的租約。
根據每一個租戶的租用請求,能夠得到每一個租戶的租約,每一個租約涉及不一樣租戶要租用的SaaS軟件的類型及不一樣的服務水平協議(Service Level Agreement,SLA)。租戶要租用服務時,租戶和SaaS服務提供商之間須要簽定服務水平協議,即SLA。SLA描述了租戶要租用服務的租期、用戶數、服務質量(Quality of Service,QoS)需求等內容。SaaS服務提供商就是根據SLA來提供服務的。
得到至少一個租戶對SaaS軟件的租約後,能夠繼續執行步驟S120或者步驟S130的操做。
S120:根據租約,肯定需部署的SaaS軟件信息。
SaaS軟件信息包含SaaS軟件的類型信息及每種類型的SaaS軟件的資源消耗要求。
得到至少一個租戶對SaaS軟件的租約後,能夠根據租約,肯定需部署的SaaS軟件信息,即肯定租戶要租用的SaaS軟件的類型信息及每種類型的SaaS軟件的資源消耗要求。
S130:根據租用基礎設施狀況,肯定可租用的虛擬機信息。
虛擬機信息包含虛擬機的類型信息、每種類型的虛擬機的資源提供能力及每種類型的虛擬機的租用成本。
如圖2所示,在SaaS軟件部署模型中,SaaS服務提供商經過SaaS應用系統門戶爲租戶提供服務,SaaS服務提供商能夠包含如下幾個層次:
服務器層:物理服務器爲服務器實體設備,爲充分利用資源,會採用必定的虛擬化技術進行虛擬機化,一個物理服務器能夠虛擬出多個虛擬機,每一個虛擬機具備獨立的系統管理,虛擬機之間互不干擾。物理服務器的個數理論上能夠隨着需求的變化而進行動態的增長或者減小。
虛擬機層:提供基礎設施服務,SaaS軟件運行在虛擬機上,SaaS服務提供商能夠租用基礎設施服務商的虛擬機來提供服務,也能夠搭建本身的基礎設施來提供服務。隨着租戶租用需求的變化,能夠動態的建立或者刪除虛擬機,作到按需使用,節約資源。
應用層:應用層能夠運行多個SaaS軟件實例併爲租戶提供SaaS服務。
資源監測層:從服務器層、虛擬機層、應用層等層次對資源消耗狀況進行監測。對服務器層監測能夠得到各個物理服務器的資源狀態,以便進行虛擬機調度、實現物理資源的負載均衡;對虛擬機層監測能夠得到虛擬機的當前資源消耗狀況,在進行租戶負載均衡時,須要根據租戶的需求和虛擬機的資源狀態肯定是否能分配到該虛擬機,對應用層監測能夠爲資源消耗模型的創建和調整提供數據依據,是資源度量的重要支撐。
在本發明實施例中,SaaS服務提供商經過租用基礎設施爲租戶提供服務。在SaaS服務提供商租用基礎設施的狀況下,因爲SaaS服務提供商租用第三方的虛擬機資源,所以,虛擬機資源在理論上是可無限擴展的。
SaaS服務提供商在得到租戶的租約後,能夠根據租用基礎設施實際狀況,肯定可租用的虛擬機信息。虛擬機信息包含虛擬機的類型信息、每種類型的虛擬機的資源提供能力及每種各種型的虛擬機的租用成本。
須要說明的是,本發明實施例對步驟S120和步驟S130的執行順序不作限制。
S140:根據SaaS軟件信息和虛擬機信息,肯定部署方案。
部署方案中包含:每種類型的SaaS軟件實例數量、每種類型的虛擬機實例數量、租戶與SaaS軟件實例的對應關係及SaaS軟件實例與虛擬機實例的對應關係。
通常狀況下,一個SaaS軟件只實例化一次,全部對該軟件有租用請求的租戶都共享同一軟件實例,但隨着租戶併發訪問量的增長,可能致使單個軟件實例的服務能力難以知足全部租戶對該軟件的服務質量要求,則需部署該軟件的多個實例。本發明實施例根據租戶SLA協議中對服務質量的要求,合理分配不一樣的租戶訪問相應的實例,知足租戶需求的同時提升SaaS軟件的利用率,確保服務的負載均衡。
在本發明的一種具體實施方式中,步驟S140能夠包括如下步驟:
步驟一:利用貪心算法,根據SaaS軟件信息和虛擬機信息,分別計算僅使用單一類型的虛擬機部署所有租約時,須要每種類型的虛擬機實例的最大數量;
步驟二:至少以虛擬機的總租用成本最低爲優化目標,利用遺傳算法求解租戶、SaaS軟件實例與虛擬機實例的映射關係,得到部署方案。
在本發明實施例中,設T={T1,T2,…,Tt}爲得到的租戶的租約集合,租約Ti(i=1,2,…,t)即表示圖3中的一個服務租用關係,在租用基礎設施環境下對SaaS軟件進行優化部署時根據全部租戶的租用請求便可肯定租戶的租約集合T;設S={S1,S2,…,Sm}爲SaaS軟件類型的集合;設VM={VM1,VM2,…,VMn}爲虛擬機類型的集合。根據租戶的租約集合T中每一個租約與SaaS軟件類型的對應關係,能夠肯定所需部署的SaaS軟件類型集合S及S中每種類型SaaS軟件的資源消耗要求。同時,根據租用基礎設施的實際狀況能夠肯定所需租用的虛擬機類型集合VM、VM中每種類型虛擬機的租用成本及資源提供能力。
如圖3所示,共有四個租戶,租約集合T={T1,T2,T3,T4,T5},肯定的SaaS軟件類型有S1和S2,肯定的虛擬機類型有VM1、VM2和VM3,分別具備不一樣的資源提供能力和租用成本。
在已肯定的租約集合T、SaaS軟件類型集合S、虛擬機類型集合VM的條件下,根據每種類型SaaS軟件的資源消耗要求和每種類型虛擬機的資源提供能力,能夠肯定集合S中每種類型SaaS軟件所需部署的數量、集合VM中每種類型虛擬機所需租用的數量、以及租約集合T、所部署的SaaS軟件實例集合S*(即所部署的各類類型SaaS軟件構成的集合)、所租用虛擬機實例集合VM*(即所租用的各類類型虛擬機構成的集合)之間的對應關係創建租用基礎設施環境下SaaS軟件優化部署的數學模型,該數學模型爲帶約束條件的組合優化問題,屬於NP問題。優化目標至少包含VM*中虛擬機的總租用成本最低,固然還能夠包含其餘優化目標,如S*中SaaS軟件的個數最少等。
在本發明實施例中,使用貪心算法加遺傳算法的混合策略,首先利用貪心算法,計算出只使用某一類型虛擬機部署所有租約時,須要該類型虛擬機的最大數量,得出每種類型虛擬機實例所需的最大總數量,而後使用遺傳算法求解映射關係,得到部署方案。
如圖4所示,爲肯定的部署方案,租用1個虛擬機VM1的實例VM11,兩個VM2的實例VM21、VM22,須要建立兩個S1的實例S11、S12,兩個S2的實例S21、S22;S11部署到VM11上,S12、S21部署到VM21上,S22部署到VM22上;S11上部署了租戶1,S12上部署了租戶2,S21上部署了租戶二、租戶3,S22上部署了租戶4。
這樣能夠在知足租戶需求和質量的條件下,使得虛擬機的租用成本最低,節省SaaS服務提供商的租用成本,提升資源利用率。
在本發明的一種具體實施方式中,步驟S140能夠包括如下步驟:
第一個步驟:根據SaaS軟件信息和虛擬機信息,肯定多個待部署方案,不一樣待部署方案中包含每種類型的SaaS軟件實例數量、每種類型的虛擬機實例數量、租戶與SaaS軟件實例的對應關係及SaaS軟件實例與虛擬機實例的對應關係不一樣;
第二個步驟:肯定每一個待部署方案對應的虛擬機的總租用成本;
第三個步驟:將最低的總租用成本對應的待部署方案肯定爲部署方案。
在本發明實施例中,根據SaaS軟件信息和虛擬機信息,能夠肯定出多個待部署方案,不一樣待部署方案中包含的每種類型的SaaS軟件實例數量、每種類型的虛擬機實例數量、租戶與SaaS軟件實例的對應關係及SaaS軟件實例與虛擬機實例的對應關係不一樣。
根據每種類型的虛擬機的租用成本及每一個待部署方案中包含的每種類型的虛擬機實例數量,能夠肯定每一個待部署方案對應的虛擬機的總租用成本。能夠將最低的總租用成本對應的待部署方案肯定爲部署方案。
若是最低的總租用成本對應的待部署方案有至少兩個,則能夠從中選擇一個待部署方案,將其肯定爲部署方案,優選的是將最低的總租用成本對應的待部署方案中SaaS軟件實例數量最少的待部署方案肯定爲部署方案。
這樣能夠在知足租戶需求和質量的條件下,使得虛擬機的租用成本最低,節省SaaS服務提供商的租用成本,提升資源利用率。
S150:依據部署方案進行SaaS軟件的部署。
在步驟S140肯定了部署方案,依據該部署方案能夠進行SaaS軟件的部署。
應用本發明實施例所提供的方法,得到至少一個租戶對SaaS軟件的租約後,根據租約,能夠肯定需部署的SaaS軟件信息,該SaaS軟件信息包含SaaS軟件的類型信息及每種類型的SaaS軟件的資源消耗要求,根據租用基礎設施狀況,能夠肯定可租用的虛擬機信息,虛擬機信息包含虛擬機的類型信息、每種類型的虛擬機的資源提供能力及每種類型的虛擬機的租用成本,根據SaaS軟件信息和虛擬機信息,能夠肯定部署方案,部署方案對應的虛擬機的總租用成本最低,依據該部署方案進行SaaS軟件的優化部署,節省了SaaS服務提供商的租用成本,提升了資源利用率。
相應於上面的方法實施例,本發明實施例還提供了一種雲環境下SaaS軟件部署裝置,下文描述的一種雲環境下SaaS軟件部署裝置與上文描述的一種雲環境下SaaS軟件部署方法可相互對應參照。
參見圖5所示,該裝置包括如下模塊:
租約得到模塊510,用於得到至少一個租戶對SaaS軟件的租約;
SaaS軟件信息肯定模塊520,用於根據租約,肯定需部署的SaaS軟件信息,SaaS軟件信息包含SaaS軟件的類型信息及每種類型的SaaS軟件的資源消耗要求;
虛擬機信息肯定模塊530,用於根據租用基礎設施狀況,肯定可租用的虛擬機信息,虛擬機信息包含虛擬機的類型信息、每種類型的虛擬機的資源提供能力及每種類型的虛擬機的租用成本;
部署方案肯定模塊540,用於根據SaaS軟件信息和虛擬機信息,肯定部署方案,部署方案中包含:每種類型的SaaS軟件實例數量、每種類型的虛擬機實例數量、租戶與SaaS軟件實例的對應關係及SaaS軟件實例與虛擬機實例的對應關係,部署方案對應的虛擬機的總租用成本最低;
SaaS軟件部署模塊550,用於依據部署方案進行SaaS軟件的部署。
應用本發明實施例所提供的裝置,得到至少一個租戶對SaaS軟件的租約後,根據租約,能夠肯定需部署的SaaS軟件信息,該SaaS軟件信息包含SaaS軟件的類型信息及每種類型的SaaS軟件的資源消耗要求,根據租用基礎設施狀況,能夠肯定可租用的虛擬機信息,虛擬機信息包含虛擬機的類型信息、每種類型的虛擬機的資源提供能力及每種類型的虛擬機的租用成本,根據SaaS軟件信息和虛擬機信息,能夠肯定部署方案,部署方案對應的虛擬機的總租用成本最低,依據該部署方案進行SaaS軟件的優化部署,節省了SaaS服務提供商的租用成本,提升了資源利用率。
在本發明的一種具體實施方式中,租約得到模塊510,具體用於:
接收至少一個租戶對SaaS軟件的租用請求;
根據每一個租戶的租用請求,得到每一個租戶的租約。
在本發明的一種具體實施方式中,部署方案肯定模塊540,具體用於:
利用貪心算法,根據SaaS軟件信息和虛擬機信息,分別計算僅使用單一類型的虛擬機部署所有租約時,須要每種類型的虛擬機實例的最大數量;
至少以虛擬機的總租用成本最低爲優化目標,利用遺傳算法求解租戶、SaaS軟件實例與虛擬機實例的映射關係,得到部署方案。
在本發明的一種具體實施方式中,部署方案肯定模塊540,具體用於:
根據SaaS軟件信息和虛擬機信息,肯定多個待部署方案,不一樣待部署方案中包含每種類型的SaaS軟件實例數量、每種類型的虛擬機實例數量、租戶與SaaS軟件實例的對應關係及SaaS軟件實例與虛擬機實例的對應關係不一樣;
肯定每一個待部署方案對應的虛擬機的總租用成本;
將最低的總租用成本對應的待部署方案肯定爲部署方案。
在本發明的一種具體實施方式中,最低的總租用成本對應的待部署方案有至少兩個,部署方案肯定模塊540,具體用於:
將最低的總租用成本對應的待部署方案中SaaS軟件實例數量最少的待部署方案肯定爲部署方案。
本說明書中各個實施例採用遞進的方式描述,每一個實施例重點說明的都是與其它實施例的不一樣之處,各個實施例之間相同或類似部分互相參見便可。對於實施例公開的裝置而言,因爲其與實施例公開的方法相對應,因此描述的比較簡單,相關之處參見方法部分說明便可。
專業人員還能夠進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,可以以電子硬件、計算機軟件或者兩者的結合來實現,爲了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能通常性地描述了各示例的組成及步驟。這些功能究竟以硬件仍是軟件方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員能夠對每一個特定的應用來使用不一樣方法來實現所描述的功能,可是這種實現不該認爲超出本發明的範圍。
結合本文中所公開的實施例描述的方法或算法的步驟能夠直接用硬件、處理器執行的軟件模塊,或者兩者的結合來實施。軟件模塊能夠置於隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。
本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的技術方案及其核心思想。應當指出,對於本技術領域的普通技術人員來講,在不脫離本發明原理的前提下,還能夠對本發明進行若干改進和修飾,這些改進和修飾也落入本發明權利要求的保護範圍內。