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