今晚我想來(lái)點(diǎn)...客製雲(yún)端SaaS應(yīng)用
文:吳冠輝 2020-10-13
發(fā)布時(shí)間: 2020-10-13 11:16:00

了解企業(yè)應(yīng)用方案的人都知道,企業(yè)應(yīng)用的特色在於針對(duì)不同行業(yè)、企業(yè)給予「客製化」修改。然而,雲(yún)端應(yīng)用市場(chǎng)強(qiáng)調(diào)的又是「標(biāo)準(zhǔn)化」的快速應(yīng)用服務(wù)。於是,企業(yè)雲(yún)端應(yīng)用方案就會(huì)遇到「標(biāo)準(zhǔn)化」與「客製化」取捨的難題。本文分析企業(yè)雲(yún)端應(yīng)用SaaS服務(wù)客製範(fàn)圍、程度及多租戶的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)方式。
針對(duì)企業(yè)管理應(yīng)用的雲(yún)端方案,和一般我們熟悉的手機(jī)應(yīng)用商店有些不同。主要不同點(diǎn)在於企業(yè)管理應(yīng)用雲(yún)端方案主要是針對(duì)企業(yè)痛點(diǎn)提供快速而有效的SaaS雲(yún)端應(yīng)用。但是...熟知企業(yè)應(yīng)用特性的人都知道,用戶使用一陣子後,多半會(huì)說(shuō):「你們這軟體真的不錯(cuò)啦!只是我們家跟別人流程不太一樣,我們家是.....(以下省略一萬(wàn)字)。」最後回到主題:「你們這個(gè)真的是很好用的!不過(guò)......可不可以為我們家做”一點(diǎn)點(diǎn)”調(diào)整....,哪邊改一下,流程多一步...(以下再省略一萬(wàn)字)?!?/span>
於是,各式各樣的修改調(diào)整申請(qǐng)來(lái)到了應(yīng)用開(kāi)發(fā)部門。很不幸...目前廠商回覆在大部分的情況下都是:雲(yún)應(yīng)用不支持客製。那麼究竟是什麼原因讓大部分的廠商都不支持客製,或者說(shuō)還是有客製空間,但是會(huì)遇到很多問(wèn)題?以下,就讓我們來(lái)探詢。
SaaS應(yīng)用客制分級(jí)
對(duì)於企業(yè)管理軟體尤其是套裝軟體而言,幾乎都需要針對(duì)客戶個(gè)別情況做些調(diào)改,俗稱「客製化」。客製這件事情可大可小,小的可能只涉及換個(gè)首頁(yè)LOGO、換個(gè)介面的風(fēng)格什麼的,大的可能要幾乎重新改造流程。當(dāng)軟體是佈署在客戶自有環(huán)境下,這種修改都是可以容易達(dá)成的;只是一旦上到雲(yún)端上,SaaS應(yīng)用不再是買斷模式而是租用模式。因此,客製這件事情就變得相對(duì)複雜不少。最直觀的體現(xiàn)就在於數(shù)據(jù)結(jié)構(gòu):例如租戶A和租戶B都需要針對(duì)訂單多一個(gè)欄位以記錄更多資訊,但SaaS應(yīng)用就這一份訂單結(jié)構(gòu)表,要如何才能同時(shí)符合租戶A和租戶B呢?一般又可能說(shuō)分開(kāi)兩個(gè)租戶用兩個(gè)不同資料表來(lái)處理,但是這樣不斷分割資料表的結(jié)果,對(duì)於軟體維護(hù)工作與系統(tǒng)運(yùn)維更新造成額外負(fù)擔(dān),最後在雪崩效應(yīng)下,系統(tǒng)將不堪負(fù)荷。
依據(jù)上面例子,似乎是說(shuō)SaaS應(yīng)用不能夠進(jìn)行客製。事實(shí)上,並非完全不能客製,而是SaaS客製能力與客製範(fàn)疇、技術(shù)層次有絕對(duì)的相關(guān)聯(lián),我們必須分層、分等級(jí)來(lái)理解這件事情。下表是針對(duì)不同程度的能力等級(jí)整理結(jié)果。

■ 階段一:門面工程中,應(yīng)用能夠修改的部分主要是介面上的修改,且不涉及資料結(jié)構(gòu)和資料處理邏輯,可以根據(jù)不同租戶甚至式用戶認(rèn)為自己喜歡的風(fēng)格。當(dāng)然,LOGO也是可以修改的範(fàn)疇,下圖是Salesforce.com的介面客製舉例。

