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