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