能顯示業務目標的DDD微服務架構圖 -Aleix
從我職業生涯的一開始,我就一直在分析和繪製架構圖。
他們中的大多數人關注正在使用的技術以及它們如何相互通訊。他們中很少有共同的商業目的。
您有多少次需要在檢視圖表時與某人交談以詢問該服務的作用?那一個呢?
在這篇文章中,我分享了一個顯示元素業務目的的架構圖。
在下圖中,我展示了您今天在公司中可能擁有的合理圖表。
我敢肯定,您將擁有更多人類可讀的名稱,而不是將名稱作為服務 A的框,而且,如果您足夠幸運,這些名稱將是與業務相關的名稱,例如使用者、賬單、帳戶,信用卡,……
看著這張圖,你能說:
- 哪個服務是核心的,哪個是支援性的?
- 每項服務是什麼?
- 為什麼他們需要互相交談?
- 它們是同步的還是非同步的?
- 您需要了解每項服務之間使用的每項技術。
這張圖著重於兩件事:
- 資訊流。
- 支援資訊流的技術。
為什麼我們將重點放在正在使用的技術上,而不是放在它們解決什麼問題上?
讓我們從為服務新增意義開始,這樣才能表達其能解決什麼問題
領域驅動設計分享了我們擁有三種型別的領域:
- 核心領域:這是你在一個單一的、定義良好的領域模型上進行戰略投資的地方,投入大量資源在明確的限界上下文中精心打造你的通用語言。
- 支援子域:這種建模情況需要定製開發,因為不存在現成的解決方案。
- 通用子域:這種解決方案可能是現成的。你不想在這裡進行那種投資。
在圖中注意到每個服務的域型別不是很酷嗎?
突然之間,我們可以看到哪些服務比其他服務更重要。這可能比其他人發展得更快。
但是他們做什麼呢?他們的用例是什麼?他們為什麼互相呼叫?
我們需要有足夠的資訊來了解他們的用例。
當我檢視圖表時,我想知道:
- 哪些是主要實體。
- 哪些是主要用例。
- 服務如何與它們互動。同步或非同步。
- 它們發出哪些事件,哪些服務監聽它們。
要將此資訊新增到圖中,我們可以使用 4 個主要框:
- API/入口點。
- 用例。
- 實體。
- 事件。
他們如何溝通可以用實線(同步呼叫)或虛線(非同步所有)箭頭標記。
讓我們看看我們的圖表如何根據這些資訊發展。
現在,我們可以檢視圖表並瞭解每個服務的職責和業務目的。
- 該圖需要顯示高階概述。
- 如果我們有太多的資訊,它就會由於資訊溢位而失去目的。
- 我知道這張圖不適合色盲。請在圖表中新增註釋,以便對您的同事更具包容性。
相關文章
- 微服務業務架構的探索微服務架構
- 教你玩轉微服務--基於DDD的微服務架構落地實踐之路微服務架構
- 微服務 架構圖 參考微服務架構
- 微服務2:微服務全景架構微服務架構
- 金融行業微服務架構解析行業微服務架構
- 微服務架構:構建PHP微服務生態微服務架構PHP
- [雲原生微服務架構](十)微服務架構的基礎知識微服務架構
- 微服務學習與思考(03):微服務總體架構圖解微服務架構圖解
- 微服務架構初探微服務架構
- 微服務 dubbospring 架構微服務Spring架構
- 單體架構&微服務架構&中臺服務架構架構微服務
- 微服務架構(一):什麼是微服務微服務架構
- Spring Cloud雲服務架構 - 企業分散式微服務雲架構構建SpringCloud架構分散式微服務
- 微服務架構—服務降級微服務架構
- 按照業務領域畫資料架構圖 業務架構 資料架構架構
- 《微服務架構設計模式》讀書筆記 | 第5章 微服務架構中的業務邏輯設計微服務架構設計模式筆記
- 微服務架構和設計模式 - DZone微服務微服務架構設計模式
- SpringCloud(1) ——回顧微服務和微服務架構SpringGCCloud微服務架構
- 架構演進之「微服務架構」架構微服務
- 架構之:微服務架構漫談架構微服務
- SOA架構和微服務架構的區別架構微服務
- 整合spring cloud雲服務架構 - 企業分散式微服務雲架構構建SpringCloud架構分散式微服務
- 微服務核心架構梳理微服務架構
- 微服務架構初識微服務架構
- 微服務架構詳談微服務架構
- 微服務與架構師微服務架構
- 聊聊微服務架構思想微服務架構
- 趣頭條-誠招微服務架構/業務架構/中介軟體架構/演算法微服務架構演算法
- 微服務架構中的分散式事務全面詳解 -DZone微服務微服務架構分散式
- 【分散式微服務企業快速架構】SpringCloud分散式、微服務、雲架構快速開發平臺分散式微服務架構SpringGCCloud
- 微服務架構之「 服務註冊 」微服務架構
- 微服務架構中的服務發現策略微服務架構
- 如何拆分你的微服務架構?微服務架構
- 微服務下的資料架構微服務架構
- 微服務架構在阿里的演化微服務架構阿里
- C#中的微服務架構C#微服務架構
- 微服務開發攻略之淺析微服務架構微服務架構
- 一張圖瞭解Spring Cloud微服務架構SpringCloud微服務架構