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