平臺(tái)福也、中臺(tái)與康威定律 - 傳統(tǒng)企業(yè)IT架構(gòu)轉(zhuǎn)型的辛酸史

最近公司做了一次IT應(yīng)用架構(gòu)的重構(gòu)和升級(jí),整個(gè)流程走下來(lái)攀圈,收獲頗豐暴凑,在這里略作總結(jié),以備后查量承。

階段一:煙囪式

公司老的IT架構(gòu)屬于傳統(tǒng)的“煙囪式”架構(gòu)搬设,也就是每個(gè)業(yè)務(wù)線之間由不同的開(kāi)發(fā)團(tuán)隊(duì)獨(dú)立建設(shè),技術(shù)棧不同撕捍,互不聯(lián)系拿穴。見(jiàn)下圖:


階段一-煙囪式架構(gòu).png

我想這也是許多傳統(tǒng)企業(yè)的IT架構(gòu)的樣子,這樣的架構(gòu)有幾個(gè)主要的弊端:

  1. 重復(fù)開(kāi)發(fā)忧风。每個(gè)業(yè)務(wù)線中間同樣的模塊會(huì)重復(fù)開(kāi)發(fā)默色,比如會(huì)員營(yíng)銷模塊,A業(yè)務(wù)線要建一個(gè)會(huì)員營(yíng)銷系統(tǒng)狮腿,B業(yè)務(wù)線也要建一個(gè)會(huì)員營(yíng)銷系統(tǒng)腿宰,這會(huì)造成很大的開(kāi)發(fā)資源浪費(fèi);
  2. 技術(shù)棧不統(tǒng)一缘厢〕远龋可能A系統(tǒng)用的是Spring MVC, B系統(tǒng)用的就是Spring Boot/Cloud。這會(huì)造成公司內(nèi)部IT架構(gòu)無(wú)法統(tǒng)一規(guī)劃贴硫,且技術(shù)能力難以積累的問(wèn)題椿每;
  3. 數(shù)據(jù)無(wú)法打通。A系統(tǒng)的會(huì)員存在A系統(tǒng)的MySQL庫(kù)中英遭,B系統(tǒng)的會(huì)員存在B系統(tǒng)的Oracle庫(kù)中间护,如果要識(shí)別A系統(tǒng)中的001會(huì)員和B系統(tǒng)中的002會(huì)員是同一個(gè)人,也許只能在數(shù)倉(cāng)中實(shí)現(xiàn)了挖诸。

總結(jié):這樣的架構(gòu)的好處就是可以互不影響地獨(dú)立部署獨(dú)立迭代了汁尺,適合業(yè)務(wù)線較少且比較獨(dú)立的公司采用。

階段二:平臺(tái)

在清楚了煙囪式架構(gòu)的弊端多律,且業(yè)務(wù)線越來(lái)越多的情況下痴突,公司IT團(tuán)隊(duì)開(kāi)始考慮平臺(tái)化的架構(gòu),即提供一個(gè)統(tǒng)一的會(huì)員營(yíng)銷平臺(tái)來(lái)管理全集團(tuán)的會(huì)員菱涤,來(lái)配置全集團(tuán)的營(yíng)銷活動(dòng)苞也,A系統(tǒng)和B系統(tǒng)的用戶都在平臺(tái)上進(jìn)行操作:


平臺(tái)化架構(gòu).png

在設(shè)計(jì)的過(guò)程中,我們逐漸發(fā)現(xiàn)粘秆,這樣的架構(gòu)對(duì)于像我們這樣的老系統(tǒng)來(lái)說(shuō)改造成本非常之大如迟。舉個(gè)例子,A系統(tǒng)有抽獎(jiǎng)活動(dòng),特價(jià)活動(dòng)這兩種營(yíng)銷活動(dòng)殷勘;B系統(tǒng)有抽獎(jiǎng)活動(dòng)此再,簽到活動(dòng)這兩種營(yíng)銷活動(dòng)。現(xiàn)在要做一個(gè)統(tǒng)一的會(huì)員營(yíng)銷平臺(tái)玲销,就是讓管理者可以統(tǒng)一配置這兩個(gè)系統(tǒng)的三種活動(dòng)输拇。但雖說(shuō)都是抽獎(jiǎng)活動(dòng),實(shí)則由于渠道贤斜、規(guī)則策吠、限制、獎(jiǎng)品等的不同瘩绒,兩種活動(dòng)其實(shí)只是活動(dòng)名稱相同而已猴抹,具體的實(shí)現(xiàn)完全不同。最終造成的結(jié)果就是雖然是平臺(tái)化了锁荔,但是實(shí)際上內(nèi)部的實(shí)現(xiàn)還是根據(jù)具體的適用系統(tǒng)而走了不同的邏輯蟀给。雖然前端看起來(lái)是一個(gè)統(tǒng)一平臺(tái),但實(shí)際后端很大程度只是把原來(lái)兩個(gè)系統(tǒng)的代碼合并在了一起而已阳堕。對(duì)于原來(lái)兩個(gè)系統(tǒng)獨(dú)有的活動(dòng)跋理,也還是獨(dú)立的去實(shí)現(xiàn),并沒(méi)有節(jié)省什么開(kāi)發(fā)工作量恬总,反而因?yàn)樾枰槍?duì)那些兩個(gè)系統(tǒng)都存的在同類活動(dòng)的合并而絞盡腦汁去抽象數(shù)據(jù)結(jié)構(gòu)和邏輯流程前普,且一旦合并后,如果其中一個(gè)系統(tǒng)的活動(dòng)邏輯需要調(diào)整壹堰,還可能影響到另一個(gè)系統(tǒng)的同類活動(dòng)汁政。

