理解中台

来源:https://www.cnblogs.com/anai/archive/2020/01/14/12192538.html
-Advertisement-
Play Games

前段時間參加了IAS2019(互聯網架構峰會),本次峰會以中台為主題,所以又稱中台戰略大會,據說是全國首屆關於中台戰略的會議,會議上有許多優秀的企業架構師帶來了他們各自在實踐中台過程中的心得。本文就筆者對自己參與的會場的情況做一些分享,同時也寫寫自己參會以及查閱相關資料後關於中台這一概念的理解和體會 ...


前段時間參加了IAS2019(互聯網架構峰會),本次峰會以中台為主題,所以又稱中台戰略大會,據說是全國首屆關於中台戰略的會議,會議上有許多優秀的企業架構師帶來了他們各自在實踐中台過程中的心得。本文就筆者對自己參與的會場的情況做一些分享,同時也寫寫自己參會以及查閱相關資料後關於中台這一概念的理解和體會。

什麼是中台?

中台不是一個新名詞。然而你如果想找到它的源頭,可能真不太好找。有人說來自銀行的”前臺-中台-後臺“的組織結構,有人說來自阿裡提出的“大中台,小前臺”概念。

而”中台“這個詞真正火起來,還是在2017-2018年,這個時間段里,阿裡出版的《企業IT架構轉型之道:阿裡巴巴中台戰略思想和架構實戰》詳細闡述了他們認為的中台是什麼,而隨後,滴滴、京東等一大批互聯網企業開始分享自己在中台探索的成果。

那麼你可能要問,究竟中台是什麼?王健老師在《當我們談中台時,我們在談些什麼| 白話中台戰略》一文中提到:

在有些人眼裡:中台就是技術平臺,像微服務開發框架、Devops平臺、PaaS平臺,容器雲之類的,人們都叫它“技術中台”。

在有些人眼裡:中台就是微服務業務平臺,像最常見的什麼用戶中心,訂單中心,各種微服務集散地,人們都叫它“業務中台”。

在有些人眼裡:中台應該是組織的事情,在釋放潛能:類似於企業內部資源調度中心和內部創新孵化組織,人們叫它“組織中台”。

可見目前對中台其實大家仍然處於一種都有感覺,但是仍然看不清的狀態。甚至會讓人覺得每種理解都說的通,但是一旦拿來和自己面對的情況相比,又總是缺了些什麼。

其實這也正常,看不清才是中台真正的模樣,就像我們看到一個抽象類,它的定義是模糊的,雖然我們能看到這個類很多的實現,但是如果我們自己要用的時候,可能還是要重新做一套適合我們的實現,因此我比較偏向關於中台的另一種定義,就是”中台是一種思維方式“。無論是阿裡說的前臺-中台-後臺,還是技術平臺,或共用組織,都是面對複雜問題時採用的策略,而其本質思想用兩句話可以概括:“多維拆解⾼複雜系統,全局設計可復⽤架構”,這裡的系統和架構都可以跳出軟體的範疇來理解。

什麼時候需要中台?

我們討論瞭如何定義中台,現在來看看怎麼就需要中台了。首先,讓我們設想一個二維矩陣,每一行表示一個分散式項目,每個分散式項目由前臺和後臺兩部分組成:

[

前臺,後臺,

前臺,後臺,

前臺,後臺,

...

]

我們先給出前臺和後臺的定義:

  • 前臺 由各類前臺系統組成的前端平臺。例如用戶直接使用的網站,手機App,微信公眾號等。
  • 後臺 由後臺系統組成的後端平臺。每個後臺系統一般管理了企業的一類核心資源(數據+計算),例如財務系統,產品系統,客戶管理系統,倉庫物流管理系統等,這類系統構成了企業的後臺。基礎設施和計算平臺作為企業的核心計算資源,也屬於後臺的一部分。

從縱向的維度來說,如果系統之間有重覆建設的部分,無論是前臺還是後臺,將重覆的部分提煉出來單獨構建,然後在各系統之間共用就是一種中台思維的運用。比如阿裡的淘寶、天貓還有1688等,最初都是煙囪式架構,彼此獨立,但是後來發現這樣重覆建設的內容挺多的,成本太高了,所以就將重覆的部分,比如用戶、訂單、物流等提煉出來單獨考慮,如此這般阿裡的業務中台也就慢慢建立起來了;

