摘 要: 目前典型的云基礎設施提供商所提供的虛擬機資源都是有限的規格類型,當同一個服務部署在不同配置的虛擬機上時,會體現出不同的性能。通過對基于云基礎設施的SaaS層服務部署情況進行研究和分析,提出對服務部署策略進行優化的必要性,并將該服務部署優化問題抽象為多目標組合優化問題,對其進行數學建模;然后利用排隊論,得出優化指標的計算方法,并進行實驗驗證。
關鍵詞: 云計算;服務部署優化;多目標組合優化
0 引言
云計算供應商提供了常見的可從Web瀏覽器獲取的在線服務應用,通常用基礎設施即服務(Infrastructure as a Service,IaaS)、平臺即服務(Platform as a Service,PaaS)和軟件即服務(Software as a Service,SaaS)3個層次來表示。
SaaS可基于傳統計算架構提供,也可基于云計算架構提供。在基于云計算架構部署SaaS時,可直接在IaaS層之上部署,也可在PaaS層之上進行部署。IaaS層中的資源,尤其是虛擬機形式的資源,常常是有限的。目前典型的IaaS提供商所提供的虛擬機資源一般是固定的幾種,SaaS提供商在利用IaaS層中的資源部署應用時,需要考慮部署應用的虛擬機規格。
由于不同類型的用戶對SaaS層的應用服務有不同的服務質量需求,服務提供商需要與不同類型的用戶分別簽訂服務等級協議,以滿足其需求。此外,要部署的應用通常由多個不同的服務及其工作流組成,構成應用的每個服務可以生成多個服務實例,每個服務實例部署在不同配置的虛擬機上體現出的性能也不同。因此,對于云供應商而言,服務部署是要實施的最重要的任務。
1 服務部署優化問題分析
1.1 SaaS層服務部署方式
云服務是指服務提供者向服務使用者提供的任何類型的IT功能。云服務的典型類別包括基礎架構、平臺、軟件或業務流程服務,常用IaaS、PaaS和SaaS 3個層次來表示[1]。本文主要研究SaaS層的服務部署,它的部署方式有基于PaaS平臺和基于IaaS平臺兩種,圖1和圖2分別表示了這兩種方案。
若SaaS層應用要以獨立于平臺的方式部署在云上,IaaS一定是最佳選擇。應用開發者或SaaS提供商可租用IaaS提供商提供的各種虛擬機(Virtual Machine,VM),將應用部署到云環境中,以SaaS的形式提供給最終用戶使用[2]。但是,IaaS層中的資源,尤其是虛擬機形式的資源,不同配置規格提供不同的服務質量,也需要不同的服務價格。
1.2 優化問題提出
在SaaS中,服務提供商通過接口將功能和數據封裝成應用提供給用戶訪問。應用可以理解成服務的集合。服務可以單獨訪問,也可以組合訪問[3]。因此,一個復雜的應用服務通常是由一組子服務以及這些子服務構成的工作流組成。工作流定義了服務之間的交互方式。
不同的SaaS層用戶對應用服務有不同的服務質量需求。為了滿足不同的服務等級協議(Service Level Agreement,SLA)[4],SaaS提供商在部署SaaS層的應用服務時,需要考慮使用由IaaS提供商提供的哪種VM配置方案以及每個服務需要多少服務實例,從而為每類用戶優化服務部署。由于SLA中需要滿足的性能指標較多且可能沖突,同時可能的服務實例和VM類型的組合也較多,因此部署決策問題實際是一個多目標組合優化問題。
2 問題的抽象與建模
總結前文分析,可將云計算環境中的服務部署優化問題的基本模型概括為:IaaS提供商給定一組不同配置和價格的虛擬機,SaaS提供商利用這些虛擬機資源部署應用。應用由一組服務及其工作流組成。SaaS提供商需要找到一種部署應用的方案,實現在滿足不同類型的用戶的服務質量需求的情況下,最小化部署費用。
應用中每個服務可生成任意多個服務實例,同一個虛擬機上也可以部署多個不同的服務實例,因此,服務實例與虛擬機的組合結果是無限的。優化目標包括延遲、吞吐量和費用,它們無法統一為一個量綱,并存在相互制約關系。
由此可見,云計算環境中的服務部署優化問題是一個典型的多目標組合優化問題,問題初始化變量包括服務實例、虛擬機類型以及優化指標,可做如下數學描述:
S={s1,s2,…,si,…,sm}(1)
V={v1,v2,…,vi,…,vn}(2)
O={o1,o2,…,oi,…,ol}gi(o)≥Ki,i=1,2,…,l(3)
其中,S代表組成應用的所有服務集合,si對應服務i;V為云環境中由IaaS提供商提供的所有虛擬機類型集合,vi對應虛擬機類型i;O代表可優化的SLA中的指標,如延遲、吞吐量、費用等,每個指標都有對應的邊界值,使其在實際問題中有現實意義,這里用gi(o)≥Ki表示。
S和V中的元素可以任意組合,數學表述如下:
R(s,v)={s1v1,s2v2,…,sivj,…,smvn},vi∈V,si∈S(4)
r1=s1v1(5)
r2=s1v2(6)
…
rk=sivj(7)
…
rp=smvn(8)
R(s,v)={r1,r2,…,rk,…,rp}(9)
{s1,s2,…,si,…,sm}=S(10)
|R(s,v)|≥|S|(11)
其中,式(7)表示一個r(rk)代表某個服務實例(si)部署到某種虛擬機(vj)。R為服務部署的具體方案。式(10)表示一個部署方案R必須保證所有服務實例都被部署。式(11)說明一個部署方案R中,某些服務實例可能被部署多次。圖3表示了某部署問題中,某種部署方案Ri的生成方式。
由于R所占用的虛擬機種類及數量會隨集合值的不同而不同,因此,不同R會對應一組不同的O值。R所包含元素的組合方式有很多種,因此服務部署方案,也就是問題的數學解集RX(式(12))的元素有無窮多個,其中元素Ri代表了一種具體的部署方案,根據Ri占用的虛擬機資源可得到Oi,Oi包含了所有要優化的目標值,所有Oi組成的集合定義為OX,即式(13)。
RX={R1,R2,…,Ri,…,R∞}(12)
OX={O1,O2,…,Oi,…,O∞}(13)
服務部署優化的問題對應于其數學模型上的求解為在RX中的眾多元素中找到合適的Ri值,使得其對應的Oi值能最好地滿足SLA中規定的各項指標,該Ri即為優化服務部署方案。
3 優化指標計算及驗證
3.1 云環境中的SLA
SLA是服務提供者和服務需求者之間定義的關于服務的具體水平的正式協議,包括服務描述、服務等級參數、保證以及所有違例情況的行動和補救措施[5]。SaaS應用中的SLA主要關注的是與SaaS應用的服務質量相關的性能參數,例如響應時間、吞吐量、可靠性、易用性、可擴展性和操作便捷性等[6]。為了簡化問題,本文選取響應時間、吞吐量和費用3個目標進行優化。
3.2 服務實例的吞吐量和延遲
設μ是平均單位服務速率,它是平均請求處理時間的倒數。基于μ,當一個服務實例在多種不同請求到達率下運行在一個具有多種VM配置的部署方案上,可利用排隊論來評估服務實例的吞吐量和延遲。
服務請求的到達可將其表示為一個泊松分布。λ是平均請求到達率,即單位時間內對一個服務實例的請求的平均數量。
對一個確定的服務實例而言,它對每個請求的服務處理時間一般是固定的,因此將服務實例建模為一個M/D/1排隊,即泊松到達、確定服務時間和單服務窗口。
M/D/1排隊系統的服務時間Tn是定長分布。據Little公式,可得顧客平均排隊等待時間為[7]:
既然μ已知,當λ給定時,Wq就可以計算出來。當λ>μ時,所有n個CPU核的使用率都超過了100%,此時的服務實例吞吐量就是μ;而當λ≤μ時,服務實例的吞吐量即為λ。
3.3 端到端的QoS值
由于云環境中的一個應用是由一組服務及其工作流組成的,因此,在計算出應用中各個服務實例的延遲、吞吐量、費用等優化指標值之后,還需要計算整個應用的總優化指標值,即端到端的QoS(Quality of Service)值。
組成應用的各服務之間存在串聯、并聯和分支等多種情況,對同一個服務而言,也可能是一個或多個服務實例同時提供服務。因此,在計算端到端的QoS值時,需分別考慮這些情況。
3.4 仿真實驗驗證
本文用MATLAB等工具對前述理論計算公式進行了實驗驗證。
圖4為在單服務實例情況下,當服務速率μ分別為15 req/s、24 req/s、32 req/s時,在不同請求到達率下的平均延遲曲線圖??梢钥闯?,當用戶請求到達率λ小于服務速率μ時,測量值與理論值曲線的吻合度較高,誤差較??;當λ接近μ時,據式(15)可知,延遲值將趨近無限大;當λ>μ時,理論值公式不再適用,因此與圖4所示實際值誤差較大。綜上所述,當λ<μ時,該排隊模型和計算公式能夠較為精確地表示單服務實例的延遲值。
這里也對端到端的QoS值進行了驗證。假設服務1、2、3和4的服務速率分別是μ1=24 req/s,μ2=15 req/s,μ3=32 req/s,μ4=32 req/s,圖5為該應用在不同請求到達率下的端到端延遲值。可以看出,前述理論計算方法能夠較為精確地表示端到端的延遲值。
4 結論
本文通過對云計算環境中的服務部署情況的詳細分析,提出了在基于云基礎設施對SaaS層服務進行部署時進行優化的必要性。通過抽象和數學建模,將問題表示成一個多目標組合優化問題。最后利用排隊論得出了SLA中的優化指標計算方法,并通過仿真實驗進行了驗證。
下一步研究中,可利用此優化模型,將實際情況與已有多目標優化算法結合,設計出適用于本研究課題的優化算法,并通過仿真實驗對算法的有效性進行驗證。
參考文獻
[1] 徐星,周劍雄,王明哲.基于模型仿真的云計算PaaS構建模式選擇[J].微電子學與計算機,2014(6):91-96.
[2] 曹偉杰,賀建民,孫志丹.IaaS模式下虛擬機部署機制研究[J].計算機技術與發展,2012,22(10):105-108.
[3] 張曉娟,易明巍.基于云計算與SOA的企業集成架構及實現[J].計算機系統應用,2011,20(9):1-6.
[4] 馮國富,唐明偉,劉林源,等.基于服務級別協議的云資源分配[J].計算機科學,2014,41(4):36-39.
[5] 張健.云計算服務等級協議(SLA)研究[J].電信網技術,2012(2):16-21.
[6] 程旭.基于SLA的SaaS應用性能管理機制研究[D].濟南:山東大學,2010.
[7] 陸傳賚.排隊論[M].北京:北京郵電大學出版社,2009.