如何畫架構圖之C4模型畫法
之前一直看别人畫架構圖,自己畫的很爛,最近看了一點點資料,整理了下,分享出來,希望對别人有幫助,如果有不對的地方歡迎指正。
C4架構圖要解答的問題:
1,為哪些使用者提供什麼服務? 語境圖
2,完成這個系統使用了哪些服務?容器圖
3,每一個服務是由哪些元件實作的 元件圖
4,實作這個元件需要完成什麼?類圖
語境圖:
意圖:
我們建構的軟體系統是什麼?
誰在使用它
如何融入現有的it系統
結構:
中間畫一個簡單的框圖代表你的系統,周圍是和它互相作用的系統。不去關注細節。
動機:
使語境更明确
從更高的層次展示了正在向已有的IT環境中添加了什麼?
技術和非技術可以當做讨論起點的一種更高層次圖示。
牽涉到了解系統間接口的問題時,為你識别可能需要溝通的人提供一個起點。
舉例:

容器圖
意圖:
幫助解答以下問題:
軟體系統的整體形态
高層次的技術決策
職責在系統如何分布
容器之間如何互相交流
為了實作特性,作為一個開發者,我需要在哪裡寫代碼
結構:
畫一個簡單的框圖展示你的關鍵技術選擇。
容器:
Web伺服器
應用伺服器
企業服務總線和業務流程編排引擎
sql資料庫
nosql資料庫
其他存儲系統
檔案系統
windows服務
獨立/控制台應用程式
web浏覽器
cron或其他計劃工作容器
容器,指的是組成軟體系統的邏輯上的可執行檔案或過程。每一個容器都可以指定以下 幾項:名稱(邏輯名稱,如web伺服器,資料庫),技術選型,職責。
互動:
互動的目的
通信方法
通信方式
協定和端口号
系統邊界
需要有系統邊界
示例圖:
元件圖
意圖:
解釋以下問題:
系統由哪裡元件組成
高層次上,系統如何工作是否清晰
所有元件/服務是否在一個容器中?
結構:
當人們被要求繪制架構圖時,通常會繪制一張展示組成軟體系統的邏輯元件的圖。
除了我們一次隻想看一個容器中駐留的元件。也就是說元件圖就是普遍意義上的架構圖。
元件:
一個金融系統風險的解決方案包含的元件:
貿易資料系統導入器
參考資料系統導入器
風險電腦
認證服務
系統驅動者,協調者
審計元件
通知元件
監測服務等
元件是系統的粗粒度結構單元,通過一個或者多個元件實作一個特性。每一個元件,都可以指定:名稱,技術,職責。
互動:
互動的目的
通信方式
示例圖:
基礎設施架構
提供軟體架構和基礎設定架構之間映射的資訊。