當前位置:編程學習大全網 - 源碼下載 - SaaS多租戶實現的思考

SaaS多租戶實現的思考

最近在做SaaS權限設計的時候,壹直在權衡著租戶和組織的關系,以追求系統的簡潔性。我們在做PaaS平臺的時候,租戶是有子租戶的概念,而且是按照運營管理、客戶域進行組織層級定義的。1,2級是對應的運營管理域,3,4級是對應的客戶域。由於租戶間是資源隔離的,對於租戶間的資源訪問問題,處理起來相當痛苦。

多租戶SaaS系統怎麽設計,下面是我總結的幾點原則,供大家參考:

1、租戶間是資源隔離的。相互無法訪問對方的數據。

我們目前做到邏輯隔離,通過表裏面增加租戶ID的方式來實現多租戶的支持。當然我們自然想做到物理隔離,相應的成本也會多很多。這塊大家必須有租戶間資源是隔離的概念。為了能更好的理解整個SaaS系統的設計初衷,我們可以認為租戶間資源是物理隔離的。

2、組織也是壹種資源,各租戶都有自己的組織。

每個租戶是有各自的資源信息的,這些資源是租戶私有的。比如:角色信息、用戶信息、組織信息等。

3、租戶可以通過組織進行資源劃分。

租戶和組織這塊有很多相近的地方,這塊需要深刻的理解下。我個人是這麽理解的:租戶是對全部資源物理層面的隔離,而組織是對租戶私有資源邏輯上的隔離。

4、租戶不支持多層級,租戶有不同的類型。

為了降低系統的復雜性,我們建議租戶不支持多層級,只能建壹級,租戶是有類型的,通過類型區分不同的業務場景,租戶間是平等的。

比如:XXX運營方也是獨立的租戶,與其它用戶無本質區別。

5、通過組織的層級結構,來實現用戶的數據權限。

這塊也是我們做的最大改動:輕租戶,重組織。發揮組織的天然業務隔離的特性,通過組織樹來實現資源數據權限。

6、運營側只管理到租戶級別,不應該涉及到租戶的私有資源。

組織是租戶的私有資源,運營管理側自然不應該去管理他,也不方便管理。

來張圖,方便大家的理解:

為了方便,可以默認將租戶的信息映射到組織上,做為組織的L0級。也可不映射,查詢的時候自動加上。租戶新建的時候,租戶的默認管理員是掛在本賬戶下的,此時還沒有組織的信息。

  • 上一篇:石家莊防疫辦電話24小時
  • 下一篇:求韓國綜藝兩天壹夜從開播至今的視頻
  • copyright 2024編程學習大全網