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

一凰兑、什么是多租戶

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

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

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

? ? ? ? 多租戶系統(tǒng)更多的是對(duì)企業(yè)和組織的業(yè)務(wù)運(yùn)轉(zhuǎn)提供服務(wù),對(duì)于企業(yè)或組織而言悬垃,能夠賦予他們?cè)谄脚_(tái)上固有的身份特征游昼,限制了其對(duì)于系統(tǒng)的操作行為和可控制系統(tǒng)權(quán)限。而對(duì)于實(shí)際操作系統(tǒng)用戶來說尝蠕,可以給不同身份的用戶賦予不同業(yè)務(wù)動(dòng)作烘豌,來保障整體業(yè)務(wù)的正常運(yùn)轉(zhuǎn)

二、多租戶的基本框架

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

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

多租戶系統(tǒng)框

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

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

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

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

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

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

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

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

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

基本功能清單

1.應(yīng)用管理

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

2.租戶管理

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

3.權(quán)限管理

一個(gè)賬號(hào)所擁有權(quán)限與角色息息相關(guān)崖技,當(dāng)角色權(quán)限設(shè)置完成后逻住,再賦予到賬號(hào)上,這樣這個(gè)賬號(hào)就用了查看系統(tǒng)里指定功能的權(quán)利迎献,如果需要修改某個(gè)賬號(hào)的權(quán)限瞎访,實(shí)際上修改的是賬號(hào)所關(guān)聯(lián)的角色,只需要對(duì)角色權(quán)限進(jìn)行修改即可吁恍。對(duì)于賬號(hào)而言扒秸,角色是賬號(hào)的一個(gè)屬性播演,沒有角色的賬號(hào)只有系統(tǒng)的登錄訪問權(quán)限,沒有數(shù)據(jù)查看和操作權(quán)伴奥。

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

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

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

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

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


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

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

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

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

????? ??1.租戶賬號(hào)權(quán)限西雀、身份認(rèn)證等基礎(chǔ)建設(shè)萨驶。

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

????? ??3.學(xué)生課時(shí)、課程信息再悼、個(gè)人信息的增刪改查核畴。

????? ??4.擴(kuò)展運(yùn)營場景,提供統(tǒng)計(jì)報(bào)表冲九。消息中心等服務(wù)谤草。

????????在設(shè)計(jì)過程中,因?yàn)椴煌緲I(yè)務(wù)模式不同莺奸,設(shè)計(jì)方案也會(huì)不一樣丑孩。從上往下看,各企業(yè)或組織業(yè)務(wù)屬性要基本一致灭贷,需要統(tǒng)一的產(chǎn)品架構(gòu)來滿足基本的業(yè)務(wù)需求嚎杨。從下網(wǎng)上看,不同機(jī)構(gòu)之間會(huì)有細(xì)微的需求差異氧腰,一些獨(dú)特的需求需要單獨(dú)配置枫浙,同時(shí)要根據(jù)獨(dú)特的需求來反推后續(xù)有哪些擴(kuò)展的共性需求。

四古拴、后記

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

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末魂挂,一起剝皮案震驚了整個(gè)濱河市甫题,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涂召,老刑警劉巖坠非,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異果正,居然都是意外死亡炎码,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門舱卡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辅肾,“玉大人,你說我怎么就攤上這事轮锥〗玫觯” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵舍杜,是天一觀的道長新娜。 經(jīng)常有香客問我,道長既绩,這世上最難降的妖魔是什么概龄? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮饲握,結(jié)果婚禮上私杜,老公的妹妹穿的比我還像新娘蚕键。我一直安慰自己,他們只是感情好衰粹,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布锣光。 她就那樣靜靜地躺著,像睡著了一般铝耻。 火紅的嫁衣襯著肌膚如雪誊爹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天瓢捉,我揣著相機(jī)與錄音频丘,去河邊找鬼。 笑死泡态,一個(gè)胖子當(dāng)著我的面吹牛搂漠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播兽赁,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼状答,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了刀崖?” 一聲冷哼從身側(cè)響起惊科,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎亮钦,沒想到半個(gè)月后馆截,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜂莉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年蜡娶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片映穗。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡窖张,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚁滋,到底是詐尸還是另有隱情宿接,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布辕录,位于F島的核電站睦霎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏走诞。R本人自食惡果不足惜副女,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚣旱。 院中可真熱鬧碑幅,春花似錦戴陡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拷窜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涧黄,已是汗流浹背篮昧。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留笋妥,地道東北人懊昨。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像春宣,于是被迫代替她去往敵國和親酵颁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容