多租戶管理系統(tǒng)設(shè)計方案

一、什么是多租戶

????????引申自百度百科:多租戶簡單來說是指一個單獨的實例可以為多個組織服務(wù)。多租戶技術(shù)為共用的數(shù)據(jù)中心內(nèi)如何以單一系統(tǒng)架構(gòu)與服務(wù)提供多數(shù)客戶端相同甚至可定制化的服務(wù),并且仍然可以保障客戶的數(shù)據(jù)隔離。

????????個人對于多租戶的理解:通過一套統(tǒng)一的程序界面,來支持多個不同組織的業(yè)務(wù)需求(具有共性業(yè)務(wù)),通知保證不同組織之間的數(shù)據(jù)隔離。這種系統(tǒng)又稱為SaaS平臺,

????????舉例來說,小A,小B,小C三人在合租一套三室一廳的房子,其中三人的臥室是屬于每個人的獨立空間,必須用各自門上的鑰匙才能打開,保證自己空間的私密性。同時三人又同時擁有如客廳、廚房、衛(wèi)生間等公共區(qū)域,屬于三人共同享有的資源。這個例子中的ABC三人,就屬于使用多租戶系統(tǒng)的不同機構(gòu)或企業(yè),他們所使用的軟件服務(wù)都運行在統(tǒng)一系統(tǒng)平臺(同一套房子內(nèi)),多家機構(gòu)將會共用一套程序界面的系統(tǒng),使用系統(tǒng)提供的基本組件和工具(公用客廳廚房等公共區(qū)域),而且保證了不同機構(gòu)用戶數(shù)據(jù)的私密性(擁有各自的臥室)。但從字面意思上理解,租戶意思是只是租用,僅有系統(tǒng)的使用權(quán),可向房東申請空調(diào)、冰箱等的工具,但不能更改系統(tǒng)整體架構(gòu)。

? ? ? ? 多租戶系統(tǒng)更多的是對企業(yè)和組織的業(yè)務(wù)運轉(zhuǎn)提供服務(wù),對于企業(yè)或組織而言,能夠賦予他們在平臺上固有的身份特征,限制了其對于系統(tǒng)的操作行為和可控制系統(tǒng)權(quán)限。而對于實際操作系統(tǒng)用戶來說,可以給不同身份的用戶賦予不同業(yè)務(wù)動作,來保障整體業(yè)務(wù)的正常運轉(zhuǎn)

二、多租戶的基本框架

多租戶系統(tǒng)權(quán)限管理

???????一般來說多租戶系統(tǒng)的機構(gòu)比較簡單,在創(chuàng)建租戶后,通過賦予用戶角色權(quán)限,來達到用戶控制租戶后臺權(quán)限功能的目的,這是大多數(shù)多租戶系統(tǒng)的設(shè)計解決方案,但在產(chǎn)品設(shè)計階前,就需要先梳理清楚多租戶系統(tǒng)的業(yè)務(wù)架構(gòu),就好像是蓋房子一樣,先搭好框架,立好支柱,完善樓層,然后再確定房門、窗的位置等。在一般的企業(yè)或機構(gòu)后臺中權(quán)限管理的大體模式如下:

多租戶系統(tǒng)框

多租系統(tǒng)的權(quán)限管理邏輯如下:

? ??????1.將平臺資源打包成為獨立的功能權(quán)限,資源包括平臺功能菜單、用戶使用產(chǎn)生的數(shù)據(jù),以及列表字段等

? ??????2.設(shè)定角色權(quán)限以訪問系統(tǒng)資源,完成角色權(quán)限與平臺內(nèi)功能的關(guān)聯(lián)

? ??????3.角色可以關(guān)聯(lián)用戶或用戶組,也就是將系統(tǒng)資源授權(quán)給用戶或用戶組處理,完成訪問系統(tǒng)資源的操作

????????在實際操作上,每個租戶下的用戶都需要單獨生成訪問賬號,用戶通過賬號才能登錄租戶系統(tǒng)使用軟件服務(wù)。租戶和用戶是一對多的關(guān)系,在實際業(yè)務(wù)場景種,一個租戶系統(tǒng)內(nèi)要根據(jù)業(yè)務(wù)模式區(qū)分為前端銷售、后端運營、服務(wù)人員等多種用戶角色,這些用戶都是在同一租戶下共享同一租戶數(shù)據(jù),但又因為業(yè)務(wù)模式不同,所享受的功能權(quán)限是不一樣的,這樣既能夠保證業(yè)務(wù)流轉(zhuǎn)過程中前后端數(shù)據(jù)統(tǒng)一,又能讓每個用戶業(yè)務(wù)單獨運營,更能滿足多樣化的業(yè)務(wù)場景。

????????另外,多租戶系統(tǒng)的設(shè)計邏輯并不是一成不變的,有時也需要根據(jù)當前業(yè)務(wù)不同對多租戶管理系統(tǒng)進行改造,比如A機構(gòu)作為一家教育公司,自身不負責ToC業(yè)務(wù),而是與一些其他B端教育培訓公司合作,將平臺商品打包售出,同時將銷售、運營等動作交付給ToB機構(gòu),而自身只負責整體業(yè)務(wù)支撐和運營管理,就需要引入更多的概念已完成業(yè)務(wù)邏輯:

對多租戶系統(tǒng)優(yōu)化

多租戶系統(tǒng)的搭建

