抱歉,請(qǐng)不要把 “業(yè)務(wù)邏輯層” 理解為 “業(yè)務(wù)中臺(tái)”
在IAS2019中臺(tái)架構(gòu)峰會(huì)上,我曾與一位年輕帥氣的技術(shù)小伙來(lái)了一番有趣的對(duì)話。
因?yàn)楹团笥延屑s,所以我在現(xiàn)場(chǎng)互動(dòng)結(jié)束之后,就急匆匆地跟其他嘉賓打了聲招呼,抱著筆記本沖出了會(huì)場(chǎng)。
但沒(méi)想到剛到電梯口,卻被一位帥小伙迎面攔住。
他朝我擺了擺手,開(kāi)口說(shuō):“王老師,耽誤你點(diǎn)時(shí)間,想請(qǐng)教一個(gè)技術(shù)性問(wèn)題可以嗎?”
我假裝謙虛:“太客氣了,請(qǐng)教不敢當(dāng),大家一起探討探討。”
隨即他從背包中拿出手提電腦,打開(kāi)一份PPT,并指著其中的幾張圖問(wèn)我:“你看,這是我們公司的業(yè)務(wù)中臺(tái),麻煩你給評(píng)價(jià)評(píng)價(jià)。”
圖1. 他們的 “業(yè)務(wù)前/中/后臺(tái)” 是這樣的
圖2. 他們 “業(yè)務(wù)前/中/后臺(tái)” 的功能定義
圖3. 他們 “業(yè)務(wù)前/中/后臺(tái)” 的組織結(jié)構(gòu)
在聽(tīng)完他的敘述之后,我忍不住笑出聲來(lái),并對(duì)他說(shuō):“小伙子,你這哪是中臺(tái)啊?!這分明是三層架構(gòu)(3-Tier Architecture) 啊……”從表情上看,我感覺(jué)他有點(diǎn)懵圈,小聲問(wèn)了一句:“三層架構(gòu)?MVC嗎?”我搖了搖頭,給他從頭到底普及了下3-Tier Architecture,并且強(qiáng)調(diào)了界面層(User Interface layer)、業(yè)務(wù)邏輯層(Business Logic Layer)、數(shù)據(jù)訪問(wèn)層(Data access layer)的分層目的是為了“高內(nèi)聚,低耦合” 。他聽(tīng)完搖了搖頭,似乎不太理解,并追問(wèn):“那么 ‘業(yè)務(wù)邏輯層’ 與 ‘業(yè)務(wù)中臺(tái)’ 的區(qū)別是什么呢?”我把他拉到一旁的咖啡廳,找了個(gè)座,并在網(wǎng)上翻到一張3-Tier Architecture的結(jié)構(gòu)圖,然后對(duì)他說(shuō):“說(shuō)實(shí)話,雖然單純通過(guò)幾張圖和口述,我無(wú)法了解你們的業(yè)務(wù)背景與現(xiàn)狀。”
圖4. 3-Tier Architecture
“但你所描述的那個(gè) ‘業(yè)務(wù)中臺(tái)’ ,最多只能算是一個(gè)軟件體系架構(gòu)中的業(yè)務(wù)邏輯層,壓根跟 ‘中臺(tái)’ 沒(méi)半毛錢(qián)關(guān)系。”
他聽(tīng)完,一邊搖頭,一邊說(shuō):“不對(duì)啊,我們技術(shù)老大可不是這么說(shuō)的……”我很好奇,忙追問(wèn)他。按他的說(shuō)法,在他們公司內(nèi),大家都認(rèn)為中臺(tái)是一種松耦合結(jié)構(gòu)的架構(gòu)模式,主要是用來(lái)解決層與層之間的依賴(lài)問(wèn)題的。也就是說(shuō),他們公司的 “業(yè)務(wù)中臺(tái)” 價(jià)值主要體現(xiàn)在以下幾點(diǎn):
1、把標(biāo)準(zhǔn)化的服務(wù)下沉到 ”業(yè)務(wù)后臺(tái)”,把非標(biāo)準(zhǔn)化的服務(wù)上浮到 “業(yè)務(wù)中臺(tái)”。
2、有了 ”業(yè)務(wù)后臺(tái)”,一旦上層的設(shè)計(jì)改變,對(duì)于其調(diào)用的底層而言沒(méi)有任何影響。
3、大部分的業(yè)務(wù)需求只需要搗騰 ”業(yè)務(wù)中/前臺(tái)”,似乎成本更低,效率更高了。
聽(tīng)完他的這番言論之后,我愣了近十秒鐘,一時(shí)間不知道說(shuō)些什么。大腦給我的第一反應(yīng)是把一堆 “吐槽” 噴在他臉上,但最終理智還是戰(zhàn)勝了沖動(dòng)。我朝他微微的笑了笑,說(shuō)了一下我的看法。就像我在 #請(qǐng)你們不要調(diào)侃中臺(tái),它是我們賴(lài)以生存的鐮刀#中講述的那樣,業(yè)務(wù)中臺(tái)也好,技術(shù)中臺(tái)也罷,它并不是一種技術(shù)實(shí)現(xiàn),而是一種技術(shù)戰(zhàn)略。而業(yè)務(wù)邏輯層可不是戰(zhàn)略,它只不過(guò)是專(zhuān)門(mén)用來(lái)處理軟件業(yè)務(wù)需求的一層,是用來(lái)實(shí)現(xiàn)設(shè)計(jì)模式及組件技術(shù)的一種手段。
說(shuō)到這里,我還特地跟了一句:“不要被熱點(diǎn)名詞所迷惑,即使它處在體系架構(gòu)中的中間位置,也不應(yīng)該把它稱(chēng)為 ‘中臺(tái)’。”
“我個(gè)人覺(jué)得,你們把這個(gè)部門(mén)稱(chēng)為 ‘自定義服務(wù)事業(yè)部’ 更為貼切。”
說(shuō)到這里,我特地停頓了下,喝了口咖啡,繼續(xù)說(shuō)。
“當(dāng)然,剛才敘述的觀點(diǎn)主要來(lái)源于我自己的實(shí)踐經(jīng)驗(yàn),所以聽(tīng)上去會(huì)顯得比較武斷或片面,但中臺(tái)戰(zhàn)略的興起在國(guó)內(nèi)主要來(lái)自于阿里巴巴的中臺(tái)戰(zhàn)略思想。”
“在我們系統(tǒng)的演化過(guò)程中,我曾多次閱讀 《企業(yè)IT架構(gòu)轉(zhuǎn)型之道:阿里巴巴中臺(tái)戰(zhàn)略思想與架構(gòu)實(shí)戰(zhàn)》這本書(shū),在談到構(gòu)建業(yè)務(wù)中臺(tái)基礎(chǔ)的部分,有過(guò)這樣一些描述,我覺(jué)得說(shuō)的挺到位。”
說(shuō)完,我打開(kāi)閱讀筆記給他看。
……
構(gòu)建業(yè)務(wù)中臺(tái)的基礎(chǔ) —— 共享服務(wù)體系。
松耦合的服務(wù)帶來(lái)業(yè)務(wù)的復(fù)用,通過(guò)服務(wù)的編排助力業(yè)務(wù)的快速響應(yīng)和創(chuàng)新。
反觀企業(yè)需要通過(guò)ESB組件打通不同系統(tǒng)間的交互,實(shí)則是因?yàn)橄嚓P(guān)業(yè)務(wù)領(lǐng)域的業(yè)務(wù)和數(shù)據(jù)被以“煙囪式”方式建設(shè)的系統(tǒng)分割到了不同的系統(tǒng)中。
當(dāng)越來(lái)越多的系統(tǒng)都采用自建“輪子”的方式滿足自身系統(tǒng)對(duì)這部分業(yè)務(wù)的需求時(shí),之前的這個(gè)服務(wù)慢慢就少有人問(wèn)津,當(dāng)有更好的服務(wù)出現(xiàn)或該服務(wù)完全滿足不了當(dāng)前業(yè)務(wù)發(fā)展的要求時(shí),也就是這個(gè)服務(wù)離開(kāi)歷史舞臺(tái)的時(shí)刻。
1、傳統(tǒng)組織結(jié)構(gòu):我們可以將整個(gè)技術(shù)團(tuán)隊(duì)看做成一個(gè)組合精密的流水生產(chǎn)線,源源不斷的業(yè)務(wù)需求進(jìn)入到這條流水線后,經(jīng)過(guò)流水線上各專(zhuān)業(yè)人員的貢獻(xiàn),最終將業(yè)務(wù)需求以系統(tǒng)的方式輸出這條流水線。
2、FeatureTeam:不同角色的人員(架構(gòu)師、開(kāi)發(fā)人員、UED工程師等)組建成了一個(gè)新的組織,每一個(gè)這樣的組織都針對(duì)某一服務(wù)中心提供持續(xù)的服務(wù)能力開(kāi)發(fā)及運(yùn)維,更準(zhǔn)確說(shuō)是基于這一服務(wù)中心的業(yè)務(wù)能力進(jìn)行“運(yùn)營(yíng)”。
……
看完這段文字,我問(wèn)他:“你瞧,根據(jù)阿里中臺(tái)戰(zhàn)略的定義,再結(jié)合到剛才的敘述,你發(fā)現(xiàn)了什么?”
他搖了搖頭,看著我。
在我看來(lái),你們那個(gè) “業(yè)務(wù)中臺(tái)” 是 用來(lái)做服務(wù)編排的,作用是助力業(yè)務(wù)的快速響應(yīng)和創(chuàng)新,而你們那個(gè) “業(yè)務(wù)后臺(tái)” 是 松耦合的服務(wù)帶來(lái)業(yè)務(wù)的復(fù)用,杜絕重復(fù)造輪子的現(xiàn)象。
“當(dāng)然,這樣的說(shuō)法不僅不科學(xué),而且有點(diǎn)死拉硬拽的味道,但我覺(jué)得兩者之間的道理是相通的。”
聽(tīng)完我的話,這小伙子突然站了起來(lái),沖著我說(shuō):“王老師,是不是我們老大在忽悠我們啊?那么長(zhǎng)時(shí)間,很多人之所以留在這破公司賣(mài)命,就因?yàn)橐恢庇X(jué)得自己做的是行業(yè)先進(jìn)技術(shù)啊!”
我也站了起來(lái),并拍了拍他的肩頭示意他冷靜,并讓他坐下。
隨后,我用緩和了下語(yǔ)氣對(duì)他說(shuō):“首先,我不僅沒(méi)有資格來(lái)對(duì)你們公司指指點(diǎn)點(diǎn),更沒(méi)有底氣在僅知道這點(diǎn)皮毛信息的前提下來(lái)對(duì)某某某說(shuō)三道四,這跟耍流氓沒(méi)什么區(qū)別。”
“我只想說(shuō),中臺(tái),的確是在現(xiàn)階段來(lái)看當(dāng)下最熱的一個(gè)造勢(shì)名詞。既然是造勢(shì)名詞,這就意味著可以成為企業(yè)重要抓手和杠桿,可大干一番。”
“說(shuō)白了,就是在很多時(shí)候,這些熱點(diǎn)或是概念,它主要的作用是用來(lái)對(duì)齊思想,找到戰(zhàn)友的一種方式。”
我常說(shuō),一切拋開(kāi)業(yè)務(wù)、組織及歷史債的架構(gòu)設(shè)計(jì)都是耍流氓。
那么啥叫好架構(gòu)?啥叫牛逼的技術(shù)老大?在我看來(lái),在國(guó)內(nèi)的大部分企業(yè)中,如果有誰(shuí)能用一種理念團(tuán)結(jié)人心,再加上能用一套能落地的實(shí)戰(zhàn)方式,最終滿足公司在業(yè)務(wù)發(fā)展上的需要,那就可以了。很顯然,中臺(tái)這個(gè)詞,似乎是這幾年里最適合的粘合劑。至于你家的數(shù)據(jù)中臺(tái)都有哪些標(biāo)準(zhǔn)?他家的業(yè)務(wù)中臺(tái)對(duì)人才的需求標(biāo)準(zhǔn)都有哪些?還是交給學(xué)術(shù)界的朋友們?nèi)プ聊グ伞?duì)我們來(lái)說(shuō),意義并不大。
聊到這,我的電話鈴聲響了,低頭一看,糟糕,原是朋友打來(lái)的,應(yīng)該是催我去吃飯的。
我一看表,要死……從坐下到現(xiàn)在,時(shí)間已經(jīng)過(guò)去了一個(gè)小時(shí)。
在和他相互留了微信之后,我就一溜煙的跑出了會(huì)場(chǎng)。
什么?你想知道后來(lái)如何了?至此之后,我們倆就再也沒(méi)聯(lián)系過(guò),但我好像記得在他的朋友看到他在這場(chǎng)大會(huì)結(jié)束的一個(gè)月后,就離職了。
原因可能是因?yàn)槁?tīng)了我這番言論的鼓動(dòng),回去就跟他老大干仗了吧……
現(xiàn)在回想起來(lái),也不知道自己是干了一件好事,還是干了一件壞事。
算了,就這樣吧,挺好的。
本文轉(zhuǎn)載自微信公眾號(hào)「頭哥侃碼」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系頭哥侃碼公眾號(hào)。