架構本質
架構就在生活中
- 食堂餐盤迴收區 - 緩衝
雜亂的回收區,人一多就混亂
有置物架的回收區,能夠有序緩衝
- 地鐵安檢入口 - 限流
人一多的地鐵入口會欄杆繞行、分段限流、分批放行
- 空氣開關 - 熔斷
發生短路、過流空氣開關能為了安全自動斷電
什麼是架構
建築架構、音樂架構、作戰部署、組織架構
架構就是一組人為的結構化的設計
TOGAF - The Open Group Architecture Framework 開放組體系結構框架
業務需求驅動架構的產生
架構支撐業務需求的發展
BA Business Architecture 業務架構
解釋:who誰?what幹什麼?how怎麼做?
內容:
- 組織架構 + 業務能力 + 業務流
-
頂層設計(價值鏈)、戰略設計(領域劃分)、戰術設計(領域建模)
- “頂層設計”:本義是統籌考慮項目各層次和各要素,追根溯源,統攬全局,在最高層次上尋求問題的解決之道。正所謂“不謀萬世者,不足謀一時;不謀全局者,不足謀一域。
- “戰略設計”:一種針對系統整體的建模和設計決策。這樣的決策影響整個項目,而且必須由團隊來制定。在限界上下文之間通信;多說問題,少說方案;業務梳理和抽象;拆解難題,區別對待;
- “戰術設計”:創建有效的領域模型;持續抽象,忽略技術細節;領域建模;業務服務識別,API能力識別;實物模型、邏輯模型、數學模型;事件風暴、提取領域對象、尋找聚合、劃分限界上下文
宏觀到微觀(從戰略到戰術),對問題進行分層和設計,這兩個階段中,忽略一切技術實現細節,防止技術實現細節干擾”領域驅動“。
AA Applications Architecture 應用架構
要那些系統?
應用劃分(識別應用、組件分配、拆分優化)、應用集成(依賴分析、交互設計、接口設計)、應用管理(接口治理、系統優化、系統演變)
- 應用架構不是某個應用的架構,不關心應用內部架構,只識別業務需要哪些系統支撐,系統交互是什麼?
- 應用架構不關心應用的實現技術
DA Data Architecture 數據架構
用到那些數據?怎麼組織?
用到的數據(數據源、數據建模、數據分佈、數據資產)
邏輯設計(數據模型、數據流轉)、物理設計(數據存儲、數據分佈)、數據管理(數據標準、數據質量、數據安全)
TA Technology Architecture 技術架構
用到那些技術?
技術選型(技術框架、技術組件、物理選型)、技術設計(系統設計、平臺設計、基礎設施)、技術管理(技術大圖、選型標準、技術案例)
分段式協作設計(從問題觸發,逐級抽象,層層深入和細化)
- 戰略設計階段:對業務問題進行宏觀分析和設計
- 戰術設計階段:根據戰略設計分析結構進行細化和建模
- 技術實現階段:根據實現需要進行細化分析和涉及(API詳細設計、UML設計、數據庫設計、運維與部署方案......)
方法論
業務架構:
- 頂層架構BMG、領域架構UDD(測試驅動)/DDD(領域驅動)/4色建模 / 領域分層
應用架構:
- 4C(上下文、容器圖、組件圖、代碼圖)
數據架構:DAMA
技術架構:六要素方法論
架構表達:
- 一動一靜 業務能力地圖;一個表達有什麼,一個表達怎麼做
- 4+1 (場景視圖、邏輯視圖、物理視圖、處理流程圖、開發視圖)
- C4(上下文(Context)、容器(Container)、組件(Component)和代碼(Code))
系統架構方法論
單體、SOA、MSA、Server Mesh、Server Less