工業互聯網平臺核心技術之五:多租戶技術

多租戶管理技術,是雲平臺使能技術之一,通過虛擬化、數據庫隔離、容器等技術實現不同租戶應用和服務的隔離,保護其隱私與安全。

一 多租戶技術概念

多租戶技術(multi-tenancy technology)或稱多重租賃技術,是一種軟件架構技術,它是在探討與實現如何於多用戶的環境下共用相同的系統或程序組件,並且仍可確保各用戶間數據的隔離性。

在多租戶技術中,租戶(Tenant)是指使用系統或計算資源的用戶,包含在系統中可識別為指定用戶的一切數據,比如在系統中創建的賬戶與統計信息(Accounting Data),以及在系統中設置的各式數據和用戶所設置的客戶化應用程序環境等,都屬於租戶的範圍。

多租戶的資源是按照服務請求,動態創建的。租戶租借計算資源,是和服務提供商簽訂的服務協定,有一定的時間限制(租戶可以任何時候,任何地點來申請或取消對計算資源的使用)。服務提供商必須按照協定動態地進行部署,滿足租戶的需求。

租戶間共享資源越多,基礎資源的利用率越高,單位資源成本越低,租戶間隔離性越差。

二 多租戶技術

技術上,多租戶技術可以通過許多不同的方式來切割用戶的應用程序環境或數據。

數據面(data approach):供應商可以利用切割數據庫(database),切割存儲區(storage),切割結構描述(schema)或是表格(table)來隔離租戶的數據,必要時會需要進行對稱或非對稱加密以保護敏感數據,但不同的隔離作法有不同的實現複雜度與風險。

程序面(application approach):供應商可以利用應用程序掛載(hosting)環境,於進程(process)上切割不同租戶的應用程序運行環境,在無法跨越進程通信的情況下,保護各租戶的應用程序運行環境,但供應商的運算環境要夠強。

系統面(system approach):供應商可以利用虛擬化技術,將實體運算單元切割成不同的虛擬機,各租戶可以使用其中一至數臺的虛擬機來作為應用程序與數據的保存環境,但對供應商的運算能力要更要求。

三 多租戶技術實現方式

多租戶技術的實現重點,在於不同租戶間應用程序環境的隔離(application context isolation)以及數據的隔離(data isolation),以維持不同租戶間應用程序不會相互干擾,同時數據的保密性也夠強。

1、應用程序部份:通過進程或是支持多應用程序同時運行的裝載環境(例如Web Server,像是Apache或IIS等)來做進程間的隔離,或是在同一個伺服程序(server)進程內以運行緒的方式隔離。

2、數據部份:通過不同的機制將不同租戶的數據隔離,Force是採用中介數據(metadata)的技術來切割,微軟 MSDN 的技術文件則是展示了使用結構描述的方式隔離。

四 多租戶中的關鍵網絡技術

1、虛擬交換機技術

虛擬交換機技術就是解決不同虛擬機之間相互通訊的一種交換機系統。它不同於普通的物理交換機,是一種軟件模塊,位於虛擬機和服務器的網卡之間,將不同的虛擬服務器虛擬網絡接口和服務器的物理網卡接口連接起來,按照不同的轉發邏輯形成的一種軟件轉發的交換機系統。

2、分佈式租戶跨越互聯網技術

在雲服務提供商或私有云的環境中,租戶的數目非常多,每個租戶的網絡又必須嚴格隔離。所以常用的4k的 VALN數目不能滿足需求。nvGRE草案提出了Tenant-ID,用於標識租戶的網絡,Tenant-ID有24位,最多可以支持1600萬的租戶。可以滿足大型數據中心租戶的要求。

解決了租戶的虛擬機之間通訊需要跨越互聯網的問題。當租戶的虛擬機需要遷移或者租戶的網絡中虛擬機之間需要相互通訊時應用該協議,使用GRE隧道承載租戶二層網絡,這種承載網絡技術又叫做Overlay網絡。

五 多租戶技術三種方案對比

方案1:獨立數據庫

這是第一種方案,即一個租戶一個數據庫,這種方案的用戶數據隔離級別最高,安全性最好,但成本也高。

優點:

為不同的租戶提供獨立的數據庫,有助於簡化數據模型的擴展設計,滿足不同租戶的獨特需求;如果出現故障,恢復數據比較簡單。

缺點:

增大了數據庫的安裝數量,隨之帶來維護成本和購置成本的增加。這種方案與傳統的一個客戶、一套數據、一套部署類似,差別只在於軟件統一部署在運營商那裡。如果面對的是需要非常高數據隔離級別的租戶,可以選擇這種模式,提高租用的定價。

方案2:共享數據庫,隔離數據架構

第二種方案,即多個或所有租戶共享 Database,但是每個租戶一個 Schema。

優點:

為安全性要求較高的租戶提供了一定程度的邏輯數據隔離,並不是完全隔離;每個數據庫可以支持更多的租戶數量。

缺點:

如果出現故障,數據恢復比較困難,因為恢復數據庫將牽扯到其他租戶的數據; 如果需要跨租戶統計數據,存在一定困難。

方案3:共享數據庫,共享數據架構

這是第三種方案,即租戶共享同一個Database、同一個 Schema,但在表中通過 T-ID 區分租戶的數據。這是共享程度最高、隔離級別最低的模式。

優點:

三種方案比較,第三種方案的維護和購置成本最低,允許每個數據庫支持的租戶數量最多。

缺點:

隔離級別最低,安全性最低,需要在設計開發時加大對安全的開發量; 數據備份和恢復最困難,需要逐表逐條備份和還原。

如果希望以最少的服務器為最多的租戶提供服務,並且租戶接受以犧牲隔離級別換取降低成本,這種方案最適合。

工業互聯網平臺七大核心技術解讀連載

https://www.toutiao.com/i6691908718793064974/