劉薇
(廣州鐵路職業(yè)技術學院 廣東省廣州市 510430)
我國逐步進入云發(fā)展成熟應用階段,云計算將成為基礎設施,各種應用需求都將從云端獲得。這需要越來越豐富的云應用產(chǎn)品。但是,縱觀我國的云計算應用產(chǎn)品,依舊過多的集中在云存儲、云分享、云主機等業(yè)務比較的單一的IaaS 服務狀態(tài)。當前在SaaS(Software as a service,軟件即服務)軟件領域[1][2],己有一大批優(yōu)秀的知名軟件公司如Salesforce,Google,Microsoft,IBM,亞馬遜,阿里巴巴,八百客等在這個領域推出了自己的產(chǎn)品[3],但是一般都是面向特定應用的。
目前,全球網(wǎng)站數(shù)量數(shù)以億計。網(wǎng)站建設包括軟硬件購買、開發(fā)、部署和運維等過程。傳統(tǒng)建站方式主要面臨問題:(1)軟硬件均需要購買,成本高;(2)專業(yè)人員開發(fā),一定技術依賴性;(3)代碼復用程度低,不支持自定義;(4)網(wǎng)站獨立部署和運維,一定維護難度。[4]基于SaaS多租戶云網(wǎng)站群是指基于云平臺上提供SaaS 的網(wǎng)站服務,可較好地解決傳統(tǒng)的建站和運維問題。
本文結合SaaS、多租戶、網(wǎng)站群等相關技術提出一種通用SaaS 多租戶云網(wǎng)站群的實現(xiàn)方法,提供以信息發(fā)布管理為主的云網(wǎng)站群為基礎,實現(xiàn)精品課程云網(wǎng)站群,并設計開發(fā)了SaaS 多租戶精品課程云網(wǎng)站群原型。如果要其它云網(wǎng)站群,如中小學網(wǎng)站,只需在云網(wǎng)站群管理平臺擴展相關的業(yè)務功能組件。實驗證明:SaaS多租戶網(wǎng)站群使用單一網(wǎng)站實例,通過簡單配置,讓用戶能以低成本和低風險的方式使用網(wǎng)站軟件服務,并具備快速部署、資源重用等優(yōu)勢。
SaaS 多租戶云網(wǎng)站群中,企事業(yè)單位或個人通過網(wǎng)絡租用具有可自定義配置的多租戶網(wǎng)站,云網(wǎng)站群管理員根據(jù)需求分配業(yè)務組件及租戶賬號。租戶通過瀏覽器登陸自己網(wǎng)站的后臺管理系統(tǒng),通過后臺管理系統(tǒng)提供的業(yè)務組件及可視化的租戶頁面編輯器配置自己網(wǎng)站的信息欄目,內(nèi)容管理,風格設計等頁面內(nèi)容,然后保存到SaaS 多租戶應用的云平臺中。租戶網(wǎng)站的用戶(訪客)可以通過瀏覽器訪問租戶自定義好的網(wǎng)站,這種建站方式實現(xiàn)了租戶快速編輯網(wǎng)站,而無需關心網(wǎng)站部署跟維護。
SaaS 多租戶云網(wǎng)站群需要解決的關鍵技術有:
(1)多租戶(multi-tenancy technology)技術。是SaaS 實現(xiàn)的核心技術。多租戶環(huán)境下各個租戶實際上使用的是同一個系統(tǒng)或程序?qū)嵗捎谙到y(tǒng)或程序的個性化能力的支持,租戶之間是感知不到正在和其他租戶共享一套系統(tǒng)或程序的,他們會認為自己在專用著這個系統(tǒng)或程序[5],多租戶技術核心多租戶數(shù)據(jù)庫設計及數(shù)據(jù)切分技術。
(2)頁面自定義技術。指滿足頁面展示的設計技術,租戶只需要通過瀏覽器就像使用Office 一樣可視化的編輯自己網(wǎng)站頁面,并且按照自己的美學觀點進行頁面設計,包括頁面布局、頁面顯示顏色、頁面顯示字段、頁面編輯等等。
(3)云環(huán)境部署和資源調(diào)度:根據(jù)租戶網(wǎng)站的負載變化和負載預測,自適應調(diào)度云資源的技術,實現(xiàn)云資源自適應調(diào)度。
基于SaaS 的多租戶云網(wǎng)站群運行在云平臺上,劃分為SaaS 層與PaaS,其中SaaS 層分為租戶視圖服務,網(wǎng)站業(yè)務服務,網(wǎng)站基礎服務,PaaS 層分為多租戶數(shù)據(jù)庫系統(tǒng),分布式文件系統(tǒng),資源池監(jiān)控,租戶資源監(jiān)控及租戶自適應調(diào)度,最底層為云基礎設施。SaaS 層是面向應用服務,所以用戶需求會存在多樣性,在云基礎設施及PaaS 層因為客戶需求的一致性,所以產(chǎn)品比較成熟,比如說Sina App Engine(SAE),本文SaaS 多租戶云網(wǎng)站群是建立在成熟產(chǎn)品Sina App Engine(SAE)之上,不太合適?改為品高云平臺Bingo Cloud 查一下實驗室版本,系統(tǒng)應用架構。
訪問代理與負載均衡:為所有租戶及訪問用戶提供統(tǒng)一的云網(wǎng)站群訪問入口。使用訪問代理服務器將請求轉發(fā)給內(nèi)部的Web 服務器,讓代理服務器將請求均勻轉發(fā)給多臺內(nèi)部Web服務器之一上,從而達到負載均衡的目的。
租戶視圖服務:包括模板引擎,租戶頁面編輯器與租戶頁面自動生成器。該服務層提供給租戶的一個配置該租戶網(wǎng)站頁面的窗口,租戶通過頁面編輯器定制或者選擇模板配置初始化自己的信息,然后通過租戶頁面自動生成器自動生成所配置的頁面。
網(wǎng)站群業(yè)務服務:主要包括基礎業(yè)務服務和網(wǎng)站業(yè)務相關服務,其中基礎服務作為平臺的基石,主要包括了租戶數(shù)據(jù)緩存,租戶數(shù)據(jù)隔離,文件轉換服務以及租戶數(shù)據(jù)訪問等;業(yè)務相關服務包括了租戶管理服務組件,用戶管理服務組件,身份認證服務組件,數(shù)據(jù)模型服務組件,行業(yè)可定制通用業(yè)務組件及站群管理服務等。網(wǎng)站群業(yè)務服務除了需要提供給用戶軟件服務之外,還需要負責系統(tǒng)業(yè)務邏輯處理,即業(yè)務請求處理和業(yè)務邏輯調(diào)用。平臺業(yè)務服務是在基礎服務層之上,但是不強制依賴于基礎層。通過軟件服務注冊、授權的方式,解除服務之間的耦合度、增強可移植性,同時保證了底層邏輯變化不影響上層業(yè)務的運轉?;A層中的租戶數(shù)據(jù)隔離是為了支持單實例多租戶,數(shù)據(jù)存儲時為各個租戶建立私有存儲空間和共享存儲空間,達到數(shù)據(jù)的隔離和共享。
數(shù)據(jù)存儲與資源調(diào)度:數(shù)據(jù)存儲主要為云化部署的多租戶分布式、可伸縮云數(shù)據(jù)庫系統(tǒng)與分布式文件系統(tǒng)。網(wǎng)站群自適應資源調(diào)度為多租戶云網(wǎng)站群場景,根據(jù)租戶網(wǎng)站的負載變化和負載預測,自適應調(diào)度云資源的技術。資源監(jiān)控為采用虛擬機CPU 使用率、虛擬機內(nèi)存利用率、虛擬機硬盤使用率作為特征值監(jiān)控資源的使用狀況與進行資源預警。
基于SaaS 的多租戶云網(wǎng)站群按功能分為四大部分:網(wǎng)站群門戶、網(wǎng)站后臺管理門戶、運維和業(yè)務管理基礎平臺、業(yè)務功能平臺。網(wǎng)站群門戶是整個平臺的入口,主要提供租戶注冊,平臺管理員登陸,租戶管理員登錄,服務提供商登陸,業(yè)務功能展示,平臺公告展示等功能。網(wǎng)站后臺管理平臺實現(xiàn)了租戶根據(jù)通過瀏覽器就像使用Office 一樣可視化的編輯自己網(wǎng)站頁面。運維和業(yè)務管理基礎平臺實現(xiàn)業(yè)務及運行的基礎服務。業(yè)務功能平臺提供可供租戶訂購的業(yè)務功能組件,如內(nèi)容管理組件、多租戶論壇等,業(yè)務功能組件war 包的形式存在的,可以是平臺提供,可以是第三方服務提供商開發(fā)提供,開發(fā)遵循平臺規(guī)定,加入平臺要經(jīng)過審核,租戶可以增加或者減少自己訂購的組件的數(shù)目;并且對該租戶所定制的組件進行管理。
業(yè)務功能平臺具有可擴展性,同時開放接口,第三方服務提供商按照規(guī)范,將業(yè)務功能組件加入平臺,這樣使業(yè)務功能組件多樣性,從而實現(xiàn)SaaS 服務的多樣性。
3.3.1 數(shù)據(jù)庫整體結構
整個平臺劃分為多租戶邏輯上較獨立的各個工程,這些工程在數(shù)據(jù)層面是相互交織的,這里從較高的層面看待庫結構的設計,總體分為基礎庫(整個平臺共享):人員庫、租戶管理庫、應用庫、定制庫、模板庫、統(tǒng)計庫、權限庫、消息庫,表結構一旦確定就不再變化,它們支撐的業(yè)務比較復雜且交織;內(nèi)容管理應用庫(CMS庫)、業(yè)務功能組件及其可擴展性由權限庫、應用庫、定制庫等實現(xiàn)。
權限庫是租戶、用戶進行業(yè)務的行動依據(jù),租戶可以CRUD角色,租戶可以在分配其他用戶的角色;每個角色可以綁定一些租戶定制的應用的權限;權限數(shù)據(jù)是在應用提交到平臺后,調(diào)用平臺API 注冊到Authority 表中。
應用庫存放審核過的業(yè)務功能組件,依據(jù)平臺API 開發(fā)的網(wǎng)站應用需要平臺管理員注冊審核的過程,應用庫中方有其記錄,,將其應用的權限注冊到平臺的權限表中;經(jīng)過上述過程的應用會在租戶的注冊頁面出現(xiàn),實現(xiàn)租戶的按需定制。
定制庫記錄租戶對業(yè)務功能組件的定制狀況,租戶通過注冊頁面定制自己的程序;租戶通過管理后臺增減自己的應用定制數(shù)量;平臺管理員通過管理后臺修改租戶對應用的使用狀態(tài)(status)。
CMS 庫是平臺的CMS 應用的庫(應用個性化庫),是平臺本身提供的一個常用的業(yè)務功能組件。
3.3.2 內(nèi)容管理應用基本庫設計
此處CMS 視為平臺的一個應用庫實例,將用來構建平臺的“平臺公告”等欄目,同時可以用來滿足內(nèi)容發(fā)布類型的網(wǎng)站群建設需要。
租戶可以通過嵌入的內(nèi)容管理子系統(tǒng)元數(shù)據(jù)管理頁面修改元數(shù)據(jù);Menu 里面根據(jù)tenant_id 取出的數(shù)據(jù)將重建成一個欄目樹,葉子節(jié)點關聯(lián)Content 表中的記錄;每個欄目顯示的名稱從Menu_Name 表中讀取,租戶可以修改配置;Content 記錄更加is_exted標記決定是否要從CMS_Metadatd 表中查找擴展字段;從CMS_Metadata 表中查出的元數(shù)據(jù)繼續(xù)從Ext_Valve 表中查到value 值,然后統(tǒng)一將基礎數(shù)據(jù)和擴展數(shù)據(jù)組裝成JSON 等對象。
信息發(fā)布為主的網(wǎng)站群是在總結各類信息發(fā)布技術和現(xiàn)有建站工具局限性的基礎上研發(fā)的一種多租戶架構的SaaS 多租戶網(wǎng)站群平臺服務。通過平臺提供的CMS 業(yè)務組件,快速訂制的SaaS 多租戶云網(wǎng)站群,業(yè)務功能展示平所示,個性化網(wǎng)站建設快捷高效。
多租戶精品課程云網(wǎng)站群在SaaS 多租戶云網(wǎng)站群原型上進行的二次開發(fā)。某學校課程可通過租用可自定義配置的多租戶精品課程網(wǎng)群系統(tǒng)用例,低成本擁有專屬的精品課程網(wǎng)站。精品課程網(wǎng)站的基礎計算存儲、網(wǎng)站部署和網(wǎng)站運維以一種云共享的方式進行。
(1)頁面管理包括:課程首頁、一級子欄目頁、二級子欄目頁;管理操作包括:首頁設計、首頁編輯、子欄目頁面增加、子欄目頁面刪除、子欄目頁面修改、多級子欄目的增加、多級子欄目的刪除、多級子欄目的修改。
進入相應頁面編輯器定義配置網(wǎng)站,提供頁面自定義界面,分為兩部分:左側為頁面設計的工具條,右側為像office 一樣進行編輯自定義頁面。
(2)租戶可對自己空間進行管理:如發(fā)消息及郵件,班級論壇等,教師用戶可以進行發(fā)布作業(yè),查看、添加、修改及刪除學生信息等,學生用戶可以提交作業(yè)等。
(3)隨訪問量增加網(wǎng)站的負載擴展,不需要增加購置服務器、帶寬、負載均衡設備等再部署,可以通過云平臺的資源動態(tài)調(diào)度完成。
(4)可充分結合云平臺運維管理能力,網(wǎng)站安全、運維服務統(tǒng)一由云平臺運營商負責。
為了解決用戶快速共享使用基于SaaS多租戶云網(wǎng)站群。本文結合SaaS、多租戶、網(wǎng)站群等相關技術,提出一種以信息發(fā)布管理云網(wǎng)站群原型,在擴展業(yè)務功能的實際網(wǎng)站群實現(xiàn)方法,以及在云環(huán)境部署運行。通過精品課程云網(wǎng)站群實例完成了可定義配置的應用,使多租戶能簡單快速配置建立各種課程精品課程網(wǎng)站,此項目已在華南范大學投入試用。從而驗證了本文部署的實用性和有效性,對研究和開發(fā)SaaS 多租戶云網(wǎng)站群有現(xiàn)實的奠基意義。