1. 程式人生 > >SaaS “可配置”和“多租戶”架構的幾種技術實現方式

SaaS “可配置”和“多租戶”架構的幾種技術實現方式

1、資料儲存方式的選擇

多租戶(Multi-Tenant ),即多個租戶共用一個例項,租戶的資料既有隔離又有共享,說到底是要解決資料儲存的問題。

常用的資料儲存方式有三種。

方案一:獨立資料庫

 

 

一個Tenant,一個Database“的資料儲存方式。隔離級別最高、最安全,但成本也高。

優點:

a.為不同租戶提供獨立資料庫,有助於簡化資料模型的擴充套件設計,滿足個性化需求;

b.資料恢復簡單;

缺點:增大了資料庫的安裝數量,購置和維護成本高;

 

方案二:共享資料庫,隔離資料架構

 

   

多個租戶或所有租戶共享Database,但一個Tenant,一個Schema的方式。

優點:

a.一定程度的邏輯資料隔離(並非完全),可滿足較高程度的安全性保障;

b.每個資料庫,可支援更多租戶數量;

缺點:

a.恢復資料較困難,因為將牽扯到其他租戶資料;

b.跨租戶統計資料,實現難度大;

 

方案三:共享資料庫,共享資料架構

 

 
 

一種租戶共享同一個Database、同一個Schema,而另行通過TenantID區分租戶資料的方式。

優點:

a.每個資料庫可支援租戶數量多,維護和購置成本低;

缺點:

a. 隔離級別低,安全性低,開發時需做大量安全開發工作;

b. 逐表逐條備份和還原資料,資料備份和恢復困難。

 

三種資料儲存方案的比較

 

   

但究竟選擇何種方式,則取決於產品定價策略和租戶對資料安全的接受程度。

2. 系統安全性設計

系統級:

A. 使用HTTPS傳輸協議,以SSL(Security Socket Layer)交換資料,加強通訊安全

B. 使用數字簽名,防止傳輸過程被篡改;

C. 使用DES資料加密演算法,設計使用者身份識別;

D. 定時備份業務資料;

程式級:

A. 許可權配置(功能許可權、資料許可權等)

B. 客戶端輸入校驗,防止JS和XXS攻擊、SQL注入等;

C. 輔助安全設計,如密碼控制元件、圖片驗證、手機驗證等。

3. 租戶管理

註冊、訂購、計費等管理。

註冊

 

   

Tenant:租戶

User: 租戶下 的使用者,同一租戶下可以有多個使用者;

Tenant的status屬性,用於定義租戶狀態(待稽核、已稽核、啟用、禁用、取消),賦予租戶能否登陸的許可權。

訂購

 

   

PricePolicy:價格策略,支援按時間(年、月、日)、次數計價,以unit表示;

Subsciber: 訂購記錄,記錄租戶選用了何種價格策略,以及服務期限或服務次數。

計費

 

   

Journal:流水賬,記錄租戶使用服務的日誌,用於生成賬單和報表;

4、資料隔離

 

   

為每個需要隔離的業務表加上Tenant_ID欄位,以實現租戶資料間的隔離,這是最通常的做法。


本文轉自連結:https://www.jianshu.com/p/c11b19fc8110