從橫向的維度來說,無論是什麼系統,前臺都更貼近用戶,更可能產生變化,更需要快速響應變化的能力,而後臺更多的是偏向信息化管理方面,無論是技術還是業務需求都更加固化,需求的是穩定,但問題是不能滿足前臺日趨多變的需求,此時的前臺和後臺就好比兩個不同轉速的齒輪,強行配合終將導致兩者都難以維護,而在前臺和後臺之間加入一個變速齒輪(那些比前臺穩定,比後臺靈活的機制),使得二者的速率能合理的匹配也是一種中台思維的運用。比如如果你要在某個城市搭建一個公共服務項目,為市民提供水電氣、社保、公積金、共用單車等公共服務,你設計的直接面向市民用戶的前端一定是需求多變的,而水電氣、社保、公積金這些單位的系統都是長期以往穩定運行的,要想解決二者之間的矛盾,比起每次前臺有變化都深入這些系統內部進行分別改造,更好的方式當然是建立一套中間系統去進行適配,這樣中台也就會慢慢建立起來了。

中台的實踐案例

《醫院後勤生態模式下的企業級中台建設》

  • 講師是南京天溯的侯逸文 天溯是一家聚焦於醫院智慧後勤運維服務領域,採用“生態平臺+應用中心+管家團隊”的平臺運營模式,為醫院提供智慧後勤線上與線下相結合的全線、全產業鏈運維服務的企業。
  • 侯老師從中台的解決方案、技術方案、應用和案例三個方面介紹了他們在醫院後勤運維領域的實踐心得。
  • 醫院後勤管理範疇涵蓋的內容很多,包括30多個種類和100多個服務,比如房間空間管理,總務服務,膳食服務,安全保衛等。醫院本身基於這些服務構建了一批龐雜的系統,這些系統各自為政,數據不共用,標準不統一,變更非常困難,為此迫切需要一種方式能夠解決這些問題。中台自然當仁不讓。
  • 然而,侯老師認為,如果僅把中台看成是一套IT系統就有些局限了,侯老師認為,toB類的企業級中台,需要關註3個方面: 【技術賦能】 中台除了提供通用的IT基礎硬能力,更要能提供合規的業務規範、標準的運行流程和統一的考核體系這些軟能力。 【管理賦能】 中台不僅是線上系統的事情,更要能打通線上線下,有一個精幹的線下團隊來有效使用中台,落地執行中台包含的規範、流程和標準。 【生態賦能】 中台不僅是本企業的事情,更要能以開放的精神服務整個行業中的所有合作伙伴,實現互惠共贏,構建行業命運共同體。
  • 我們來看一下侯老師提供的他們為醫院做的功能架構: 架構分為三層:基礎服務層、業務接入層、應用生態層、交互展示層,可以看到中台分佈在業務接入層和基礎服務層,包括:數據分析中台、基礎能力中台、IoT中台。
  • 再來看下部署方式: 上圖中的生態平臺涵蓋了3個大中台:數據分析中台、基礎能力中台、IoT中台。可以看到有兩種不同的部署方式,基於雲端的和基於本地的。
  • 在應用案例中,侯老師介紹了能力中台、數據中台、IoT中台帶來的實際價值。 【利用能力中臺中的工作流引擎服務,他們更快的的上線了新的業務】 【利用數據中台對數據的聚合和分析能力,他們有效的發現了醫院相關設備在空間上的能耗問題】 【利用IoT中台對數據的採集、監測、告警的能力,配合BIM,具備了從空間上監測設備並能夠快速定位故障點的能力】
  • 最後侯老師做了一下總結: 在醫院後勤運維業務場景中,中台的職責是為人和應用生態賦能統一的技術和規約,這三者之間的關係如下:
  • 小結: 侯老師的彙報很乾貨,結合醫院後勤這個實際的應用場景闡述了中台在項目功能架構中的位置,如何發揮作用,以及帶來的具體好處,很有借鑒意義。

