中台架构与实现(基于DDD和微服务)-读书笔记1
前緒
一、DDD(Domain?Driven?Design,領域驅動設計)、微服務、中臺
? ? ? ?中臺需要將通用的、可復用的業務能力沉淀到中臺,實現企業級能力的復用。企業在進行中臺建設時首先要從業務領域出發,考慮如何按照可復用的原則進行領域分解,完成中臺領域建模。中臺本質是企業的業務建模,而微服務則是中臺領域建模系統落地時的一種架構實現方式。
? ? ? ?DDD首先從業務領域入手,劃分業務領域邊界,采用事件風暴工作坊方法,分析并提取業務場景中的實體、值對象、聚合根、聚合、領域事件等領域對象,根據界限上下文邊界構建領域模型,將領域模型作為微服務設計的輸入,進而完成微服務詳細設計。用DDD方法設計的微服務,業務和應用邊界清晰,符合“高內聚、低耦合”的設計原則,適應業務模型變化和服務架構演進。DDD包含戰略設計和戰術設計兩個階段。通過戰略設計可完成中臺業務邊界劃分和領域建模,然后將領域建模作為戰術設計的輸入,完成微服務設計。
? ? ? ?微服務與DDD的共生關系包含兩方面。一方面,微服務提供將應用進行服務化拆分,通過業務領域邊界實現應用服務邊界的劃分;另一方面,DDD提供了一種基于業務限界上下文邊界來實現微服務“高內聚、低耦合”的服務建設方法。將兩者合理搭配使用,研發組織科輕松實現面向服務的設計,享受持續交付與架構演進。
? ? ? ?DDD、微服務與中臺都強調從業務領域出發。DDD可同時指導中臺領域建模和微服務設計,是中臺領域建模和微服務設計的最佳指導方法,而微服務是中臺的最佳技術實踐。三者為鐵三角關系。三者結合,從企業領域到子域的戰略設計、宏觀業務領域邊界劃分到微服務內底層領域對象的逐級細化設計,降低軟件產品建設的復雜度,實現從宏觀戰略到技術實現細節的無縫銜接。
二、傳統企業數字化轉型的問題
1、技術體系落后
? ? ? ?傳統企業大多采用集中式架構,技術體系相對落后,可擴展能力不強。集中式架構過于依賴設備資源,基于穩定和性能考慮,大多運行在大型機或小型機上。同時,傳統企業多采用“兩地三中心”容災模式,高可用能力不強,難以實現多中心多活,容易帶來資源浪費。在運維能力上,過于依賴人工,難以實現自動化運維,面對突發高配訪問的業務場景,不能實現自動彈性伸縮。
2、單體架構問題
? ? ? ?集中式單體應用會將多個功能放到一個應用中,經過日積月累,應用會變得龐大而復雜。企業難以嘗試新的技術,以至于技術能力一直停滯不前,無法及時完成技術升級,導致技術債越積越多。
3、研發與運維能力落后問題
? ? ? ?一般單體應用通常采用傳統的瀑布開發模式,弊端在于開發和測試周期耗時長,交付質量和周期難以保證,不能實現持續快速交付,對業務需求和市場的響應能力相對較慢,難以實現敏捷開發。云計算平臺和自動化運維工具對單體應用的生態支持有限,應用的部署和運維過程相對復雜。當應用出現問題時,基本靠人肉排查,且研發團隊與運維團隊難以快速定位和協同解決問題。
4、IT能力重復建設問題
? ? ? ? 再集團內部,由于缺少IT建設總體規劃,不同子公司之間的公共業務能力的重復建設問題可能會更加突出。要解決IT重復建設問題,就要從提升技術能力和重構業務模型入手,實現企業級業務能力的復用,這也是傳統企業中臺數字化轉型亟需重點解決的問題。
三、AKF可擴展能力立方體模型
? ? ? ?AKF可擴展能力立方體模型由X、Y、Z三個軸,分別從三個維度來定義軟件產品的擴展能力。三個維度相輔相成,涵蓋業務和技術的多個領域。通過克隆應用和數據庫實例,可提高應用和數據庫業務承載容量,對應X軸擴展能力。通過劃分業務職能邊界建立領域模型,以拆分應用和設計微服務,可以提高業務的復用和擴展能力,對應Y軸擴展能力。通過分片策略將數據集拆分為多個數據子集或業務單元,可提高數據的擴展能力,對應Z軸擴展能力。
1、X軸:容量擴展能力
? ? ? ?X軸關注無差別的服務和數據的復制,解決應用和數據庫容量水平擴容問題。當應用或數據庫實例負載過重時,可復制應用或數據實例實現擴容。擴容后,任務可通過負載均衡均勻分布到不同應用服務或數據實例,所有實例都可無差異地完成任務。在分布式架構下,X軸的典型實踐案例主要體現在應用和數據庫實例的水平擴展能力上。
2、Y軸:業務擴展能力
? ? ? ?Y軸主要用于劃分業務和應用邊界,解決業務能力復用的問題。Y軸的典型實踐案例是從單體向微服務的演進。這個過程會有業務和應用邊界拆分的問題。DDD幫助完成應用的拆分和微服務的設計。會按照流程或功能邊界分解業務領域,根據業務上下文邊界,構建領域模型,并將其進行微服務設計的輸入。
3、Z軸:數據擴展能力
? ? ? ?Z軸關注數據的擴展能力,它按照業務類型或數據屬性進行數據分片。根據數據分片策略將數據集劃分為不同的數據子集,提升數據的擴展能力。數據庫水平切分是通過數據分片規劃將一個大的數據集切分為多個數據子集,并分布到不同的數據庫中,按照分片規則可路由到具體數據庫完成數據查詢等操作。單元化架構是按照業務特點或yoghurt需求進行數據分片,將一個數據集水平切分為多個數據子集,然后根據數據分片分別部署業務應用單元。業務應用單元包含若干依賴緊密的應用,應用在單元內可不依賴單元外的服務獨立完成單元內地業務全流程,以形成業務場景閉環。業務單元之間相互獨立、天然隔離。但業務需要擴容時,只需增加和部署新的業務單元與數據子集就可以很容易實現擴容,從而提高業務承載能力。
四、企業數字化轉型的重要關注點
? ? ? ?數字化轉型是企業能力全面體系提升的過程,遠不是升級幾個系統技術架構就能解決的事情。這種能力的提升是企業從技術、業務到組織能力的全面提升,需要從技術能力、業務能力和組織架構等多方面,分步驟、有計劃地統籌推進,從多個方面整體提升企業核心競爭力。
1、提升技術能力,完成從集中式架構向分布式架構的轉型
- 提升技術平臺能力
- 提升人員技能、知識和方法體系等方面鄧麗
- 打破傳統核心應用與移動互聯應用才有統一的技術壁壘,促進量大關鍵技術和業務體系的融合。
? ? ? ?技術鞥哪里提升了,傳統應用和移動互聯因公才有統一的基礎;應用統一了,才會有業務模型的統一;業務模型統一了,才能實現業務能力共享和復用,企業才會有實時中臺戰略的技術基礎。
2、降低應用建設復雜度,完成從單體到微服務的轉型
? ? ? ?微服務采用分治的策略,降低了應用建設復雜度,解決了單體應用建設過程中遇到的若干問題。從單體到微服務的轉型,對應AKF模型Y軸的業務擴展能力。“高內聚、低耦合”的可復用的業務模型和微服務,可更靈活地應對業務變化,更快地響應市場需求。微服務優勢:
- 業務職責單一,團隊規模較小,可更好地實施敏捷開發。
- 微服務軟件部署包較小,可更好地上云,實現應用彈性擴展能力,提高自動化的運維能力,更好地管理和利用好資源。
3、提升業務復用能力,從IT重復建設到中臺戰略
? ? ? ?實現企業級能力復用,降低IT重復建設。通過實施中臺戰略,重構企業業務模型,提升企業級業務的復用能力。在從單體應用向微服務轉型時,通過劃分業務邊界構建領域模型,將可復用的業務能力沉淀到中臺領域模型,建立企業級整理解決方案,實現業務和流程的組合、復用和融合。
4、提升移動運營能力,從傳統PC端向移動線上化轉型
? ? ? ?結合AI和大數據等技術應用,完成核心業務能力的移動線上化轉型,進而實現企業業務能力的無限延伸。在產品移動線上化后,企業可將能力延伸到客戶和前臺一線,這樣企業就具備了實施數字化轉型的前提和基礎。
5、提升企業組織能力,建立與中臺相適應的組織架構和方法體系
? ? ? ?建立與中臺建設、中臺運營和商業模式創新相適應的組織架構。在企業全院建立統一的中臺文化和方法體系,按照統一的標準和方法協同推進中臺建設。
總結
以上是生活随笔為你收集整理的中台架构与实现(基于DDD和微服务)-读书笔记1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Google Glass 初体验
- 下一篇: busybox源码介绍