2B產(chǎn)品的架構(gòu)設(shè)計(jì)復(fù)盤:多租戶模型設(shè)計(jì)

2B產(chǎn)品,面臨著更為復(fù)雜的跨越業(yè)務(wù)、跨越組織的復(fù)雜性和多變性。

<讓產(chǎn)品從0到1>??第 11 輯

文??|? ?杜松,公眾號(hào)??|? ?產(chǎn)品微言

上一篇中,我主要分享了?產(chǎn)品架構(gòu)設(shè)計(jì)的基本思路,本文是對(duì)這一設(shè)計(jì)思路的具體實(shí)現(xiàn)。

(注:本文涉及到用戶角色將在后續(xù)文章中詳細(xì)闡述,在本文中,我們需要理解的是不同角色用戶在平臺(tái)上的特征、行為,有明確的邊界范圍和職責(zé)權(quán)限。用用戶而言,我們只需要為每個(gè)用戶賦予不同的角色即可完成各自不同的業(yè)務(wù)動(dòng)作,驅(qū)動(dòng)整個(gè)平臺(tái)的業(yè)務(wù)正常的流傳)。

但有一種情況是,假設(shè)整個(gè)平臺(tái)內(nèi)的用戶和角色不發(fā)生改變,他們各自的工作技能(我們把某個(gè)角色所能完成的業(yè)務(wù)定義為技能,以便后續(xù)的區(qū)分)發(fā)生了改變將會(huì)出現(xiàn)怎樣的情況?

也就是,在我復(fù)盤的這個(gè)O2O平臺(tái)上,張三(工程師的角色)此前只能負(fù)責(zé)電視類的送、裝工作,現(xiàn)在張三具備了維修空調(diào)的能力,李四原本是負(fù)責(zé)A品牌的客服工作,現(xiàn)在隨著業(yè)務(wù)的發(fā)展,她也具備B品牌的客服工作。

這就意味了同樣的角色,服務(wù)了不同的業(yè)務(wù),是一種跨業(yè)務(wù)的組織型態(tài),也就意味著不同的業(yè)務(wù)之間由于業(yè)務(wù)的特性必然帶來管理上的差異化,比如流程的差異、單據(jù)的差異。

假設(shè)XYZ公司的業(yè)務(wù)模型如下所示,該公司對(duì)接了A、B兩家不同公司的業(yè)務(wù)。

A、B兩個(gè)公司各自有自己獨(dú)立的管理流程和模式,他們要求各自的業(yè)務(wù)單據(jù)都不相同(當(dāng)然前提是他們之間必然存在共性),做為產(chǎn)品經(jīng)理,你如何規(guī)劃一個(gè)支持兩套完全不同公司的業(yè)務(wù)平臺(tái)?

傳統(tǒng)的做法,也是最直觀的做法,自然就是構(gòu)建兩套不同的業(yè)務(wù)系統(tǒng)來滿足各自的業(yè)務(wù)需求。在這種情況下,如何實(shí)現(xiàn)日益龐大的業(yè)務(wù)需求,如何快速響應(yīng)跨業(yè)務(wù)的擴(kuò)展,過去的方式是對(duì)新接入的業(yè)務(wù)重新開發(fā)一套系統(tǒng),導(dǎo)致整個(gè)業(yè)務(wù)的效率反而隨著系統(tǒng)建設(shè)而降低。

最顯而易見的問題,這種系統(tǒng)應(yīng)該如何為終端用戶提供統(tǒng)一界面,如何為XYZ公司提供統(tǒng)一的管理平臺(tái)和數(shù)據(jù)分析界面。

2B和2C產(chǎn)品的最大差異性,實(shí)質(zhì)上是這種角色跨域組織和跨越業(yè)務(wù)所帶來的復(fù)雜性和不確定性。換言之,2B的產(chǎn)品所需解決的問題遠(yuǎn)超“單一最終用戶的局限性”。

解決這個(gè)問題的思路,就是多租戶架構(gòu),并實(shí)現(xiàn)業(yè)務(wù)層的解耦。

01、租戶定義

多租戶,解決的就是讓多個(gè)客戶“共享”統(tǒng)一使用一套程序界面,且保證不同客戶之間的數(shù)據(jù)各自獨(dú)立。

它是一種架構(gòu),我們也可以在同一個(gè)服務(wù)器上運(yùn)行的多個(gè)程序?qū)嵗?,為多個(gè)客戶(租戶,通常指的是企業(yè)級(jí)客戶)提供服務(wù)。

形象點(diǎn)的說,“租戶”和我們合租一套房子是類同的意思,張三和李四同租一套房子,各住一個(gè)臥室,互相不干擾,客廳、廚房為公共區(qū)域,大家可以一起公用一些生活設(shè)施。

租戶的意思,從字面的理解,也就是租用房東的房子住,不具有產(chǎn)權(quán),只在有限的范圍內(nèi)擁有使用權(quán),且各個(gè)租戶只能在自己租住的房間貼個(gè)墻紙搞點(diǎn)小裝飾,不能拆門拆墻搞裝修。房東(平臺(tái)方)不但有整套房子的大門,還可能收回出租的房間。