《阿裡巴巴業務中台實踐與思考》

  • 講師是阿裡巴巴智能資深技術專家謝純良 謝老師從阿裡20年技術演進的關鍵節點入手,介紹阿裡巴巴的中台是如何成型的。
  • 2003年,1688和淘寶出世,後者是阿裡巴巴花了2000美金從一個美國人那裡買了一個網站系統,然後改造出來的,所以和1688系統在技術上相互隔離,無法復用1688的技術。也就是說創立之初,阿裡研發的系統,也是煙囪式建設的。
  • 2008年,在王堅博士的帶領下,阿裡開始核心系統去IOE的工作,並開始建立淘寶技術體系,做為集團統一標準,淘寶、天貓、1688實現了技術統一。
  • 2013年,阿裡技術上持續統一,併成立共用事業部,業務上確定淘寶、天貓、一淘並駕齊驅,業務中台初見雛形。
  • 2016年,阿裡巴巴旗下的業務越來越多,包括聚划算、天貓、河馬、1688,餓了麽等,所有歸於阿裡的系統,其技術棧會被統一成阿裡的技術棧,基於技術上的統一,阿裡成立了穩定的中台,穩定的中台幫助阿裡加快了創新,更好的拓展了線下的業務。 在演進的過程中,阿裡以用戶體系做為切入點,統一了各獨立系統的用戶數據,並通過不斷的總結提煉,得出了一套中台構建方法論,沉澱出了很多成熟的技術產品,積累了豐富多樣的業務能力,也正是憑藉這三點,阿裡的中台得以成功演進。

小結:

阿裡的強大中台也是一步一步演化出來的,憑藉其強大的抽象和提煉能力,中台的構建方法論,沉澱的相關技術,打造的業務生態,還可以助力其他企業快速構建自己的中台和前臺,只能嘆服了。

《孩子王新零售中台架構演進之路》

  • 講師是孩子王中台研發負責人王海龍,負責孩子王新零售中台從0到1的搭建,以及後續各階段的完善。
  • 孩子王起初是沒有線上渠道的,只有pos和內部的ERP系統,每個門店的ERP和總部的ERP對接。
  • 隨著移動時代的到來,孩子王意識到要增加線上渠道,於是建設了app、微商城等線上渠道,至此孩子王線上、線下全渠道覆蓋完成。
  • 然而,各系統先後上線,彼此獨立,導致多套用戶,多種標準的出現,不僅未能發揮線上優勢,反而帶來了用戶線上線下,甚至線上不同渠道會有不同履約、用戶信息不一致等問題。
  • 為瞭解決如上問題,王海龍老師從統一線上用戶入手,然後到統一全渠道的會員數據,最後實現會員體系的統一。
  • 一旦統一了全渠道的會員體系,可以做的事情就多了,比如收費會員、積分兌換、全渠道券等等運營策略都可以玩了,可以說是進入了一個完全不同的萬物生長的階段。
  • 隨後,商品、訂單、庫存、促銷等業務開始從線下的ERP系統轉移至線上,與統一會員體系相互協同起來
  • 至此,孩子王的中台已見雛形。
  • 有了中台的雛形,就有了替換線下ERP系統的可能,ERP系統本身存在很多痛點,比如商品促銷策略、新商品上線等都無法準實時的推出,但是很多時候,如果無法及時更新營效策略,將失去市場先機,所以王海龍他們其實早就想替換這個老舊的ERP系統,但是由於諸多業務都在上面運行,為了保險平滑的過度,他們選擇由中台構建入手,逐步架空ERP系統,直至替換,最後孩子王的中台演進成了下麵的架構: 更詳細的架構如下:

小結:

孩子王和阿裡一樣,在面對日趨增加,複雜多變的業務,傳統的煙囪建設模型捉襟見肘時,從統一用戶體系入手,開始構建自己的中台,通過不斷提煉通用的業務或技術上的能力,讓中台逐漸成長,各業務系統逐漸瘦身,隨著中臺地位的上升,便可以順勢建立統一的標準,之後的新系統便只需專註於自身的業務,其建設效率自然不言而喻了。

中台的啟發

這次參加中台戰略大會,讓我回想起自己2年前在做工作流業務解決方案的時候做的一次設計理念彙報,彙報的大致內容是說如今工作流引擎更多的是嵌入到業務系統中,而未來工作流引擎將做為一種服務,在業務系統中共用,並且除了工作流引擎是這樣,其他的很多業務或技術都會這樣。

