龍斌+連云凱
摘要:云數(shù)據(jù)庫是云計算環(huán)境下的數(shù)據(jù)庫新技術。DBaaS自助門戶服務平臺是以自助服務和便捷管理為導向,可以對環(huán)境中的資源進行調配,是一個靈活、可擴展、按需服務的云數(shù)據(jù)庫服務平臺?;诋斍霸茢?shù)據(jù)庫,分析了DBaaS(DataBase as a Server)的應用優(yōu)勢,針對DBaaS自助門戶服務進行設計與分析,設計DBaaS自助門戶系統(tǒng)。
關鍵詞:數(shù)據(jù)庫即服務;自助門戶;多租戶;隔離
中圖分類號:TP319
文獻標識碼:A
文章編號:16727800(2017)004012103
0引言
近年來,國家對信息化工作尤為重視,信息技術正成為各行業(yè)創(chuàng)新的驅動力。在企事業(yè)單位的信息化建設中,數(shù)據(jù)庫搭建具有重要地位,是信息化建設的支撐與保障。隨著業(yè)務的不斷拓展和各類應用的深入,企業(yè)信息化建設面臨著以下問題:一是為了滿足不斷增長的業(yè)務需求,需要不斷更新硬件設施、增購數(shù)據(jù)庫軟件的用戶數(shù)授權;二是面臨長期的系統(tǒng)運行維護問題,需要專業(yè)的運維人員以及經(jīng)過嚴格培訓的數(shù)據(jù)庫管理員,成本居高不下;三是傳統(tǒng)數(shù)據(jù)庫不能升級時,會導致數(shù)據(jù)庫的暫停服務。隨著數(shù)據(jù)量的增加和服務請求的增長,傳統(tǒng)數(shù)據(jù)庫由于可擴展性差,在遇到海量數(shù)據(jù)時往往讀寫性能變低甚至在性能上會有明顯下降,無法滿足高并發(fā)讀寫的服務請求[1]。傳統(tǒng)關系型數(shù)據(jù)庫不僅存在開發(fā)運維成本過高的問題,而且性能得不到保證。 云計算對傳統(tǒng)數(shù)據(jù)庫提出了新的要求:具有高可擴展性、高可用性、低成本、大規(guī)模數(shù)據(jù)處理的特點。如何在保證高可用性、高可擴展性、高性能、多租戶隔離、免維護等特性的前提下對外提供服務,是研究的重點。 本文基于SQL Server2012關系型數(shù)據(jù)庫設計DBaaS自助門戶服務平臺,將SQL Server2012數(shù)據(jù)庫高可用集群封裝成云服務的形式,并通過Web方式向外發(fā)布,解決租戶即時獲取數(shù)據(jù)庫服務的需求。
1DBaaS(DataBase as a Server)發(fā)展趨勢與應用優(yōu)勢
隨著互聯(lián)網(wǎng)和云計算技術、新型軟件服務模式的發(fā)展,軟件即服務(SaaS,Software as a Service)作為一種新型的軟件服務模式日益受到業(yè)界的關注。云數(shù)據(jù)庫是在SaaS模式下發(fā)展起來的一種云計算技術,通常是指運行在云計算平臺上的數(shù)據(jù)庫系統(tǒng),它承載著用戶重要關系型數(shù)據(jù)落地、數(shù)據(jù)分拆、無縫擴容等重要功能[2]。DBaaS(Database as a Service)即可交付的云數(shù)據(jù)庫服務,在傳統(tǒng)數(shù)據(jù)庫技術的基礎上,通過云計算技術將數(shù)據(jù)庫資源已服務的標準封裝起來,可以提供給一個或多個租戶使用[3]。 目前,傳統(tǒng)的國外數(shù)據(jù)庫廠商,如Oracle、IBM、Microsoft等都已經(jīng)推出了基于云計算環(huán)境的相關數(shù)據(jù)庫產(chǎn)品,原來沒有從事數(shù)據(jù)庫產(chǎn)品開發(fā)的知名公司,比如 Amazon 和 Google 等,也發(fā)布了 SimpleDB 和BigTable等產(chǎn)品。云數(shù)據(jù)庫的研究工作在國內(nèi)尚處于起步階段,阿里云、騰訊云、京東云等相繼推出了自己的云數(shù)據(jù)庫平臺,各廠家平臺實現(xiàn)方式各不相同,其軟硬件架構離DBaaS的標準也還有一定距離。DBaaS的主要優(yōu)勢如下: 對運營商而言,DBaaS提供數(shù)據(jù)庫服務的自助管理服務平臺,通過它用戶可以即時獲取數(shù)據(jù)庫服務。用戶只需要通過平臺提供的Web服務或數(shù)據(jù)庫連接字符串就能完成訪問。但不能直接控制運行原始數(shù)據(jù)庫的主機,這就增強了數(shù)據(jù)庫的管理及運維能力,同時消除了用戶、硬件和軟件的重復配置,并且虛擬化了許多后端的功能,對于用戶而言,升級軟硬件的工作更容易和簡單[4]。 相對于租戶而言,它是一個靈活可靠、可擴性強、安全性高、可用性高和按需服務的平臺,租戶可以自助服務和便捷管理為導向,完成環(huán)境中的資源動態(tài)調配。采用DBaaS模式與傳統(tǒng)企業(yè)內(nèi)置部署軟件方式相比,DBaaS意味著更少的啟動資金、更靈活的戰(zhàn)略部署。對于大多數(shù)企業(yè)尤其是中小型企業(yè)來說,系統(tǒng)內(nèi)部部署數(shù)據(jù)庫的成本較高,不利于企業(yè)統(tǒng)籌規(guī)劃發(fā)展,而DBaaS解決方案不僅可以降低首次投資的成本,且其高可擴展的靈活性對于有很大的吸引力,而這些中小型企業(yè)就是DBaaS解決方案的重要客戶群體。另外,DBaaS不僅在成本上解決了初期投入高的問題,而且云數(shù)據(jù)庫服務消除了用戶對本地存儲設備的需求,同時用戶不必安裝特有的軟件,也不必投入時間和人力去管理和維護任何軟硬件[5,6]。
2DBaaS自助門戶服務設計及實現(xiàn)
國內(nèi)阿里云、騰訊云等平臺近幾年已對外提供云數(shù)據(jù)庫服務,目前比較成熟的主要是基于MySQL數(shù)據(jù)庫的云服務,對于SQL Server數(shù)據(jù)庫服務還處于初步階段。由于SQL Server的諸多優(yōu)良特性,在國內(nèi)使用的企事業(yè)單位很多,但正版SQL Server高昂的價格也使得不少企事業(yè)單位無法承受,同時也造成了盜版的泛濫。另外,當SQL Server數(shù)據(jù)庫的配置在性能上遇到瓶頸時,用戶不得不去耗費大量資源去擴展?;谝陨涎芯炕A,本文提出一個基于 SQL Server2012數(shù)據(jù)庫的“DBaaS自助門戶服務平臺”體系結構,如圖1所示。平臺對外屏蔽底層數(shù)據(jù)庫,通過WEB API提供SQL Server數(shù)據(jù)庫服務的數(shù)據(jù)、元數(shù)據(jù)統(tǒng)一訪問接口,所有使用數(shù)據(jù)的方式都統(tǒng)一到一致的、受管控的界面上,便于平臺對數(shù)據(jù)庫資源的消耗進行統(tǒng)計和計量,以及對資源使用的進行調度和綜合管控。
2.1DBaaS自助門戶服務平臺體系結構
從結構上整個系統(tǒng)分為3層:應用接口層、服務應用管理層、服務實體層。(1)應用接口層。 應用接口層主要為用戶提供各種使用平臺的接入方式,用戶訪問接口主要分為3種類型:①自助Web網(wǎng)頁服務,合法租戶可以通過自助門戶提供的Web 網(wǎng)頁使用訂購的云數(shù)據(jù)庫服務;②Web API訪問接口,向租戶提供Web API服務;③數(shù)據(jù)庫的直連方式,租戶可通過數(shù)據(jù)庫連接串和數(shù)據(jù)庫實例名用sql server management studio直接操作數(shù)據(jù)庫?!糎J*3〗(2)服務應用管理層。 服務應用管理層不僅提供給用戶可視化Web界面操作,而且還需要完成數(shù)據(jù)庫服務的調度請求。當租戶購買數(shù)據(jù)庫服務時,服務應用管理層通過處理用戶信息(訂單、合同、實例等)為用戶調度分配數(shù)據(jù)庫服務。當租戶請求訪問數(shù)據(jù)庫服務時,〖HJ〗云數(shù)據(jù)庫服務調用端會根據(jù)租戶所擁有的數(shù)據(jù)庫服務信息,為用戶調用相應的數(shù)據(jù)庫實例。另外系統(tǒng)通過調用Web API的方式向服務代理發(fā)送服務調研請求,對數(shù)據(jù)庫服務實體進行管理和維護。
(3)服務實體層。服務實體層包含所有數(shù)據(jù)庫服務實體。每個數(shù)據(jù)庫服務實體都有一個代理賬戶,通過代理賬戶為用戶接入和配置數(shù)據(jù)庫服務。
2.2平臺功能設計
平臺用戶主要分為兩種角色:管理員和租戶。 (1)管理員功能如下:①角色管理??蓪ο到y(tǒng)角色進行管理和維護,用來實現(xiàn)整個系統(tǒng)所有用戶的訪問控制;②菜單管理??蓪⑾鄳牟藛问跈嘟o相應的角色。另外,當系統(tǒng)操作頁面有重大改變或有新的服務操作功能添加進系統(tǒng)時,只需要通過管理員修改菜單上定向地址或添加一個新菜單再授權給角色,就可以輕松實現(xiàn)系統(tǒng)升級和變更;③角色授權管理。每一種角色對應一套系統(tǒng)菜單,角色根據(jù)菜單導航進行操作,管理員在角色授權管理中為角色授予的菜單權限;④用戶管理。系統(tǒng)管理員通過用戶管理,可對所有平臺的用戶進行管理;⑤服務類型管理。通過服務類型管理可設置平臺提供的服務云數(shù)據(jù)庫服務類型(如:Sql Server、Oracle、My Sql等);⑥服務實例管理。通過實例管理監(jiān)督和維護后臺數(shù)據(jù)庫節(jié)點的狀態(tài)和信息;⑦訂單管理。用戶的每一筆交易都從訂單開始,通過訂單管理可查看租戶訂購的服務詳情,并對不同類型不同狀態(tài)的訂單進行區(qū)分和有效管理;⑧合同管理。合同管理是平臺中用于處理用戶合同信息合法性驗證、合同簽訂、啟用合同以及管理員合同管理的主要模塊。用戶完成訂單支付之后,系統(tǒng)會為用戶生成一個合同憑證,合同中包括租戶名、資源大小、數(shù)據(jù)庫類型、服務性能指標、合同開始截止日期等服務質量條款以及費用等合同條款信息,用戶簽訂合同付費后才可使用申請的資源。使用期滿后,合同將處于失效狀態(tài),用戶也就無法再繼續(xù)使用對應的云數(shù)據(jù)庫服務。 以上8個業(yè)務管理模塊作為系統(tǒng)管理員維護管理和運作整個“DBaaS自助門戶服務系統(tǒng)”操作中心,它們環(huán)環(huán)相扣、相互聯(lián)系,共同支撐著整個系統(tǒng)的流程運轉正常工作。 (2)租戶的主要功能如下:①注冊登錄功能。提供匿名租戶注冊、租戶登錄和身份驗證等功能;②申請購買服務功能。租戶可通過定購頁面申請云數(shù)據(jù)庫服務,并填寫要求的服務配置(包括磁盤、CPU、內(nèi)存、租期等),租戶選擇好服務后,平臺要能檢查當前是否有足夠的數(shù)據(jù)庫服務實例供用戶訂購及使用;③服務安全性設置。安全性主要是指服務訪問的安全性,平臺提供一些安全選項供租戶定制,如:訪問的IP地址范圍、端口號等,租戶如設置了IP地址范圍,用戶可以從外網(wǎng)通過直連的方式訪問其訂購的數(shù)據(jù)庫服務;④服務訪問和使用。當用戶訂購了數(shù)據(jù)庫服務并分配了相應的數(shù)據(jù)庫實例,用戶可以通過應用接口層的3種訪問接口使用該實例。
2.3平臺關鍵技術設計及實現(xiàn)
2.3.1多租戶機制設計 多租戶機制是DBaaS自助門戶平臺的核心,平臺所有租戶都共享相同的基礎架構,每個租戶都可以訪問和使用獨享的服務,設計一套安全而有效率的多租戶機制很有必要。 在以往的多租戶機制設計中,數(shù)據(jù)層面上可從完全隔離到完全共享,其設計模式遵循3種模型:完全隔離(獨立數(shù)據(jù)庫)、半共享(獨立表/Schema模式)、完全共享(獨立表/Schema模式)。以上3種模式有各自的長處和短處以及不同的適用場合。由于DBaaS的租戶大多為企業(yè)級用戶,且不同租戶對數(shù)據(jù)資源、服務請求過程具有很高的獨立性以及安全保障需求,不同租戶的數(shù)據(jù)庫請求大小、服務響應速度、安全級別要求、數(shù)據(jù)共享要求以及可用性等服務質量要求各不相同,在服務端請求負載的差異也比較大,因此本文采用隔離級別更高、安全級別更高的“獨立數(shù)據(jù)庫”實例模式實現(xiàn)多租戶機制,即為每一個租戶創(chuàng)建/分配不同的數(shù)據(jù)庫實例。 當租戶跟平臺簽訂數(shù)據(jù)庫服務質量合同后,系統(tǒng)會根據(jù)用戶訂單表記錄用戶ID、用戶合同記錄訂單ID及數(shù)據(jù)庫實例ID,通過這一串的標識實現(xiàn)隔離,每個租戶使用獨立的數(shù)據(jù)庫實例,從而實現(xiàn)數(shù)據(jù)管理的多租戶機制?!糎J〗 由于本課題是基于SQL Server2012的,對租戶的不同性能要求和性能隔離,可借助SQL Server 2008及以后版本推出的一項新技術——資源調控器,為每個數(shù)據(jù)庫實例實現(xiàn)不同的內(nèi)存、CPU、磁盤資源,從而實現(xiàn)不同的性能要求和性能隔離,數(shù)據(jù)庫服務擴展性需求也可同樣借助資源調控器完成相關設計?!糂T3〗2.3.2數(shù)據(jù)庫服務擴展性設計 不同租戶對數(shù)據(jù)庫的配置需求是有差異的,并且租戶對可能在后期有擴展需求,為了滿足這些需求,平臺需實現(xiàn)對實例資源的動態(tài)配置。實現(xiàn)方法如下: (1)在數(shù)據(jù)庫實體所在服務器搭建數(shù)據(jù)庫實例時,通過SQL Server2012的資源調配器在每個實例上創(chuàng)建一套資源池和工作組,通過對資源池進行設置來控制該實例的資源占用比(包括CPU、內(nèi)存等)。為每個實例建一個實例配置表,實例配置表的字段包含內(nèi)存、磁盤大小等信息,從而實現(xiàn)數(shù)據(jù)庫實例對資源池的映射。 (2)編寫相關WEB API接口方法,實現(xiàn)動態(tài)設置實例下的實例配置表。租戶通過填寫并提交訂單申請數(shù)據(jù)庫服務,展示層服務器通過調度模塊查找系統(tǒng)服務實例選擇空閑實例,若有空閑實例,則調用該WEB API接口并傳入實例信息和訂單信息。而當租戶需要擴展數(shù)據(jù)庫實例配置時,展示層服務器會調用相關WEB API接口傳入實例信息和擴展配置信息實現(xiàn)實例配置表設置,并更新租戶的實例信息。 (3)數(shù)據(jù)庫訪問安全性設計。許多租戶比較習慣通過“SQL Server Management Studio”直連方式訪問訂購的數(shù)據(jù)庫實例,為了保證數(shù)據(jù)庫實例的安全性,需要對其進行IP訪問限制,本平臺采用SQL Server的登錄觸發(fā)器及IP登錄授權表的解決方案,進行IP登錄限制及租戶資源控制。數(shù)據(jù)庫實例IP防火墻流程圖,如圖2所示。代理賬戶只需要在數(shù)據(jù)庫實例下的IP登錄授權表設置IP范圍,就可以實現(xiàn)用戶在外網(wǎng)環(huán)境下訪問數(shù)據(jù)庫服務進安全控制。
3結語
本文針對當前傳統(tǒng)數(shù)據(jù)庫面臨的諸多問題,分析了DBaaS的應用優(yōu)勢,通過對多租戶以及云數(shù)據(jù)庫的研究,設計了基于SQL Server2012關系型數(shù)據(jù)庫的DBaaS自助門戶服務平臺,將數(shù)據(jù)庫以服務的形式提供給租戶,實現(xiàn)了具有按需提供服務、多租戶、可擴展等特點的DBaaS服務管理架構。目前該平臺已在某云中心試運行且統(tǒng)運行穩(wěn)定可靠。該平臺的應用,將有利于促進云計算產(chǎn)業(yè)的發(fā)展,提升中小企業(yè)的競爭力。同時也為解決同類問題提供了一個通用的設計和實現(xiàn)方案。
參考文獻:[1]青欣,胥光輝,戢瑤云,等.數(shù)據(jù)庫應用研究[J].計算機技術與發(fā)展,2013(5):3741.
[2]中國經(jīng)營網(wǎng). 京東云成為國內(nèi)首家支持MariaDB服務的公有云[EB/OL].( 20130927). http://www.cb.com.cn/info/2013_0927/1015198.html.
[3]郭志斌,張云勇. 沃云平臺數(shù)據(jù)庫即服務設計及能力分析[J]. 信息通信技術,2014,8(1):2024.
[4]朱生,牟星亮. 基于云的數(shù)據(jù)庫的研究[J].電腦知識與技術,2014,(2X):899901.
[5]周生佩.云數(shù)據(jù)庫服務管理研究與實現(xiàn)[D]. 武漢:華中科技大學,2013.
[6]劉少華.嵌入式系統(tǒng)低功耗技術及應用[J].軟件導刊,2015,14(1):128129.(責任編輯:陳福時)