這種架構(gòu)也稱之為SAAS(軟件即服務(wù)),它能夠支持不同租戶之間數(shù)據(jù)的和配置的隔離,從而保證每個(gè)租戶數(shù)據(jù)的安全和隱私,以及用戶對(duì)界面、業(yè)務(wù)邏輯、和數(shù)據(jù)結(jié)構(gòu)的個(gè)性化需求,而平臺(tái)方,不但掌握全局的業(yè)務(wù),可以調(diào)整業(yè)務(wù)流程,還掌握全部的數(shù)據(jù)。

也就是,在多租戶模式下,完全可以實(shí)現(xiàn)同一個(gè)平臺(tái)下不同租戶的業(yè)務(wù)單據(jù)不同,流程不同,而又同時(shí)從屬于同一個(gè)平臺(tái),對(duì)平臺(tái)而言,租戶只是平臺(tái)的一個(gè)賬戶,依托于平臺(tái)開展業(yè)務(wù)。

形成的局面就是,平臺(tái)級(jí)用戶管理整個(gè)平臺(tái)的數(shù)據(jù)和用戶,租戶級(jí)別的用戶只能管理該租戶下的用戶和業(yè)務(wù)數(shù)據(jù),平臺(tái)和租戶,租戶和用戶之間是一種1對(duì)多和多對(duì)1的三層體系結(jié)構(gòu)。

最終,整個(gè)平臺(tái)的架構(gòu)如下圖所示。

我們套用“建筑師”的思維,想象一下我們要建造一棟房子的情形,先要打好地基,搭好框架,立好支柱,然后再有各個(gè)樓層,樓層的各個(gè)房間,門、窗等等。

構(gòu)建一套“多租戶”架構(gòu)的平臺(tái),就類同于建造一棟房子一樣的過程。這個(gè)過程,可以簡(jiǎn)述為5個(gè)步驟,或者說5個(gè)階段:

開通租戶---->配置租戶資料---->配置租戶業(yè)務(wù)---->配置租戶表單---->配置租戶權(quán)限

事實(shí)上,這種架構(gòu)模型,即可從上往下看規(guī)劃,也可以從下往上看業(yè)務(wù),這也是為什么在 “解析產(chǎn)品的信息架構(gòu)、產(chǎn)品架構(gòu)與業(yè)務(wù)架構(gòu)” 時(shí)強(qiáng)調(diào)從架構(gòu)設(shè)計(jì)的能力。

平臺(tái)的業(yè)務(wù)和產(chǎn)品架構(gòu),我們既能從上往下看用戶發(fā)起請(qǐng)求后的一系列動(dòng)作過程,也可以從下往上看為了支撐用戶的服務(wù)請(qǐng)求所需要構(gòu)建的一系列服務(wù)。所有的設(shè)計(jì),都能夠推導(dǎo)出最終呈現(xiàn)在用戶面去的產(chǎn)品形態(tài),只是取決于設(shè)計(jì)者如何結(jié)合實(shí)際應(yīng)用采用的方式。

這種架構(gòu)的好處是顯而易見的,首先是極大的降低了系統(tǒng)的開發(fā)、維護(hù)成本,無需針對(duì)每個(gè)細(xì)分的業(yè)務(wù)重新部署和培訓(xùn),在系統(tǒng)升級(jí)時(shí)刻只一次更新即可完成整個(gè)平臺(tái)的升級(jí)。

第二,對(duì)于O2O平臺(tái)來說,業(yè)務(wù)間的用戶存在既存在重疊,也存在鴻溝,不同業(yè)務(wù)間的用戶需要考慮統(tǒng)一用戶觸達(dá)界面,以達(dá)成一致性的用戶體驗(yàn),多租戶模式這種求大同存小異的特性,使得各個(gè)業(yè)務(wù)既能發(fā)揮特性,又能維護(hù)統(tǒng)一的設(shè)計(jì)體驗(yàn)。

第三,多租戶的數(shù)據(jù)資源隔離機(jī)制,可以保證數(shù)據(jù)的安全性。

關(guān)于多租戶架構(gòu),必須要區(qū)分“多用戶”的差異,二者有根本性區(qū)別。簡(jiǎn)單來說,多用戶是多個(gè)使用“共享”一套邏輯和數(shù)據(jù),通過每個(gè)用戶的權(quán)限來識(shí)別每個(gè)用戶所能查看的數(shù)據(jù)范圍和所能操作的功能。

形象的比喻是,多租戶相當(dāng)于多個(gè)住戶合租一套房子,多用戶則是多個(gè)住戶同住一個(gè)房間的不同床位。

02、如何對(duì)業(yè)務(wù)進(jìn)行解耦

耦合的“耦”,在中文的字面含義兩個(gè)人在一起耕地,各干各的事情,互相不要受影響;

耦合物理學(xué)上則指兩個(gè)或兩個(gè)以上的體系或兩種運(yùn)動(dòng)形式之間通過各種相互作用而彼此影響以至聯(lián)合起來的現(xiàn)象。簡(jiǎn)單說,就是兩個(gè)東西交織在一起了,互相牽扯,藕斷絲連的狀態(tài)。

