概述
這里通過5步法指導思想來建設中臺架構菌仁。
1. 業(yè)務抽象
在業(yè)務抽象階段土童, 通過業(yè)務調研和業(yè)務分析同辣, 設計業(yè)務藍圖和抽象業(yè)務元素荸实, 為下一階段的中心建模階段準備頂層思想和業(yè)務素材匀们。
- 業(yè)務調研:
以面向中心的思想來探討業(yè)務, 認為業(yè)務流程只是形式准给, 核心是各領域中心的結構和運行機制泄朴。在業(yè)務調研過程中進行領域模型的探討重抖, 反復思考逐步清晰業(yè)務領域的邊界。 - 頂層業(yè)務分析:
在業(yè)務調研結束后祖灰, 結合行業(yè)趨勢钟沛、 類似項目的比較以及自身的經驗, 輸出企業(yè)的商業(yè)模式和核心業(yè)務場景局扶。 業(yè)務場景包括企業(yè)級業(yè)務場景恨统、 部門級業(yè)務場景和操作級業(yè)務場景。 并在業(yè)務場景梳理過程中详民, 找出企業(yè)痛點延欠。 最終設計出企業(yè)TO-BE的業(yè)務藍圖和應用藍圖。 - 業(yè)務抽象:
通過頂層業(yè)務分析沈跨, 明確了總體方向后, 我們便可以展開對具體業(yè)務場景的梳理和抽象兔综, 并輸出功能需求清單饿凛。 在此過程中, 還需要定義出功能操作的業(yè)務對象或業(yè)務實體软驰。 基于業(yè)務實體涧窒, 結合對應的功能需求, 定義出需要系統(tǒng)提供的能力锭亏。 根據能力的主題和實體間的密切關系纠吴, 我們便能對實體進行歸類, 定義出主題域慧瘤。
2.高階設計
( 1) 中心規(guī)劃
經過業(yè)務的調研和分析戴已, 技術架構師理解并熟悉了業(yè)務。 基于上階段輸出的主題域锅减, 技術架構師按照中心的多個劃分標準糖儡, 進行中心的規(guī)劃。
( 2) 0級架構設計
業(yè)務中臺的0級架構本質上是應用架構怔匣, 它以中心為最小單位進行設計握联, 因此也稱為整體架構設計。0級架構包括了功能層級的架構和技術層級的架構每瞒。
功能層級的架構需要描述業(yè)務中臺在整個數字平臺中所處的位置金闽, 業(yè)務中臺由哪些中心組成, 以及中心與應用剿骨、 中心與后臺的交互關系代芜。 功能層級的0級架構承接了企業(yè)的應用藍圖規(guī)劃, 指導企業(yè)各IT系統(tǒng)的職責劃分和定位懦砂。
2.1功能層級
企業(yè)整體功能架構從下往上分為IaaS層蜒犯、 PaaS層组橄、 基礎組件層、 數字中臺
層(包括業(yè)務中臺和數據中臺) 和業(yè)務應用層罚随。 每一層的具體功能如下:
- IaaS層: 完成硬件資源的虛擬化管理玉工, 為用戶提供對資源的使用服務。
- PaaS層: 為應用軟件提供部署平臺和運行環(huán)境淘菩。
- 基礎組件層: 介于業(yè)務服務和技術中間件之間遵班, 提供通用的業(yè)務功能和技術功能, 并解耦業(yè)務應用和技術中間件潮改。
- 數字中臺層: 分為業(yè)務中臺和數據中臺狭郑, 實現企業(yè)業(yè)務活動的核心機制, 并通過數據中臺對業(yè)務運營提供指導汇在。
- 業(yè)務應用層: 通過調用和組合中臺能力翰萨, 實現應用邏輯。
2.2技術層級
技術層級的0級架構需要說明各系統(tǒng)糕殉、 各中心分別使用什么技術來實現亩鬼, 以及整個體系的技術分層, 如下圖所示:
技術架構總體上分為展現層阿蝶、 服務層雳锋、 接口系統(tǒng)、 運營管理和運維支撐:
- 展現層與服務層相分離羡洁, 展現層采用當下主流的前端框架玷过, 分別對移動端、 PC端進行支撐筑煮。 通過合理的技術搭配人性化的設計滿足用戶感官體驗需要辛蚊。
- 服務層的架構采用分布式的微服務架構, 微服務架構去中心化加強終端的特點咆瘟, 讓服務免去雪崩效應等容災上的風險嚼隘。 同時, 整體技術架構具備易于擴展袒餐、 組合飞蛹、 部署, 可支持動態(tài)伸縮灸眼、 精準監(jiān)控卧檐, 并且可以提供灰度發(fā)布等優(yōu)點。 服務層包含應用服務焰宣、 中臺服務霉囚、 技術服務。 應用服務與中臺服務都以微服務架構實現匕积。
- 技術服務又分為PaaS層和IaaS層: PaaS層通過各項基礎中間件的能力向上層輸送搜索引擎盈罐、 分布式文件存儲榜跌、 分布式數據庫、 分布式緩存等能力盅粪; IaaS層向用戶提供基礎資源服務钓葫。
- 運營管理通過埋點技術、 A/B測試技術票顾、 大數據技術來進行數據采集分析和業(yè)務試錯础浮, 并通過計算結果來指導業(yè)務工作。
-
運維支撐將從底層對所有服務做支撐奠骄。 運維體系通過對基礎設施的監(jiān)控豆同、 服務升降級等措施來確保系統(tǒng)的容災能力與穩(wěn)定性。
( 3) 中臺核心數據流規(guī)劃
為了簡化業(yè)務流程含鳞, 根據前期的業(yè)務分析影锈, 結合0級架構的設計, 我們可規(guī)劃出企業(yè)的業(yè)務數據流(以房屋租賃行業(yè)為例民晒, 多業(yè)態(tài)) 精居, 如下圖所示:
- 客戶中心承接前臺應用租房、 買房客戶的注冊信息潜必; 對于集團多業(yè)態(tài)的業(yè)務特點而言, 經紀人沃但、 物管人員磁滚、 企業(yè)員工都是企業(yè)客戶, 都應該進行精細化管理宵晚。 客戶中心為統(tǒng)一認證提供賬號垂攘、 密碼的驗證, 為各應用提供客戶的全局唯一標識淤刃。
- 產品中心接收來自 ERP的工程域樓盤信息晒他、 員工錄入或經紀人提供的可租樓盤營銷信息, 形成每一間房的完整且統(tǒng)一的檔案逸贾。 為前臺各應用提供全方位的樓盤信息陨仅, 包括工程信息、 營銷文案信息和房間信息铝侵。
- 交易中心接收來自 WMS的庫存信息灼伤, 完成購房訂單的生成、 在線租房的交易等業(yè)務活動咪鲜。 訂單生成后狐赡, 根據訂單中的商品向WMS發(fā)起發(fā)貨指令。
3.組件建模
( 1) 產品設計
產品設計是在業(yè)務頂層設計的指導下疟丙, 逐層往下抽象的過程颖侄, 主要是將業(yè)務調研的成果轉化為產品原型和需求規(guī)格說明書(主要由業(yè)務場景鸟雏、 業(yè)務流程構成) 。
- 中臺產品的詳細設計需要以面向中心為指導思想览祖。 不僅需要設計出應用需要實現的功能孝鹊, 更重要的是要將需要中心支撐的功能明確標識出來, 歸到中心的待實現列表里穴墅。 這樣技術工程師在領域建模階段才有具體和明確的輸入惶室。
-
建設中臺的核心目 的不是為了共享, 共享只是中臺的特性玄货。 中臺是為了完成業(yè)務的核心運行機制皇钞,前臺提供業(yè)務能力基礎的系統(tǒng)。
( 2) 組件模型設計
組件模型設計承接0級架構設計松捉, 是對中心內容的展開夹界。 通過對中心功能的分析和對中心業(yè)務實體的抽象, 將具有較強依賴關系的業(yè)務實體聚合為一個組件隘世, 或者將具有相同主題的業(yè)務功能聚合為一個業(yè)務組件可柿。 最后以結構化的形式聚合這些組件, 構成中心丙者。
如何判斷組件模型是否合理呢复斥? 是否很好地支持業(yè)務流程、 業(yè)務場景械媒、 復雜的業(yè)務規(guī)則是衡量組件模型優(yōu)劣的標準目锭。 我們可以通過窮舉邊界業(yè)務場景的方法, 來反證組件模型設計是否合理纷捞。
最后需要強調一點痢虹, 組件是可以獨立為微服務的, 只要符合微服務的條件主儡, 就可以獨立奖唯。 但是在實踐過程中, 如果微服務承載的業(yè)務規(guī)模不大糜值, 獨立帶來的業(yè)務價值不高丰捷, 反而會增加運維成本。
( 3) 1級架構設計
組件模型設計完成后臀玄, 需要將模型轉化為應用架構瓢阴。 這里的應用架構是指中心內部的應用架構, 我們稱為1級架構健无。 1級架構是以組件為最小單位設計的功能層級的架構荣恐。 1級的功能架構是必不可少的, 它指導著我們的設計和開發(fā); 技術層級的1級架構可視情況而定叠穆, 如果技術內容比較復雜則需要輸出少漆。
( 4) 關鍵交互圖設計
前面已經完成了 0級和1級的架構設計, 有什么方法能證明設計是否可以滿足實際業(yè)務場景的需要嗎硼被? 可以通過實現業(yè)務場景的動態(tài)交互圖示损, 來反向論證設計的合理性。 如何判斷動態(tài)交互圖是否合理呢嚷硫? 根據業(yè)務邏輯是否清晰检访、 流程是否簡潔、 客戶交互是否高效來判斷仔掸。
如果設計出的交互圖不合理脆贵, 那就說明0級或1級架構存在設計不合理的問題。 另外起暮, 通過交互圖還可以較好地將設計思想傳遞給開發(fā)團隊卖氨。
4.持續(xù)交付
我們主張采用敏捷的方法進行開發(fā)交付, 將最終目 標拆解為多個小目 標负懦, 逐個完成筒捺。 同時又將每個小目 標拆為多個子項目 , 每個小團隊各自 負責一個子項目 纸厉, 所有團隊并行開發(fā)系吭, 協(xié)同向前推進。
( 1) 迭代規(guī)劃
將項目的最終目 標拆分為幾個階段性小目 標颗品, 每個小目 標都能上線交付村斟。 這里強調一下, 每個小目標都是一個閉環(huán)抛猫, 是一個端到端可驗證的交付物。 在這個階段孩灯, 需要定義好可交付的標準闺金, 而不是開發(fā)人員常說的開發(fā)完成, 我們主張是集成部署驗證后峰档, 才能算作達到可交付的標準败匹。
( 2) 需求反講開發(fā)
任務確認后, 要求開發(fā)人員反講需求讥巡, 并給出對應的技術解決方案掀亩。 團隊討論通過后, 進行開發(fā)欢顷。
( 3) 持續(xù)集成交付
敏捷方法強調開發(fā)完成的代碼能夠立即提交槽棍, 自動構建測試, 強調立刻處理代碼沖突并驗證。 驗證的過程強調自 動化測試炼七, 對可能出現的問題進行預警反饋缆巧。 集成測試通過后, 能夠自 動將代碼部署到類生產環(huán)境中豌拙, 交由用戶和質量保障人員驗證陕悬。 這里要強調的是, 保障代碼的每一次改動都能在任何時候部署到環(huán)境中按傅。( 4) 回顧總結調整
在每一次迭代完成后捉超, 團隊及時組織召開總結會議。 回顧本次迭代在技術唯绍、 組織拼岳、 溝通方面表現優(yōu)秀的成員, 學習先進的技術和方法推捐。 總結錯誤和阻塞的問題裂问, 針對性提出改正的措施, 并在下一次迭代開始前牛柒, 做好對應的調整和準備堪簿。
5.持續(xù)運營
項目上線后, 只是產出業(yè)務價值的開始皮壁。 數字中臺需要在持續(xù)不斷的運營中椭更, 不斷沉淀和發(fā)展。 能力會逐步增強和擴展蛾魄, 模型會逐步調整和完善虑瀑。
( 1) 業(yè)務運營
通過數字中臺的能力, 我們可以調優(yōu)傳統(tǒng)的業(yè)務流程或者嘗試新的業(yè)務場景滴须, 并且反哺數字中臺舌狗。
( 2) 內容運營
內容運營主要是指通過企業(yè)自 營渠道、 第三方流媒體等電子渠道來建立與客戶的連接扔水。 連接內容包括向客戶推送企業(yè)新品介紹痛侍、 促銷活動宣傳、 企業(yè)動態(tài)等魔市。 數字中臺完成內容管理主届、 推送邏輯管理。
( 3) 技術運營
為了更好地發(fā)揮數字中臺的作用待德, 需要支持靈活的業(yè)務運營和內容運營君丁。 因此, 數字中臺需要不斷運用技術椊埽或反復調整技術參數來適配绘闷, 常見的有A/B測試技術的使用和策略調整橡庞, 以及彈性伸縮技術、限流降級技術的使用等簸喂。 這些內容都屬于技術運營的范疇毙死。
( 4) 數據運營
在線業(yè)務需要數據中臺的反饋和指導, 因此數據中臺需要對業(yè)務數據進行分析和挖掘喻鳄。 而分析的維度和挖掘的算法需要不斷地補充調整以及優(yōu)化扼倘, 數據運營則完成這些調整和優(yōu)化任務。
參考
《中臺戰(zhàn)略》