• 貴陽軟件開發:中臺實戰,數據中心中臺化案例

    /2020-06-05 13:45:18/

  • 聊了那么久的中臺概念,本篇文章我們來看一個中臺MVP的實戰案例,以底層數據中心為例的實戰案例。在前幾篇文章《中臺實戰0、1、2》中我們已經詳細描述了中臺戰略的建設目標與演化方式,抽象來看我們可以將其總結為這三個關鍵詞:復用、提效、一次開發。

    \

    一、中臺化前的產品現狀

    在項目早期我們公司提供的服務就是在線酒店預訂,這種業務模式的整個流程也不復雜,主要分為這幾個環節:

    BD進行拓店 -> 邀請酒店入駐平臺 -> 平臺上架 -> 用戶下單 -> 分傭

    重點來看第一個環節,BD拓店實際就是將線下的酒店住宿服務當做商品“進貨”至公司的后臺中,從而為后面整個服務奠定基礎,這里也是整個業務的核心與數據唯一進口。

    在這個環節中公司由BD與商務團隊維護并積累的大量底層“商品”數據,而初期這些底層數據在數據庫中,就是簡單的以“Key=Value”形式進行存儲。

    \

    存儲字段截取

    當經過一段時間的積累后,這種數據存儲方式由于維度簡單導致的結果,就是整個數據庫的數據量在很短時間內出現猛增。

    但是雖然看著每天都有“商品”數據入庫,慢慢的我們卻發現這些數據很多都是沒有辦法進行二次使用的,只能供特定的業務方進行獨立使用。

    具體來說,在公司內部我們通常會有多個業務團隊,每個業務團隊往往都會根據自己的業務需求在數據庫中建立一張屬于自己的數據庫表(這里為了行文方便我們視作一個表),這些表的業務數據字段與定義方式都是按照業務方定制化進行的。

    例如在當時,我們的酒店預訂就分為兩個業務團隊:

    • 非標住宿預定,也就是民宿;
    • 標準酒店預定;

    所以此時在后臺我們有了兩套業務數據體系,這些數據都是這兩個業務方進行自主定義的。

    二、挑戰:業務線

    這樣的數據看似很尋常,目前很多企業也是這樣對內部團隊管理的。但是對于這種我稱之為依托于前端統一團隊的業務來說(兩個業務方由統一的一群BD去進行掃街),我們實際上去做的就是將已經標準化了的數據(酒店錄入數據)再次人為進行了割裂,變成了兩個獨立的業務數據庫,如下圖所示。

    \

    我們要知道很多企業平時日常所做的工作大多數都是在進行數據的遷移與整合,如:將用戶行為數據與用戶唯一標識數據結合,從而唯一確定分析這個用戶的喜好。

    那么也就意味著我們每破壞一次數據之間的關聯性就意味著,為后期增加了一次需要進行反向操作,也就是將數據進行合并的工作負擔。特別是我們將酒店天然性以業務墻進行了阻攔,更是破壞了數據的強關聯性(同類數據)。

    同時這樣的數據也使得對于既屬于民宿又屬于標準酒店業務庫中的數據成為總庫的冗余數據,曾帶來的一個很嚴重隱患,就是當民宿業務線的運營同學發現酒店名稱發生改變并變更后,我們另一端的運營同學很難去即時發現并處理。此時在標準酒店業務端出現了多次用戶下單后,該酒店因為店名與實際店名不統一,而旅客無法入住的情況,并多次投訴平臺。

    當然這只是若干次業務數據管理中的一個小小的縮影,正是因為這樣的意外挑戰出現,讓我們對于現有的數據管理方式產生了要去進行變革的意圖。

    三、挑戰2:創新業務

    我們知道絕大多數互聯網的產品本質就是以不同的展示形式、遞進次序陳列出不同的數據,滿足用戶的信息需求。如新聞網站與今日頭條都是在展示新聞數據,而陳列的次序一個是按編輯維度,一個是按讀者的閱讀習慣維度。

    那么也就是說只要有了數據源,我們在這基礎上就可以衍生出不同的產品。我們原公司業務也不例外,在我們收集了一段時間市場的酒店信息后我們就想著可以用這些數據來組織些新的產品,以此來滿足不同細分市場人群。

    如將酒店的基本信息數據(照片,介紹等)與第三方游記攻略類數據共享,提供數據輸出服務。和想分析現有的數據的數據預測服務:根據不同地區的新增房源數據進行旅游真實熱門景區排行。

    這個時候面對之前分散的非標住宿預定與標準住宿預定兩個獨立業務,我們更想要看的兩個業務線匯總后的全維度數據,而在現有條件下這個變得必須要逾越兩個業務線的阻隔。

    四、業務中臺解決方案

    面對這樣的幾個挑戰,我們的選擇就是利用中臺去進行解決,此時中臺1.0是這樣構建的:

    步驟1:中央集權

    將酒店數據剝離各業務線團隊,把酒店數據存儲至獨立的數據中心(也就是中臺1.0)進行維護,打破各團隊隔離,此時將原有的環節改為:

    BD進行拓店 -> 邀請酒店入駐平臺 -> 數據中心(新增) -> 平臺上架 -> 用戶下單 -> 分傭

    而在新增數據中心進行統一維護后,面對各自團隊的數據需求我們可以在數據中心劃分為虛擬數據源用以進行支撐。

    \

    酒店數據與各個業務線生成的訂單等數據都匯總到數據中心中,數據中心是整個企業的基礎服務提供全局的數據。

    步驟2:特異性管理

    接下來讓我們來分析下整個業務運作流程,在原有兩個產品線的業務模式與創新產品的業務模式中,當我們以數據流轉的整個視角來看,本質上這些業務就是下圖所示的數據流。

    \

    不難發現,在這里作為數據源的提供方為業務方做了兩個步驟的工作:

    • 數據取用:根據業務方所要的數據范圍提供數據(如:本次業務需要讀取會員ID,會員姓名這兩個字段);
    • 數據業務格式化:根據業務方所要的數據格式進行特定數據格式/順序生成返回(如:業務方A返回數據格式:會員ID=“12311”+會員姓名=“張三”;業務方B返回數據格式:會員姓名->“張三”and會員ID->“12311”)。

    對比這兩個步驟的工作我們就能發現,第二個步驟實際上是原來整個后臺支撐系統額外的工作的罪魁禍首。像上文提到的每次數據接口只能為一個業務方提供服務,這個接口由于數據返回格式是特定的所以具有很強的特異性,導致后臺同學需要不斷進行新的提供數據的接口的開發。對于不懂技術的同學,我們可以理解為后臺同學在提供同樣的信息而先后順序不一樣時,需要設計不同的傳輸通道。

    大家可以看到這無疑就是巨大的浪費。大家可以回想下在自己的日常工作中這樣的情況是不是也相當常見,例如:產品迭代中每次版本更新導致的需要重新設計接口(新舊產品就同一數據的不同封裝形式的取用);老版本數據接口與新版本的同一數據接口不同,需要分別維護。

    所以當時我們是這樣解決的,這兩個步驟中第一個服務共性很高,很容易抽取成公共服務。我們就數據中心提供了一個標準的取數據接口,各個業務方只需要傳輸需要什么字段名稱,我們的統一數據返回接口就把數據返回至業務方。這樣在所有的版本中我們始終對同一批相同功能的接口進行維護(為了負載均衡),各個接口沒有任何特異性都是標準的取數據接口,只根據請求內容進行內容返回,這樣大大減少了開發量。

    對第二步驟由于特異性特別高,我們將這種與業務強相關的東西下放到業務端,由業務方進行數據處理,加工成他們需要的組織形式再返回給客戶方。

    此時后臺人員只需要開發面向數據源的數據輸入接口,也就是將BD采集的數據進行清洗成為中臺的原材料。此時數據中心也就是中臺,將各個業務數據留存在這里,并提供統一的取數方法,前臺業務人員根據需要去申請數據,將原來數據后臺統一處理這一動作劃分為:數據獲取(中臺)與數據業務端組合(前臺)兩部分。

    而整個系統的架構也就變成了如下圖的樣子:

    \

    最后

    在最后給大家一個個人理解中臺戰略,特別是業務中臺的搭建是一個高度定制化的戰略,如果我們想要發揮中臺化戰略的最大價值,就需要依據不同公司、不同業務、不同階段的特征去定義與動態調整中臺演進方向。就像本文的酒店數據中心案例一樣,只有最適合當前業務的中臺框架,才是真正的解決方案。

<
上一篇: 貴陽軟件開發:中臺實戰,中臺的建設核心原則 下一篇: 貴陽軟件開發:中臺實戰,業務的抽象建模

聯系我們

一個新的需求,從這里開始。歡迎填寫表格或發送合作郵件至: [email protected] [email protected] 加微信: 13765801787

13765801787
在線留言
收粮食拉粮食赚钱吗 五分彩是什么套路 体彩排三综合走势图 学生炒股开户 宁波股票配资公司 燕赵风采20远5走势图 pc蛋蛋官方网站 购买北京快乐8开奖数据 甘肃11选5基本走势最大遗漏 赌场最常用的扑克玩法 苏州炒股配资公司 七星彩彩票开奖查询 电子赌博导航 广西体彩手机在线app 南粤风釆36选7基本走 黑龙江彩票11选五开奖查询 上海时时乐开奖走势及时更新