-
三維技術架構
- 運行
- 分析
- 控制
-
十個步驟
-
場景分解
-
四層環境
- 用戶、前端、後端、外部
-
八個象限
- 操作、資料
-
資料建模
- 找出資料和資料之間的關係
- 針對資料進行建模
-
一致性的資料聚合
- 對資料模型做聚合體設計
-
DDD的Aggregate 原則
- Aggregate Root 的 Entity 必須要在 Bounded Context 中有唯一標示性,它的 ID 不能與其他 Aggregate Root 重複
- Aggregate Root 負責檢查邊界內所有固定規則
- Aggregate 外的物件不能引用除了 Aggregate Root 之外的任合內部物件
- 根據上一條規則,只有 Aggregate Root 才能直接透過資料庫查詢來獲取。內部的其他物件都要透過 Aggregate Root 才能取得
- Aggregate 內部物件可以引用其他 Aggregate Root,但僅能引用該 Aggregate Root 的 ID
- 刪除操作必須一次刪除 Aggregate 邊界內的所有物件
- 當提交對 Aggregate 內部的任何物件的修改時,整個 Aggregate 的固定規則都要被滿足,意指一次就要存整個 Aggregate 進去
-
X軸(業務)分解
- 「前端」分解為UI和App兩層
- 「後端」分解為API、服務、SPI三層
-
Y軸(技術)分解
- 把前一步驟的五層,各自獨立分解為業務邏輯層、技術API層、技術服務層、技術SPI層
-
處理一致性失敗
- 當微服務間資料一致性出問題,可以先利用「沖正」的方式來處理,如果「沖正」失敗,人為介入處理
- 同時考慮這些後續處理的比例和成本是否過高
-
設計訊息瀑布
- 微服務之間是透過訊息溝通的,訊息量可能非常大,甚至衝擊系統穩定,透過訊息瀑布機制來消除
- 訊息瀑布中的訊息不要逆流
-
設計業務大數據
- 業務數據,在設計微服務時,要同時設想要如何運用這些數據,找出其中業務價值
-
Z軸(維運)分解
- 分解出來的業務(5)x技術(4)共20 個象限的微服務,在各自分解為程式、容器平台、作業系統、電腦、網路
-
設計維運大數據
- 在設計微服務的時候,同步設想要如何運用這些數據,找出其中的維運價值