總結(jié):這樣的架構(gòu)適合全新的IT應(yīng)用,即從一開(kāi)始就按平臺(tái)化規(guī)劃的應(yīng)用架構(gòu)缀旁,這樣在設(shè)計(jì)之初就可以統(tǒng)一規(guī)劃營(yíng)銷活動(dòng)、會(huì)員屬性等同臺(tái)統(tǒng)一的屬性勺鸦。

階段三:平臺(tái)+中臺(tái)

在被平臺(tái)化搞得頭大之時(shí)并巍,大家轉(zhuǎn)而想到了年初看過(guò)的一本《企業(yè)IT架構(gòu)轉(zhuǎn)型之道-阿里巴巴中臺(tái)戰(zhàn)略思想與架構(gòu)實(shí)戰(zhàn)》里提到的“中臺(tái)”的概念。簡(jiǎn)單闡述下何為中臺(tái):中臺(tái)思想即將不同業(yè)務(wù)中相同或相似的基礎(chǔ)服務(wù)沉淀到統(tǒng)一的中臺(tái)應(yīng)用中换途,如將所有的業(yè)務(wù)中的會(huì)員服務(wù)沉淀為會(huì)員中臺(tái)懊渡,將所有的業(yè)務(wù)中的訂單服務(wù)沉淀為訂單中臺(tái)等。將原來(lái)的業(yè)務(wù)系統(tǒng)剝離為較薄的一層“前臺(tái)”應(yīng)用军拟,只包含該業(yè)務(wù)系統(tǒng)特有的業(yè)務(wù)邏輯剃执。這樣做的好處有:

  1. 減少重復(fù)開(kāi)發(fā)。每個(gè)系統(tǒng)不再需要開(kāi)發(fā)單獨(dú)的會(huì)員模塊懈息、訂單模塊等肾档,全都可以直接調(diào)用相應(yīng)的中臺(tái)接口。
  2. 增加服務(wù)的復(fù)用性。能夠沉淀到中臺(tái)的必然是多個(gè)應(yīng)用都能夠適用的通用邏輯怒见,自然保證了中臺(tái)服務(wù)的復(fù)用性俗慈。
  3. 快速構(gòu)建前臺(tái)應(yīng)用。如果要新增一個(gè)應(yīng)用系統(tǒng)遣耍,只需要構(gòu)建薄薄的一層前臺(tái)應(yīng)用即可上線闺阱,交付時(shí)間短,開(kāi)發(fā)更加靈活舵变。
  4. 數(shù)據(jù)打通酣溃。不同業(yè)務(wù)線的基礎(chǔ)中臺(tái)數(shù)據(jù)有相同的數(shù)據(jù)模型,可以統(tǒng)一調(diào)用纪隙。

正所謂它山之石可以攻玉赊豌,將中臺(tái)的構(gòu)建也納入我們的IT應(yīng)用架構(gòu)中:首先將A/B系統(tǒng)中基礎(chǔ)的會(huì)員營(yíng)銷服務(wù)沉淀到member中臺(tái)中,基礎(chǔ)的會(huì)員營(yíng)銷數(shù)據(jù)也沉淀在中臺(tái)庫(kù)中瘫拣。同時(shí)將兩個(gè)系統(tǒng)中可以統(tǒng)一的營(yíng)銷活動(dòng)平臺(tái)化亿絮,將兩個(gè)系統(tǒng)中各自個(gè)性化的營(yíng)銷活動(dòng)保留在原有的“前臺(tái)”應(yīng)用中,且前臺(tái)應(yīng)用直連業(yè)務(wù)庫(kù)麸拄,可得架構(gòu)圖如下:

平臺(tái)+中臺(tái)

注:圖中的member中臺(tái)實(shí)際上是分為多個(gè)中心的派昧,如會(huì)員中心,卡券中心等拢切,下圖同

但這樣的設(shè)計(jì)還是有一些問(wèn)題:

  1. 對(duì)于A蒂萎、B系統(tǒng)的用戶來(lái)說(shuō),他要配置一個(gè)營(yíng)銷活動(dòng)淮椰,可能要去業(yè)務(wù)系統(tǒng)中配置五慈,也可能去平臺(tái)中配置,比較混亂主穗;
  2. 對(duì)于平臺(tái)化的營(yíng)銷活動(dòng)泻拦,如果調(diào)整了邏輯會(huì)影響到所有應(yīng)用系統(tǒng);
  3. 由于A忽媒、B系統(tǒng)的需求都有專門(mén)的產(chǎn)品經(jīng)理負(fù)責(zé)争拐,且之后的需求也只會(huì)針對(duì)A、B系統(tǒng)分別提晦雨,那就會(huì)造成新的功能邏輯都分別在A架曹、B前臺(tái)系統(tǒng)上不停的生長(zhǎng),而沒(méi)有專人負(fù)責(zé)平臺(tái)的需求及后期規(guī)劃闹瞧。

