多租戶管理技術(shù),是云平臺使能技術(shù)之一,通過虛擬化、數(shù)據(jù)庫隔離、容器等技術(shù)實(shí)現(xiàn)不同租戶應(yīng)用和服務(wù)的隔離,保護(hù)其隱私與安全。
一
多租戶技術(shù)概念
多租戶技術(shù)(multi-tenancy technology)或稱多重租賃技術(shù),是一種軟件架構(gòu)技術(shù),它是在探討與實(shí)現(xiàn)如何于多用戶的環(huán)境下共用相同的系統(tǒng)或程序組件,并且仍可確保各用戶間數(shù)據(jù)的隔離性。
在多租戶技術(shù)中,租戶(Tenant)是指使用系統(tǒng)或計(jì)算資源的用戶,包含在系統(tǒng)中可識別為指定用戶的一切數(shù)據(jù),比如在系統(tǒng)中創(chuàng)建的賬戶與統(tǒng)計(jì)信息(Accounting Data),以及在系統(tǒng)中設(shè)置的各式數(shù)據(jù)和用戶所設(shè)置的客戶化應(yīng)用程序環(huán)境等,都屬于租戶的范圍。
多租戶的資源是按照服務(wù)請求,動態(tài)創(chuàng)建的。租戶租借計(jì)算資源,是和服務(wù)提供商簽訂的服務(wù)協(xié)定,有一定的時間限制(租戶可以任何時候,任何地點(diǎn)來申請或取消對計(jì)算資源的使用)。服務(wù)提供商必須按照協(xié)定動態(tài)地進(jìn)行部署,滿足租戶的需求。
租戶間共享資源越多,基礎(chǔ)資源的利用率越高,單位資源成本越低,租戶間隔離性越差。
二
多租戶技術(shù)
技術(shù)上,多租戶技術(shù)可以通過許多不同的方式來切割用戶的應(yīng)用程序環(huán)境或數(shù)據(jù)。
數(shù)據(jù)面(data approach):供應(yīng)商可以利用切割數(shù)據(jù)庫(database),切割存儲區(qū)(storage),切割結(jié)構(gòu)描述(schema)或是表格(table)來隔離租戶的數(shù)據(jù),必要時會需要進(jìn)行對稱或非對稱加密以保護(hù)敏感數(shù)據(jù),但不同的隔離作法有不同的實(shí)現(xiàn)復(fù)雜度與風(fēng)險(xiǎn)。
程序面(application approach):供應(yīng)商可以利用應(yīng)用程序掛載(hosting)環(huán)境,于進(jìn)程(process)上切割不同租戶的應(yīng)用程序運(yùn)行環(huán)境,在無法跨越進(jìn)程通信的情況下,保護(hù)各租戶的應(yīng)用程序運(yùn)行環(huán)境,但供應(yīng)商的運(yùn)算環(huán)境要夠強(qiáng)。
系統(tǒng)面(system approach):供應(yīng)商可以利用虛擬化技術(shù),將實(shí)體運(yùn)算單元切割成不同的虛擬機(jī),各租戶可以使用其中一至數(shù)臺的虛擬機(jī)來作為應(yīng)用程序與數(shù)據(jù)的保存環(huán)境,但對供應(yīng)商的運(yùn)算能力要更要求。
三
多租戶技術(shù)實(shí)現(xiàn)方式
多租戶技術(shù)的實(shí)現(xiàn)重點(diǎn),在于不同租戶間應(yīng)用程序環(huán)境的隔離(application context isolation)以及數(shù)據(jù)的隔離(data isolation),以維持不同租戶間應(yīng)用程序不會相互干擾,同時數(shù)據(jù)的保密性也夠強(qiáng)。
1、應(yīng)用程序部份:通過進(jìn)程或是支持多應(yīng)用程序同時運(yùn)行的裝載環(huán)境(例如Web Server,像是Apache或IIS等)來做進(jìn)程間的隔離,或是在同一個伺服程序(server)進(jìn)程內(nèi)以運(yùn)行緒的方式隔離。
2、數(shù)據(jù)部份:通過不同的機(jī)制將不同租戶的數(shù)據(jù)隔離,F(xiàn)orce是采用中介數(shù)據(jù)(metadata)的技術(shù)來切割,微軟 MSDN 的技術(shù)文件則是展示了使用結(jié)構(gòu)描述的方式隔離。
四
多租戶中的關(guān)鍵網(wǎng)絡(luò)技術(shù)
1、虛擬交換機(jī)技術(shù)
虛擬交換機(jī)技術(shù)就是解決不同虛擬機(jī)之間相互通訊的一種交換機(jī)系統(tǒng)。它不同于普通的物理交換機(jī),是一種軟件模塊,位于虛擬機(jī)和服務(wù)器的網(wǎng)卡之間,將不同的虛擬服務(wù)器虛擬網(wǎng)絡(luò)接口和服務(wù)器的物理網(wǎng)卡接口連接起來,按照不同的轉(zhuǎn)發(fā)邏輯形成的一種軟件轉(zhuǎn)發(fā)的交換機(jī)系統(tǒng)。
2、分布式租戶跨越互聯(lián)網(wǎng)技術(shù)
在云服務(wù)提供商或私有云的環(huán)境中,租戶的數(shù)目非常多,每個租戶的網(wǎng)絡(luò)又必須嚴(yán)格隔離。所以常用的4k的 VALN數(shù)目不能滿足需求。nvGRE草案提出了Tenant-ID,用于標(biāo)識租戶的網(wǎng)絡(luò),Tenant-ID有24位,最多可以支持1600萬的租戶??梢詽M足大型數(shù)據(jù)中心租戶的要求。
解決了租戶的虛擬機(jī)之間通訊需要跨越互聯(lián)網(wǎng)的問題。當(dāng)租戶的虛擬機(jī)需要遷移或者租戶的網(wǎng)絡(luò)中虛擬機(jī)之間需要相互通訊時應(yīng)用該協(xié)議,使用GRE隧道承載租戶二層網(wǎng)絡(luò),這種承載網(wǎng)絡(luò)技術(shù)又叫做Overlay網(wǎng)絡(luò)。
五
多租戶技術(shù)三種方案對比
方案1:獨(dú)立數(shù)據(jù)庫
這是第一種方案,即一個租戶一個數(shù)據(jù)庫,這種方案的用戶數(shù)據(jù)隔離級別最高,安全性最好,但成本也高。
優(yōu)點(diǎn):
為不同的租戶提供獨(dú)立的數(shù)據(jù)庫,有助于簡化數(shù)據(jù)模型的擴(kuò)展設(shè)計(jì),滿足不同租戶的獨(dú)特需求;如果出現(xiàn)故障,恢復(fù)數(shù)據(jù)比較簡單。
缺點(diǎn):
增大了數(shù)據(jù)庫的安裝數(shù)量,隨之帶來維護(hù)成本和購置成本的增加。這種方案與傳統(tǒng)的一個客戶、一套數(shù)據(jù)、一套部署類似,差別只在于軟件統(tǒng)一部署在運(yùn)營商那里。如果面對的是需要非常高數(shù)據(jù)隔離級別的租戶,可以選擇這種模式,提高租用的定價。
方案2:共享數(shù)據(jù)庫,隔離數(shù)據(jù)架構(gòu)
第二種方案,即多個或所有租戶共享 Database,但是每個租戶一個 Schema。
優(yōu)點(diǎn):
為安全性要求較高的租戶提供了一定程度的邏輯數(shù)據(jù)隔離,并不是完全隔離;每個數(shù)據(jù)庫可以支持更多的租戶數(shù)量。
缺點(diǎn):
如果出現(xiàn)故障,數(shù)據(jù)恢復(fù)比較困難,因?yàn)榛謴?fù)數(shù)據(jù)庫將牽扯到其他租戶的數(shù)據(jù); 如果需要跨租戶統(tǒng)計(jì)數(shù)據(jù),存在一定困難。
方案3:共享數(shù)據(jù)庫,共享數(shù)據(jù)架構(gòu)
這是第三種方案,即租戶共享同一個Database、同一個 Schema,但在表中通過 T-ID 區(qū)分租戶的數(shù)據(jù)。這是共享程度最高、隔離級別最低的模式。
優(yōu)點(diǎn):
三種方案比較,第三種方案的維護(hù)和購置成本最低,允許每個數(shù)據(jù)庫支持的租戶數(shù)量最多。
缺點(diǎn):
隔離級別最低,安全性最低,需要在設(shè)計(jì)開發(fā)時加大對安全的開發(fā)量; 數(shù)據(jù)備份和恢復(fù)最困難,需要逐表逐條備份和還原。
如果希望以最少的服務(wù)器為最多的租戶提供服務(wù),并且租戶接受以犧牲隔離級別換取降低成本,這種方案最適合。
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3752瀏覽量
64233 -
工業(yè)互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
28文章
4290瀏覽量
94021
原文標(biāo)題:工業(yè)互聯(lián)網(wǎng)平臺核心技術(shù)之五:多租戶技術(shù)
文章出處:【微信號:IndustryIOT,微信公眾號:工業(yè)互聯(lián)網(wǎng)前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論