解耦,就是回歸到各自獨(dú)立不受影響的狀態(tài)下。 在技術(shù)實(shí)現(xiàn)上,為了保護(hù)和維持代碼的健壯性,盡可能的減少模塊之間的關(guān)聯(lián)關(guān)系,使得各個(gè)功能模塊各自盡可能的獨(dú)立,一個(gè)地方出錯(cuò),不會(huì)影響全部,更能提高代碼的重用性。

由此有一個(gè)詞叫“高內(nèi)聚,低耦合”,高內(nèi)聚就是模塊內(nèi)的活干活干仔細(xì)了,低耦合就是別人模塊的事情少攪和,接受你應(yīng)該接受的數(shù)據(jù),輸出你應(yīng)該輸出的結(jié)果就好。

業(yè)務(wù)的解耦實(shí)質(zhì)是同樣的思路,不同在于它更抽象。

以業(yè)務(wù)表單和操作流程為例,如下圖所示。

我們把整個(gè)平臺(tái)中“業(yè)務(wù)流程動(dòng)作”(業(yè)務(wù)層,也可以理解是邏輯層)和“結(jié)果表單”(表現(xiàn)層),進(jìn)行分拆出來,這樣分拆以后的好處是:

其一、表單的格式,樣式,甚至內(nèi)容不再受業(yè)務(wù)流的限制,能夠使得各個(gè)租戶的表達(dá)實(shí)現(xiàn)完全的自定義,租戶之間的業(yè)務(wù)表單完全根據(jù)租戶本身的業(yè)務(wù)獨(dú)特性而配置;

其二、表單與表單的之間的關(guān)聯(lián)不隨業(yè)務(wù)的流轉(zhuǎn)過程而強(qiáng)綁定,而是根據(jù)業(yè)務(wù)的結(jié)果進(jìn)行展開,能夠?qū)崿F(xiàn)各個(gè)表單之間差異定制而不影響主干業(yè)務(wù);

其三、由于高度抽象了整個(gè)業(yè)務(wù)過程中的核心節(jié)點(diǎn),使得小范圍內(nèi)的業(yè)務(wù)流程調(diào)整不影響主干業(yè)務(wù)的流轉(zhuǎn),只要保障主干業(yè)務(wù)的始終閉環(huán)性就能確保整個(gè)業(yè)務(wù)過程的閉環(huán)受控;

其四、經(jīng)過高度抽象后的業(yè)務(wù)過程,簡(jiǎn)化了平臺(tái)對(duì)租戶的管理,也由此帶來平臺(tái)的高度伸縮性,具備隨時(shí)調(diào)整業(yè)務(wù)的能力;

其五、對(duì)用操作員來說,由于統(tǒng)一了整個(gè)平臺(tái)的界面,使得平臺(tái)內(nèi)的租戶操作員具備跨業(yè)務(wù)跨組織的業(yè)務(wù)技能,降低了平臺(tái)的使用成本和組織的培訓(xùn)成本。

對(duì)于企業(yè)級(jí)產(chǎn)品而言,多租戶架構(gòu)是一種較好的松耦合的業(yè)務(wù)解決方案,它能夠有效的支撐不同業(yè)務(wù)單元和不同組織的差異化需求,從而提升整個(gè)平臺(tái)的效率,減輕企業(yè)的成本負(fù)擔(dān)。

但這個(gè)模式,確實(shí)不太容易被理解和有效實(shí)踐,整個(gè)產(chǎn)品在前期的分析和設(shè)計(jì)階段,需要耗費(fèi)非常多的且短期內(nèi)不容易見效的工作。

對(duì)“平臺(tái)”本身而言,比如追求更為靈活可伸縮的模型架構(gòu),以適用快速變化的業(yè)務(wù)需求,在具體的產(chǎn)品落地過程,仍然需要根據(jù)周期內(nèi)的可預(yù)見的業(yè)務(wù)邊界,來設(shè)計(jì)相匹配的產(chǎn)品架構(gòu),不能過于超前,否則容易帶來不必要的研發(fā)成本,特別是拉長(zhǎng)了整個(gè)研發(fā)的周期可能最終的結(jié)果反而得不償失。

對(duì)產(chǎn)品經(jīng)理而言,規(guī)劃復(fù)雜的平臺(tái)級(jí)產(chǎn)品是巨大的挑戰(zhàn)。

<本文完>

關(guān)注公眾號(hào):產(chǎn)品微言,回復(fù)“從0到1”,即可下載完整? PPT? ?

我將通過17篇文章,解密推動(dòng)產(chǎn)品落地的全過程,包括產(chǎn)品的定義和設(shè)計(jì)、開發(fā)過程的管理,以及由此引發(fā)的系列問題,更包括在此過程中我所學(xué)到的寶貴經(jīng)驗(yàn)和深刻教訓(xùn)。

歡迎交流,下輯預(yù)告:

2B產(chǎn)品的用戶角色問題

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

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

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