其實(shí)绑雄,上面的第3點(diǎn)恰好道出了一條架構(gòu)設(shè)計(jì)中很重要的定律——康威定律Conway’s law

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations。
設(shè)計(jì)系統(tǒng)的組織奥邮,其產(chǎn)生的設(shè)計(jì)和架構(gòu)等價(jià)于組織間的溝通結(jié)構(gòu)万牺。

放在IT架構(gòu)中說(shuō)白了就是系統(tǒng)架構(gòu)需要與組織架構(gòu)一一對(duì)應(yīng)罗珍。這條大名鼎鼎的定律之前都是只聞其名,不知其實(shí)踐杏愤。到這里我們像大徹大悟一般:除非平臺(tái)有專門(mén)的業(yè)務(wù)部門(mén)負(fù)責(zé)(比如集團(tuán)會(huì)員營(yíng)銷部之類的)靡砌,否則就不應(yīng)該存在。上面第3點(diǎn)的問(wèn)題也正是因?yàn)榻y(tǒng)一平臺(tái)缺乏對(duì)應(yīng)的組織造成的珊楼,即應(yīng)用架構(gòu)與組織架構(gòu)不匹配通殃,違反了康威定律。

總結(jié):平臺(tái)并不是不可取厕宗,平臺(tái)實(shí)際上也是一個(gè)前臺(tái)應(yīng)用画舌,只不過(guò)需要有相應(yīng)的業(yè)務(wù)部門(mén)(組織)負(fù)責(zé),這樣才是符合康威定律的架構(gòu)設(shè)計(jì)已慢。

階段四:中臺(tái)

這個(gè)階段實(shí)際上就是把階段三的平臺(tái)給去掉曲聂。只留下了中臺(tái),以及能夠找到組織架構(gòu)中對(duì)應(yīng)業(yè)務(wù)部門(mén)的前臺(tái)應(yīng)用:


中臺(tái)

對(duì)于中臺(tái)佑惠,還是將A朋腋、B系統(tǒng)的通用會(huì)員營(yíng)銷邏輯沉淀下去,如會(huì)員資產(chǎn):積分膜楷、等級(jí)旭咽、優(yōu)惠券、訂單等赌厅。但對(duì)于特有的營(yíng)銷活動(dòng)穷绵,還是保留在業(yè)務(wù)前臺(tái)系統(tǒng)中分別實(shí)現(xiàn)。這樣既保留了系統(tǒng)獨(dú)立的業(yè)務(wù)自由度特愿,也能將集團(tuán)范圍內(nèi)的公共數(shù)據(jù)資產(chǎn)和服務(wù)通過(guò)中臺(tái)思想進(jìn)行沉淀仲墨。且當(dāng)未來(lái)出現(xiàn)某個(gè)組織來(lái)統(tǒng)籌“平臺(tái)”時(shí),也可以在中臺(tái)的基礎(chǔ)上很快的構(gòu)建揍障。

以上就是最近我參與的一個(gè)IT架構(gòu)改造的經(jīng)歷目养。總結(jié)成一句話:

沒(méi)有最好的IT架構(gòu)毒嫡,只有最合適的混稽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市审胚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌礼旅,老刑警劉巖膳叨,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異痘系,居然都是意外死亡菲嘴,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)龄坪,“玉大人昭雌,你說(shuō)我怎么就攤上這事〗√铮” “怎么了烛卧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)妓局。 經(jīng)常有香客問(wèn)我总放,道長(zhǎng),這世上最難降的妖魔是什么好爬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任局雄,我火速辦了婚禮,結(jié)果婚禮上存炮,老公的妹妹穿的比我還像新娘炬搭。我一直安慰自己,他們只是感情好穆桂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布宫盔。 她就那樣靜靜地躺著,像睡著了一般充尉。 火紅的嫁衣襯著肌膚如雪飘言。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天驼侠,我揣著相機(jī)與錄音姿鸿,去河邊找鬼。 笑死倒源,一個(gè)胖子當(dāng)著我的面吹牛苛预,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播笋熬,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼热某,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了胳螟?” 一聲冷哼從身側(cè)響起昔馋,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糖耸,沒(méi)想到半個(gè)月后秘遏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘉竟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年邦危,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洋侨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡倦蚪,死狀恐怖希坚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情陵且,我是刑警寧澤裁僧,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站滩报,受9級(jí)特大地震影響锅知,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脓钾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一售睹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧可训,春花似錦昌妹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至谨胞,卻和暖如春固歪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胯努。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工牢裳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人叶沛。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓蒲讯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親灰署。 傳聞我的和親對(duì)象是個(gè)殘疾皇子判帮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353