針對前期合作機構(gòu)的共性需求,和前期內(nèi)部業(yè)務(wù)這一年的摸索,梳理出平臺多租戶系統(tǒng)的基本功能清單:

基本功能清單

1.應(yīng)用管理

應(yīng)用創(chuàng)建是多租戶平臺最基礎(chǔ)信息,一般應(yīng)用接入都需要獨立的品牌信息,以注冊公眾號、小程序、軟件等信息。同時應(yīng)用是企業(yè)與企業(yè)之間數(shù)據(jù)隔離的關(guān)鍵,根據(jù)企業(yè)的要求,賦予功能或應(yīng)用定制的功能,功能可基于應(yīng)用層面進行配置,具體所需功能需要上午提前線下溝通,再由線上手動配置完成。

2.租戶管理

租戶管理可支持平臺應(yīng)用下細分多個租戶登錄系統(tǒng),同時租戶與租戶之間數(shù)據(jù)保持隔離,在應(yīng)用所有的權(quán)限下,可為不同租戶配置不同權(quán)限。而應(yīng)用層面的管理員可獲取所有租戶數(shù)據(jù)信息,對租戶賬戶、賬戶權(quán)限有直接管理權(quán)。

3.權(quán)限管理

一個賬號所擁有權(quán)限與角色息息相關(guān),當角色權(quán)限設(shè)置完成后,再賦予到賬號上,這樣這個賬號就用了查看系統(tǒng)里指定功能的權(quán)利,如果需要修改某個賬號的權(quán)限,實際上修改的是賬號所關(guān)聯(lián)的角色,只需要對角色權(quán)限進行修改即可。對于賬號而言,角色是賬號的一個屬性,沒有角色的賬號只有系統(tǒng)的登錄訪問權(quán)限,沒有數(shù)據(jù)查看和操作權(quán)。

4.數(shù)據(jù)安全

數(shù)據(jù)安全隔離其實對于某一個賬號來說是沒有感知的,但實際上每個使用環(huán)節(jié)都由數(shù)據(jù)隔離的體現(xiàn)。比如作為應(yīng)用可以給租戶配置哪些權(quán)限,單獨一個租戶可以看到哪些用戶信息等。而數(shù)據(jù)隔離的形式也分為三種:

? ??????1.獨立數(shù)據(jù)庫;? ??2.共享數(shù)據(jù)庫通過數(shù)據(jù)表隔離;? ??3.共享數(shù)據(jù)庫和表字段

具體的這三種數(shù)據(jù)隔離形式如何區(qū)分可以參考:業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫設(shè)計常見的隔離和共享模式??進行了解。

基于我們的業(yè)務(wù)場景選擇的是第三種數(shù)據(jù)隔離形式,實現(xiàn)成本更低,更易于后續(xù)維護。


三、具體的設(shè)計方案闡述

多租戶模型主要解決不同角色身份之間的相互流轉(zhuǎn),在實際業(yè)務(wù)運轉(zhuǎn)中就涉及到幾個重要的環(huán)節(jié):庫存管理、銷售管理、運營管理

圍繞上面的業(yè)務(wù)需求,我首先介紹一下我們公司的多租戶平臺產(chǎn)品架構(gòu):

在這個業(yè)務(wù)模式中,最優(yōu)先保證的是平臺的基礎(chǔ)功能建設(shè),來滿足以下幾個層面的需求:

????? ??1.租戶賬號權(quán)限、身份認證等基礎(chǔ)建設(shè)。

????? ??2.各租戶商品的采購及商品流轉(zhuǎn),搭建完整的銷售鏈路,并具備基本的服務(wù)功能。

????? ??3.學生課時、課程信息、個人信息的增刪改查。

????? ??4.擴展運營場景,提供統(tǒng)計報表。消息中心等服務(wù)。

????????在設(shè)計過程中,因為不同公司業(yè)務(wù)模式不同,設(shè)計方案也會不一樣。從上往下看,各企業(yè)或組織業(yè)務(wù)屬性要基本一致,需要統(tǒng)一的產(chǎn)品架構(gòu)來滿足基本的業(yè)務(wù)需求。從下網(wǎng)上看,不同機構(gòu)之間會有細微的需求差異,一些獨特的需求需要單獨配置,同時要根據(jù)獨特的需求來反推后續(xù)有哪些擴展的共性需求。

四、后記

多租戶系統(tǒng)搭建基本框架就已經(jīng)建立起來的,在前期的構(gòu)架建立中,功能一般只是給到業(yè)務(wù)支撐來滿足基本業(yè)務(wù)運轉(zhuǎn)的需要,會耗費比較多時間且短期內(nèi)不容易見效的工作。然而真正的困難點在于接下來的運營過程中怎么樣去支持不同應(yīng)用之間的不同業(yè)務(wù)訴求,怎么樣讓產(chǎn)品、技術(shù)架構(gòu)怎么樣做的更靈活,同時產(chǎn)品預(yù)期不過于超前:

? ??????1.短視容易讓產(chǎn)品功能越來越臃腫,后期拓展的開發(fā)成本過高。

? ??????2.過于超前也容易帶來不必要的開發(fā)成本,拉長開發(fā)周期且不容易見效。

以上就是我基于在所經(jīng)歷業(yè)務(wù)所整理的多租戶權(quán)限管理設(shè)計方案,文中有不正確的地方歡迎大家指正,歡迎大家隨時與我探討。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容