圖、企業(yè)雲(yún)端應(yīng)用介面修改(資料來(lái)源: Salesforce.com)
■?階段二:提供大量配置可供用戶選擇。但本質(zhì)上資料處理流程仍是一樣,且不允許個(gè)別企業(yè)租戶修改數(shù)據(jù)結(jié)構(gòu)。
■?階段三:有了根本性的改變。階段三A和階段三B並不是先後問(wèn)題,而是不同的技術(shù)實(shí)現(xiàn)路徑。階段三都允許用戶改變和定義自有的數(shù)據(jù)結(jié)構(gòu),但是在做法上有很大不同。
(1) 階段三A:是真正意義上的多租戶數(shù)據(jù)結(jié)構(gòu)。
(2) 階段三B:提供一個(gè)不同租戶完整自有環(huán)境進(jìn)行客製,其實(shí)在某種程度上已經(jīng)脫離SaaS應(yīng)用商品範(fàn)疇。就像是Google特別作了一個(gè)你的公司地圖專門給你用這樣,事實(shí)上已經(jīng)可以算另一個(gè)商品了。
多租戶數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)
我們先理解一點(diǎn),雲(yún)端SaaS應(yīng)用都是使用同一個(gè)站臺(tái),是採(cǎi)用多租戶結(jié)構(gòu)運(yùn)作的。租戶(或說(shuō)企業(yè))運(yùn)作所產(chǎn)生的數(shù)據(jù)基本上在同一個(gè)資料庫(kù)甚至同一個(gè)表內(nèi),並不是我們所熟悉的客戶擁有自己的環(huán)境結(jié)構(gòu)。因此,你可以想像一下,一個(gè)客戶基本資料若是只能有一份結(jié)構(gòu),基本上不可能為了某一租戶的需求額外加一個(gè)欄位。即便是我們想要用所謂的”保留欄位”也是難以實(shí)現(xiàn)。
那這個(gè)技術(shù)臺(tái)階究竟如何踏上?簡(jiǎn)單來(lái)說(shuō),「多租戶數(shù)據(jù)結(jié)構(gòu)」最重要的特性就是動(dòng)態(tài)欄位技術(shù)。如同技術(shù)名稱所述:就是某個(gè)表的資料結(jié)構(gòu)必須是非固定的。這樣的實(shí)現(xiàn)方法有不少做法,最好理解的是表格結(jié)構(gòu)的轉(zhuǎn)置,簡(jiǎn)述如下:

圖、基本動(dòng)態(tài)欄位技術(shù)
上圖是最基本的動(dòng)態(tài)欄位技術(shù)結(jié)構(gòu),可以看到資料庫(kù)內(nèi)不配置欄位結(jié)構(gòu),而是用資料來(lái)表達(dá)資料結(jié)構(gòu),這樣便有機(jī)會(huì)發(fā)展多租戶共用一個(gè)資料且還擁有不同資料結(jié)構(gòu)。
事實(shí)上,這種技術(shù)在某些應(yīng)用商品已經(jīng)有使用。但這並不是做不到的問(wèn)題,只是數(shù)據(jù)轉(zhuǎn)置並不夠的,還要提供整套的「多租戶數(shù)據(jù)結(jié)構(gòu)」,包含了metadata設(shè)計(jì)和管理結(jié)構(gòu)的方案。此外,還有查詢資料、撈取資料、過(guò)濾資料、查詢效率...等各種問(wèn)題,更有甚者,還需要搭配前端的配置結(jié)構(gòu),整套達(dá)成才能說(shuō)我們達(dá)成了「多租戶數(shù)據(jù)結(jié)構(gòu)」。這絕非一朝一夕或甚至一季半年之功,以下是目前支持這種做法的Salesforce.com的範(fàn)例:


圖、多租戶結(jié)構(gòu)技術(shù)(資料來(lái)源:Salesforce.com)
小結(jié)
儘管目前大部分雲(yún)應(yīng)用供應(yīng)商對(duì)於客製能力還有很長(zhǎng)的發(fā)展路程,不過(guò)筆者認(rèn)為不用太執(zhí)著此方向。一來(lái)在市場(chǎng)上使用者本來(lái)就會(huì)依據(jù)本身的需要來(lái)選擇租用雲(yún)端應(yīng)用,對(duì)於真正需要客製的部分也會(huì)討論私有雲(yún)和在地端發(fā)展的作法。真正單純要把所有資料放在公有雲(yún)上的反而是少數(shù)。二來(lái)在靈活運(yùn)用的「大中臺(tái),小前臺(tái)」戰(zhàn)略下,每個(gè)應(yīng)用應(yīng)該不是朝向大而全的發(fā)展,而是小而精的應(yīng)用??脱u其實(shí)並不是這裡的重點(diǎn),有效重複使用已有的元件與業(yè)務(wù)流程,可能才是雲(yún)端SaaS小而精的重點(diǎn)所在。過(guò)分追求一套適用全部的情況是否又是回到老的僵固思維呢?值得我們討論。

Hi! 我是Roger。
從事技術(shù)工作十多年了,
喜歡玩和瞭解學(xué)習(xí)各種技術(shù)的內(nèi)涵,
喜歡聽(tīng)、也喜歡分享各種狂想,
歡迎你跟我分享你的看法!
更多案例


我想瞭解
我是用戶
我是夥伴 



