SaaS架構(二) 多租戶數據隔離方案

 多租戶在數據存儲上存在三種主要的方案,分別是:

1. 獨立數據庫

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

優點:

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

缺點:

增多了數據庫的安裝數量,隨之帶來維護成本和購置成本的增加。
這種方案與傳統的一個客戶、一套數據、一套部署類似,差別只在於軟件統一部署在運營商那裏。如果面對的是銀行、醫院等需要非常高數據隔離級別的租戶,可以選擇這種模式,提高租用的定價。如果定價較低,產品走低價路線,這種方案一般對運營商來說是無法承受的。

2. 共享數據庫,隔離數據架構

即多個或所有租戶共享Database,但是每個租戶一個Schema。Schema好比文件目錄一樣,每個租戶一個目錄。

優點:

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

缺點:

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

3. 共享數據庫,共享數據架構

即租戶共享同一個Database、同一個Schema,但在表中增加TenantID多租戶的數據字段。這是共享程度最高、隔離級別最低的模式,也就是通常所說的邏輯隔離

優點:

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

缺點:

隔離級別最低,安全性最低,需要在設計開發時加大對安全的開發量;
數據備份和恢復最困難,需要逐表逐條備份和還原。
如果希望以最少的服務器爲最多的租戶提供服務,並且租戶接受犧牲隔離級別換取降低成本,這種方案最適合。

方案選型的參考因素 - 衡量三種模式主要考慮的因素是隔離還是共享

1.成本角度因素
隔離性越好,設計和實現的難度和成本越高,初始成本越高。共享性越好,同一運營成本
下支持的用戶越多,運營成本越低。

2.安全因素
要考慮業務和客戶的安全方面的要求。安全性要求越高,越要傾向於隔離。

3.租戶數量
系統要支持多少租戶?上百?上千還是上萬?可能的租戶越多,越傾向於共享。
平均每個租戶要存儲數據需要的空間大小。存貯的數據越多,越傾向於隔離。
每個租戶的同時訪問系統的最終用戶數量。需要支持的越多,越傾向於隔離。
是否想針對每一租戶提供附加的服務,例如數據的備份和恢復等。這方面的需求越多, 越傾向於隔離

4.信息監管因素
要考慮政府,機關,企業,公司的安全和信息監管相關的一些政策和規定。

5.技術成本
共享性越高,對技術的要求越高。

相關連接:

SaaS架構設計的參考指南

Saas 系統架構經驗總結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章