張文山 吳煥斌 李天偉 丁麗萍(.廣東科學中心,廣東廣州 50006;.廣州中國科學院軟件應用技術研究所,廣東廣州 5400)
?
云計算多租戶體系構架技術的探討
張文山1吳煥斌1李天偉1丁麗萍2
(1.廣東科學中心,廣東廣州510006;2.廣州中國科學院軟件應用技術研究所,廣東廣州511400)
【摘 要】互聯網下云計算多租戶體系架構有多種實現方式,每種實現方式都有其優缺點,通過對文獻研究、開源項目、科研課題研究,和基于構件的開發方法和經典構件模型的研究,針對多租戶容器平臺與業務平臺中的關鍵技術問題開展相關研究,對多租戶個性化定制、多租戶性能隔離、多租戶信息管理技術、統一權限控制、數據庫隔離及路由等關鍵技術點進行探討研究,解決其中的技術難點,突破技術的瓶頸。
【關鍵詞】互聯網軟件服務技術研究
1.1面向研發管理領域的構件模型
COM/DCOM、COBRA、.NET Assembly、EJB等經典構件模型都是針對通用領域進行定義的,一方面能夠適應所有的業務領域,另一方面對于特定的領域需要將進行進一步的領域化處理。為解決軟件危機,軟件工程提出并發展了40多年,針對軟件研發管理已經形成一系列的標準、理論、方法、理念,其中的業務領域已經相對穩定了,因此可以針對該領域建立領域特定的構件模型。該構件模型中將包含預定義的業務領域活動、行為、數據等,比如需求管理領域中需求項。基于這些預定義業務元素,能夠進一步提高基于構件的設計和開發的效率,降低缺陷率。因此,面向研發管理領域的構件模型技術的攻關將是軟件服務管理平臺技術的關鍵。
1.2多租戶統一權限控制
研發管理平臺業務邏輯復雜,涉及到多個部署構件、多個系統模塊、多種用戶角色交互等,需要對系統用戶從鏈接、菜單、方法、數據等層次來提供立體的全方位訪問控制,保證系統的安全性。在幾種控制對象中,數據的控制是最困難的,也是最重要的,其本質原因是因為對數據的權限控制在很大程度上是業務邏輯的體現,而業務邏輯是很難有一個統一的方式來進行描述和控制的。因此,如何提取一種統一的模型來對數據對象進行控制就是要解決的關鍵技術點。統一權限模型的建立,將對系統提供全面的防護措施,嚴格控制數據的訪問。
1.3基于Qos的請求分配與資源調度技術
采用高資源共享度的云計算軟件服務模式提高了資源的利用率,降低了系統的運維成本,但是當系統的并發訪問量增大時,就必須采取一種措施來保證高服務級別(SLA)租戶的訪問順暢執行,同時進行計算資源的橫向擴展,來保證整個系統的穩定運行。
基于云計算軟件服務模式的管理平臺的技術路線可初步分為:技術調研與選型、關鍵技術研究、架構設計、測試驅動開發、系統測試、部署實施等環節,如圖1。
多租戶模式的一個關鍵技術是提供對不同租戶請求訪問的隔離。隔離分為物理級別的隔離、虛擬機級別的隔離和應用級別的隔離。
物理級別的隔離方式表現為一對一模式,即一個單獨的應用實例對應一個單獨的租戶,能夠很容易的滿足每個租戶的個性化需求,同時每個租戶的應用和數據存儲都是物理隔離的,每個租戶都獨自擁有計算和存儲物理資源。這種隔離方式使得租戶彼此之間基本不會產生相互影響,具有較高的安全性,是多租戶的三種實現方式中隔離級別最高的。但是在這種模式下,應用開發商投入的軟件開發、維護、培訓、實施等成本和硬件成本比較高,軟硬件的共享性相應的也是多租戶技術實現的三種方式中最低的。傳統的應用服務提供商(Application Service Provider, ASP)就是這種隔離方式。
虛擬機級別的隔離方式是指通過虛擬機技術共享各種物理資源,即利用虛擬機模擬物理機器,在模擬的物理機中滿足租戶的個性化需求,提供租戶間的邏輯隔離。這種方式下,租戶間的隔離性就相對降低了,但是資源的共享利用率相對來說有所提高,同一臺物理機器可能對應多個虛擬機同時可以支持多個租戶,支持的租戶數量有所增加。目前國內的大多數SaaS服務提供商都是采用這種模式,比如國云在線、風云在線、品高云在線等。
應用級別的隔離方式表示為單實例多租戶模式,即通過共享一個應用實例,為多個租戶提供服務。應用實例通過應用程序級的租戶定制方式滿足租戶的個性化需求,并通過多租戶的數據存儲設計、性能隔離等方式,使所有租戶能夠共享存儲系統和硬件設備資源,從邏輯上實現租戶的隔離。在這種模式下,資源的共享程度達到了最高,軟件和硬件的成本下降。Saleforce的Force.com平臺就是采用這種應用級別的隔離方式,實現了資源的最大程度共享,獲取了更高的利潤,但是背后的技術卻更加復雜。
綜上所述,應用級別的多租戶模式的資源共享度最高,這使得采用該種方式能夠帶來更大的利潤。與此同時隔離性低帶來的相關需要突破的技術問題,包括多租戶基礎管理、應用實例的個性化定制、多租戶統一權限控制和性能隔離技術等。
4.1業務流程分析
項目管理是最核心最基礎的業務模塊。根據Qone的實際業務積累和CMMI標準過程域,將其分為售前管理、項目啟動、項目初始化等六個關鍵活動,覆蓋項目研發中的主要流程和主要參與角色。資源管理不屬于CMMI的過程域,但是在Qone的實際業務中發現,對于中大型軟件企業,人員的計劃、監控、高層統計等業務需求是廣泛存在的。因此,資源管理也作為一個關鍵的業務模塊。其核心管理涉及到三個方面,包括人員基礎數據的維護、資源計劃與變更、資源分析及成本統計。
需求管理是CMMI 3級的標準過程域,對需求管理的成功與否在很大程度上也決定了項目的成功與否。需求樹中包含需求項的集合,可以將一部分需求項生成快照編程需求基線,需求基線是軟件設計、開發、測試的基礎。需求之間以及需求與任務和工作產品之間需要建立需求跟蹤矩陣,用來驗證需求是否已經實現,以及控制需求變更。
4.2領域內模塊間依賴設計
從以上流程可以看出項目管理是核心模塊,資源管理與需求管理都需要與其交互。從架構設計的角度來說,希望能夠實現各業務模塊的分離,又能實現各業務模塊的集成,以及與外部的業務系統的集成,因此需要實現領域內構件的協作交互機制。該機制將根據構件模型的定義,從領域層、UI層、服務層來進行拆分。
領域的內聚性使得很難將一些功能和模塊進行拆分,比如項目計劃與用戶報工模塊。這是因為用戶報工主要就是針對制定的項目計劃而進行的,它們在概念上就存在依賴關系。如果按照面向服務的方式將其拆開,將會導致功能執行效率的降低。因此,內部模塊的協作一般不采用松耦合服務調用的方式,而是在實體中直接引用。比如項目管理與售前管理有關聯關系,這是由于外部項目需要與售前的活動進行關聯。但是對于內部項目來說,是不需要知道售前活動的。因此,項目管理模塊可以拆分為外部項目管理和內部項目管理兩部分,涉及到售前的外部項目信息需要提取出來作為新的構件,該構件依賴于項目管理核心構件與售前管理構件。當不需要外部項目管理功能時,則不加載外部項目管理構件即可實現;當需要外部項目管理功能時,只需要加載外部項目管理構件與售前管理構件。
4.3與外部系統依賴設計
與第三方外部系統之間的協作需要采用面向服務的方式進行,通過領域特定的接口服務進行交互。與社會化服務的交互主要是體現在用戶信息和工作內容的實時交互上。研發管理平臺與OpenId方案進行集成,可以實現社會化服務中的用戶登陸。在平臺中產生的工作進展、工作總結、疑問等內容可以輸出到微博等服務,同時相關的研發管理的內容可以推送到平臺。
5.1領域特定的構件模型
經典的COM/DCOM、COBRA、NET Assembly、EJB等構件模型是通用的模型,沒有領域針對性。本項目中提出了面向領域的構件模型,采用領域驅動設計思想進行了構件模型的類型、層次、粒度等的定義,并且對研發管理領域中的核心概念采用構件的方式進行了領域封裝,形成了領域特定的構件模型(Domain specific component model)。
5.2微內核的多租戶容器構件架構
多租戶容器借鑒了操作系統中的微內核體系結構設計的思想,形成了以core構件為核心的容器系統。這種架構設計使得能夠任意的更換和組裝內核之外的構件,形成具有不同功能的容器。比如將其中Tenant多租戶構件去除,在其中運行的應用系統就不具有多租戶的能力。
5.3廣泛的協作集成
基于面向研發管理領域的構件模型,對領域內構件的集成以及與外部系統的協作進行了定義。通過在平臺中進行業務擴展點和服務的開發接口,從而能夠支持與其他模塊、系統和服務的協作集成。
5.4基于Qos的多租戶性能隔離
針對多租戶高并發訪問的情況,提出了相應的機制和算法,對訪問請求進行了調度,同時引入了資源橫向擴展的方式,實現了對多租戶性能的隔離,保證了整個系統的可用性。
利用云計算技術搭建的多租戶體系架構,獲取軟件研發管理應用的多租戶支持,負載處理動態能力將得到很大的提升。平臺若部署5個租戶,每個租戶系統可并發訪問100人,初始并發訪問人數為20人,數據總量為20萬條,每增加20人并發訪問,負載處理響應時間在2-5秒。
基于云計算技術實現多租戶體系構架研發管理平臺的高度可定制性、可配置性等特性,根據自己的需要修改系統已有表單的布局,增刪表單中的字段,提交完成的表單具熱部署能力。當多個租戶用戶的訪問請求造成資源緊張時,將自動啟動基于Qos性能隔離,使得整個系統能夠持續可用。能夠通過多租戶容器的Tenant構件的加載與否,決定整個平臺是否采用多租戶的服務模式。
參考文獻:
[1]代棟.云計算基礎軟件平臺的研究和實踐[D].中國科學技術大學,2013.
[2]杜澈.SaaS模式的研究與應用[D].南京郵電大學,2013.
[3]折玉晶.面向中小企業信息化的SaaS平臺設計與實現[D].西北大學,2011.
基金項目:此項目來源于廣東省省級科技計劃項目,廣東省中國科學院全面戰略合作專項資金競爭性分配項目,編號2013B091300007,文件編號:粵科規財字[2014]211號,作者均為項目主要成員。