當時其實只是基於可復用和組件化的理念在構思,現在看來這也是中台思維的一種運用,無論是阿裡還是孩子王這樣的互聯網公司,還是天溯這樣的傳統軟體公司在構建中台的道路上,都是從統一用戶體系入手,《OAuth2.0概念以及實現思路簡介》這篇文章中我們介紹了oauth2,以及用它打造單點登錄體系的思路,未來還可以考慮基於統一用戶中心打造一個分散式平臺,提供統一的技術棧,技術標準供業務系統使用,逐漸形成我們各業務領域的中台架構,當然這條路不容易走,因為會涉及業務、技術甚至是組織架構上的變化。

總結

我們一開始對中台做了一個定義,認為中台是一種思維方式,接著從2個不同的維度討論了什麼情況下需要中台,然後通過一系列應用案例展示了中台的構建過程,並談了我個人的一些啟發,希望這些內容能夠對你理解中台有所幫助,並能建立起自己的中台思維。

最後,讓我們再回顧一下中台思維的本質——

“多維拆解⾼複雜系統,全局設計可復⽤架構。”

參考資料

IAS2019中台戰略大會:

《什麼樣的企業需要數字化中台》——ThoughtWorks 和堅

《醫院後勤生態模式下的企業級中台建設》—— 侯逸文

《阿裡巴巴業務中台實踐與思考》—— 謝純良

《孩子王新零售中台架構演進之路》—— 王海龍

 

ok,本篇就這麼多內容啦~,感謝閱讀O(∩_∩)O。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 創建正則表達式對象 兩種: 1.通過構造函數創建對象 2.字面量的方式創建對象 正則表達式的作用: 匹配字元串的 //對象創建完畢 var reg = new RegExp(/\d{5}/); //調用方法驗證字元串是否匹配 var flag = reg.test("我的電話是10086"); co ...
  • 寫正則表達式, 根據字元串來寫正則表達式進行匹配 經驗: 1.找規律 2.不要追求完美 身份證的正則表達式 15位或者18位 ([1-9][0-9]{14})|([1-9][0-9]{16}[0-9xX]) ([1-9][0-9]{14})([0-9]{2}[0-9xX])? 1. 座機號碼的正則表 ...
  • 正則表達式 也叫規則表達式, 按照一定的規則組成的一個表達式, 這個表達式的作用主要是匹配字元串的 "我的電話:10086,他的電話:10010,你的電話:10000" 正則表達式, 把這個字元串中的所有的數字找到 正則表達式的作用: 匹配字元串的 在大多數編程語言中都可以使用 正則表達式的組成: ...
  • 1、data-xx命名:xx可以用“-”和“_”,但是不能有大寫字母; 2、用$ele.data()獲取值的時候,不需要“data-”首碼:$ele.data('xx'); 3、$ele.data()與$ele.attr()的區別: 1)data()的值保存在jQuery堆記憶體中,attr()的值保 ...
  • 有的時候需要獲取頁面名稱,為此我在這裡封裝了一個方。 一、分別根據傳遞不同的參數,獲取到html頁面的名稱。 通過傳遞參數,獲取到html頁面的名稱;參數params 以下是參數解釋說明 (1)params=1,只獲取頁面名稱,不帶.html尾碼 1.1 例如 url路徑是 https://www. ...
  • 小程式開發成本低,一個小程式,可同時運行在iOS和Android系統上;開發周期短,技術學習成本低,獲取用戶成本低,安裝下載成本低;運營成本低,畢竟無論是微信還是支付寶等,都有大量的用戶所在。總而言之,船小好調頭,試錯成本小。 ...
  • 有的時候需要測試下web項目中post、get請求是否正確,但是這個時候電腦上沒有安裝測試工具,怎麼辦呢?直接用瀏覽器控制台測試,打開網站,F12控制台,在控制臺下複製粘貼下麵的ajax請求,之後ajax請求。 第一步:控制台寫方法 第二步:控制台調用 url:請求的URL,method:post/ ...
  • 1.前言 我們經常使用 cron 表達式來定義定時任務的執行策略,今天我們就總結一下 cron 表達式的一些相關知識。 2. cron 表達式的定義 cron 表達式是一個字元串,該字元串由 個空格分為 個域,每一個域代表一個時間含義。 格式如下: 通常定義 “年” 的部分可以省略,實際常用的由 前 ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...