在上一篇文章中,概要講述了架構師在實際工作中到底要做些什么,以及要匹配具備什么樣的能力。
接下來,我們逐步展開來講述,從零開始,逐步培養架構設計思維、講解架構設計技術、掌握架構設計方法、循序漸進進行架構設計實戰訓練,從根本上提升能力,早日成長成為真正的架構師。
先來聊聊兩個基本的概念:什么是架構,以及架構的分類。
一:什么是架構
關於架構的定義,業界有太多不同的說法,但大同小異,本質趨同,只不過側重各有不同,這里選取IEEE(電氣和電子工程師協會)的定義:
架構描述了一個系統的基本組織結構,包含了組成系統的組件、組件之間的關系、組件與環境之間的關系,以及指導上述內容進行設計和演化的原則。
1:系統
組織起來完成一系列功能的組件集
2:組件
組件是一個系統模塊化的一部分,是一系列功能集的封裝體
3:環境
環境或上下文,指的是會對這個系統的開發、運行等造成影響的環境和設置,比如:政策法規、軟硬件環境等,是一些軟件系統之外的因素。
二:對架構的基本認識
- 架構定義了系統結構,尤其是高層結構
- 架構定義了行為
這里的行為主要是一些交互行為,比如:組件之間的交互,組件和環境之間的交互等
- 架構關注系統的主要元素
主要元素,比如從用戶角度來看,用戶關注的一些重點、難點功能;或者是有特色亮點的功能。
另外就是一些解決重要特性的元素,比如:影響高性能、高可用的一些因素。
這樣的一些元素是做架構設計特別關注的主要元素。
- 架構要平衡系統利益相關者的需要
利益相關者:指的是對這個系統感興趣,或者是與這個系統有關系的人、團隊或組織。
通常來說,不同的利益相關者,他的關注點是不一樣的,有些關注點是沖突的,甚至是矛盾的,架構師就需要平衡這些關注點。
- 架構基於合理的證據使決策具體化
架構設計不是拍腦門,是基於一些合理的證據的,比如:同類產品的參考,以前設計的經驗,或者是一些設計Demo的實際測試,證明這樣設計是可行的。
- 架構會受到環境的影響
比如,架構會受到法律法規的要求、行業標准的約束等
- 架構會影響開發團隊的結構
比如,現在的架構決定采用微服務的架構,那么開發團隊,就需要按照匹配微服務的方式來建設和組織
三:架構分類
- 沒有統一的標准
有按實現層次划分的、有按關注方向划分的、有按軟工階段划分的、有按視圖類型划分的、有按技術實現風格划分的……等等。
就是從不同的角度、不同的側重點,對架構設計這件事進行划分,當然有很多是交叉重疊的。
- 按實現層次划分
移動架構
前端架構
系統架構(應用架構,技術架構)
平台架構
應用集成架構
數據庫架構
存儲架構
網絡架構
……
- 按關注方向划分
業務架構
應用架構
技術架構
開發架構
數據庫架構
存儲架構
安全架構
部署架構
開放架構(OpenAPI架構)
……
- 按軟工階段划分
解決方案架構
業務架構
系統架構
概念架構
細化架構
平台架構
開發架構
部署架構
運維架構
……
- 按視圖類型划分
邏輯架構
數據架構
開發架構
運行架構
物理架構
……
- 按技術實現風格划分
分布式架構
微服務架構
分層架構
事件驅動架構
微內核架構
SOA架構
響應式架構
……
這些都是一些基本的概念,作為一個架構師,還是要有一個清晰的認知的。從零開始,逐步培養架構設計思維嘛!
列位看官莫急,更多精彩內容,隨后會一一呈上!