大家好,我是湯師爺~
讓我們深入探討一下多租戶系統的概念模型。概念模型是多租戶系統的"骨架",幫助我們理解系統各部分的組織和運作方式。
多租戶的核心概念模型
- 租戶:通常指一個企業客戶,不同租戶之間的資料和行為是相互隔離的。
- 使用者:某個租戶內的具體使用者,使用賬號、密碼等資訊登入到 SaaS 系統,使用軟體服務。
- 組織:如果租戶是企業客戶,通常會有自己的組織架構。
- 員工:指組織內部的具體成員。
- 解決方案:為解決客戶的特定業務問題,SaaS 服務商將產品與服務組合打包,提供整體解決方案。
- 產品:SaaS 服務商售賣給客戶的軟體應用,能夠幫助客戶實現端到端流程的閉環解決方案。
- 資源域:用於執行一個或多個軟體應用的一套雲資源環境。
- 雲資源:SaaS 產品一般部署在各類雲平臺上(如阿里雲、騰訊雲、華為雲等),這些平臺提供的計算、儲存、網路、容器等資源,被抽象為雲資源。
SaaS平臺可以建立和管理多個平臺使用者、租戶和資源域,這樣的模型結構,可以讓多個企業客戶和使用者能在同一平臺上執行,而彼此之間的資料和資源獨立。
一個平臺使用者可以關聯到多個租戶。例如,張三作為一個平臺使用者,可以同時屬於租戶A和租戶B。這種設計讓平臺使用者能夠靈活切換所屬租戶,方便在不同企業賬號間工作。
在單個租戶中,也可以擁有多個使用者,讓企業內多名員工共享租戶的資源和服務。
單個租戶可以訂購多個解決方案,一個解決方案往往包含多個產品,以滿足企業客戶的多樣需求。這些產品可以執行在特定的資源域,保證不同產品在同一租戶中的高效管理和資源隔離。
租戶內的組織架構支援上下級關係,在單個組織單元內,可以配置多個員工,並將員工與平臺使用者繫結,便於員工透過自己的賬戶訪問相關服務。
概念模型的應用場景示例
1、租戶與內部模型關係
在SaaS產品中,租戶是最頂層的概念,可以理解為一個大房子的租賃人,而房子內部的組織、使用者、產品、雲資源等模型就像是這個房子裡的各種傢俱和設施。
換句話說,租戶是SaaS產品為每個客戶或企業專門劃分出的獨立空間,而組織、使用者、產品、雲資源等模型則是租戶內部的細分結構,為不同的使用需求和許可權分配提供支援。
- 租戶:相當於整套房子的所有權,即租戶擁有這套房子在SaaS平臺中的使用權,是所有內部資源的頂層管理者。
- 組織:類似房間的佈局,每個房間有特定的功能(比如子公司、部門),組織架構幫助企業在平臺內對映現實中的管理層級關係。
- 使用者:就像在房子裡活動的人員,使用者被賦予不同的角色和許可權,決定了誰可以進入哪些房間,誰可以使用哪些傢俱。
- 產品:如同家裡各種各樣的傢俱、電器、設施,滿足不同的需求。不同租戶可以選擇不同的產品組合,隨需增加或減少,來滿足他們的業務需求。
- 雲資源:類似於水電煤等基礎設施,支援房子裡的各項功能正常執行,確保產品穩定、流暢地提供服務。
透過這種類比可以看出,SaaS產品將租戶作為最頂層的概念,為企業提供了一套獨立空間,租戶內部的各項資源則在這個框架下被靈活管理和使用,讓企業客戶可以獲得定製化的服務和資源隔離的安全保障。
2、租戶身份識別
在多租戶SaaS系統中,無論採用哪種隔離模式,準確識別租戶身份並獲取相應資源配置是非常關鍵的。
當使用者登入SaaS系統後,系統會生成並返回租戶上下文資訊。這個上下文資訊包括使用者關聯的租戶和對應的隔離模式(如共享或獨立資源)。
租戶上下文資訊會附加在每次系統互動中,貫穿整個系統呼叫鏈。從使用者請求到系統內部處理的每一步,都保留了租戶上下文。這樣,上游的請求處理模組就可以知道如何路由和訪問下游資源。
租戶上下文資訊讓系統能夠在請求傳遞過程中精準識別租戶身份和配置。系統會根據上下文動態選擇資料庫、應用例項或網路資源,實現資料和資源隔離,確保不同租戶的訪問互不干擾。
3、租戶計費計量管理
租戶的計費計量管理,是SaaS平臺不可或缺的一部分。不同的隔離模式下,計費方式有所不同。
豎井隔離模式下,計費相對簡單。因為每個租戶使用的資源(計算、儲存、網路等)都是單獨分配的,就像每個租戶有自己的一塊“獨立地盤”。
因此,我們只需統計每個租戶佔用的資源量,就能計算出費用。這種模式邏輯清晰,一目瞭然。
共享模式下,計費則比較複雜。因為多個租戶共享同一資源池,理想情況是,確保每個租戶只為自己實際用到的部分買單。
通常,我們會綜合考量幾個指標,比如請求的數量、儲存容量、建立的資料物件數量等。透過這些資料的組合,我們可以相對準確算出每個租戶的費用。
本文已收錄於,我的技術網站:tangshiye.cn 裡面有,演算法Leetcode詳解,面試八股文、BAT面試真題、簡歷模版、架構設計,等經驗分享。