在開始這個系列之前,讓我們來思考一個問題,什么是架構?當我們在談到架構的時候,我們指的到底是什么?很多人都嘗試給架構下一個定義,但是這些定義本身很難統一,結合我的理解,我認為架構的內涵包括以下內容:
既然有了架構,就應該可以判斷一個架構是好還是壞的,或者說哪方面好、哪方面壞;一個架構的衡量主要通過以下的系統特性來進行:
- 最高層次的系統分解
- 系統中難以改變的東西
- 架構包括組成部分和這些組成之間的交互
- 業務架構 - 關注組織(類如企業)的業務流程、業務域和業務組件
- 應用架構 - 業務架構中的流程和組件應該分成多少應用,應用之間如何集成和交互
- 數據架構 - 物理和邏輯數據的結構
- 技術架構 - 技術架構是應用架構的技術需求,包括如何進行純技術層面的分層,開發框架選擇,語言選擇,涉及到各自非功能性需求的技術點(安全,性能,日志,異常,緩存,消息,大數據量)等需要使用的關鍵技術
既然有了架構,就應該可以判斷一個架構是好還是壞的,或者說哪方面好、哪方面壞;一個架構的衡量主要通過以下的系統特性來進行:
- 系統高可用性
- 系統性能(包括響應時間、吞吐量等)
- 系統伸縮性
- 系統可擴展性
- 系統安全性