系统架构师、数据架构师、基础设施架构师、应用架构师
系統架構師、數據架構師、基礎設施架構師、應用架構師
架構師修煉之道(二)——架構?設計?架構師?
Part.1 什么是架構?
簡單來說,架構就是一個考察對象的內部結構。
這個內部結構是【以組件為視角】來進行考慮的,架構的含義包括了【組件以及組件之間的關系】。
另一方面,架構的含義還包括考察對象內部的【關鍵機制】。
什么是組件?
組件通常是開發或部署的一個單元。
根據考察對象的大小,組件的粒度也有所區別。
如我們現在常說的大數據平臺,其系統內部由很多子系統組成,如權限系統、數據采集系統、數據處理系統、數據分析系統、數據存儲系統、數據管理系統、數據展示系統,這一個個子系統便可稱為大數據平臺的組件。
而將組件視角再下沉,如數據采集系統中又分為爬蟲組件、數據清洗轉換組件,其中又可能用到了橫貫整個大數據平臺的日志管理組件。
這是開發系統內部的一個結構,而從部署上來說,大數據平臺一般是由3臺及以上的多點系統部署而組成。
在對內或對外開放大數據計算資源時,又由權限系統進行資源分配。其中的單例大數據平臺又可以作為一個單獨的組件。
組件與組件間的關系
這是架構要考慮的重要因素。
來自系統外部的請求通常是由多個組件協作完成的。
系統內部的結構是否良好,很大程度上取決于組件之間的關系。
關鍵機制
所謂關鍵機制,是指影響到系統可用性、安全性、性能等重要非功能特性的一些技術方案,如技術選型、關鍵設計、處理流程等等。
Part.2 什么是架構設計?
那什么是架構設計?
我們先看這樣一段定義,是指【以需求分析為輸入,通過架構師的分析,產出架構設計資料,用于指導后續概要設計、詳細設計、開發、測試、部署、上線運行】。
架構設計是不是就是概要設計?
架構設計是以組件視角來思考系統如何分解,并定義分解出來的組件之間的關系。
而概要設計則是從功能模塊視角對系統進行分解,并定義這些功能模塊之間的關系。
所有的功能模塊都要有歸屬的組件,因此應先做架構設計,再做概要設計。
它與代碼設計又有什么區別?
代碼設計有一張表的模型就可以開始做了,類似于在一面墻上定位一幅畫,掛歪了再修正很容易。
架構設計則是造一個房子。移動一幅畫很容易,移動一面墻則是一個完全不同性質的事了。
三個磚瓦匠的故事想必不少人都聽過。
有一個人去采訪三個磚瓦匠,他問:“你們是在做什么?”
第一個人答:“砌磚,混口飯吃”。
第二個人答:“砌墻啊,賺錢”。
第三個人答:“蓋房子,建設漂亮的大樓”。
做架構設計便是蓋樓。
開發一間房子,房子中有各種各樣的組件,畫好房間的圖紙,將窗戶、梁柱、墻、水電燃氣通道等按照既定的位置組裝起來。就如我們的一個單例系統。這已經可以說是一次架構設計了。
而蓋樓,則需要將組件的視角再上升一層。每個房子都是一個組件,要考慮地基、水管連接、上下層承重。
甚至再上升到小區,我們還要考慮綠化、容積、車位等等。
架構設計是不容易更改的,猶如地基,想蓋更高的樓,就要打更深的地基,所以在設計時,一定要考慮可擴展、可兼容性。
但是,架構真的是設計出來的嗎?我們回頭再說說,架構的設計與演進之旅。
而誰來做這些架構設計的事呢?接下來說說什么是架構師吧。
Part3.誰能稱為架構師?
架構師就是在其領域內能夠全局把握的人,能夠給出其負責范圍內的總體設計,并能解決關鍵問題、指導其他人員落實設計。
架構師又分為:
系統架構師、數據架構師、基礎設施架構師、應用架構師。
系統架構師是系統或產品線的負責人,是一個負責理解和管理并最終確認和評估非功能性系統需求(性能、安全、可用性、可擴展性、可移植性),給出開發規范,搭建系統實現的核心架構,對整個軟件架構、關鍵構件、接口進行總體設計并澄清關鍵技術的高級技術人員。
【在沒有架構師這個崗位的公司,一般會由項目經理或技術經理、研發負責人等人員負責其全部或部分職責。】
架構師也都不是憑空而來的,一般會由團隊中的【技術高手】進化而來。
在《架構師修煉之道(一)技術高手的困惑與發展》中,我們也說了技術人的幾個發展方向。
那么架構師應該有些什么具體的能力呢?
架構師應該有什么能力呢?
認清自己,認識崗位,理解工作內容。
架構師應當對架構師崗位有著清晰的認識,對架構工作的內容有著深刻的理解。
知道自己能做什么。
知道自己在做什么。
知道自己怎么做。
承上啟下,掌控全局。
架構設計上接需求分析、下接概要設計,是整個軟件工程中非常重要的一環,將決定整個系統實現的質量,架構設計對后續所有工程環節都有影響。
輸入需求,輸出設計。
運用規范的架構設計方法論,產出標準的架構設計資料。不要隨意發揮,弄一些毫無章法的產物出來。
如果公司當前沒有相關標準,可以自行設計一套,然后要求大家共同遵守。
知識廣泛,兼具深度。
需要具備廣泛的知識面,并在某些方面具有一定深度。例如數據庫設計、多線程并發、負載均衡等。
對系統相關的技術棧有全面清晰的認識,并可以解決疑難雜癥或給出藥方(方向)。
架構復用。
掌握常見的架構模式,在遇到類似問題時,可直接復用。
軟技能。
架構所涉及的方方面面較多,因此需要有良好的溝通能力。
keep learning,保持學習,飽含熱情。
技術不斷發展,業務不斷變化,需要保持學習熱情,立于不敗之地。
Part4.總結
我們現在對以上的架構部分簡單做一個總結:一個系統的架構就是指在系統運行期間的實際內部架構,它是各種組件的一個組成,架構設計就是對這種組件間關系的書面描述,而架構師就是負責描述這種關系的人。
怎樣成為一個優秀的架構師?
我個人的定義是:格局要大,做事要沉。視野要遠,腳下要實。
具體的做法便是在做決策的時候,不只是做一個技術架構,需要關心業務實際要解決的問題,但是又不能頭疼醫頭腳疼醫腳,眼光要關注未來。
在成本、技術實現、未來演化之間,我們需要不斷做平衡。
最后,在個人而言,我們應當對于新生的事務應當有所了解,對于需要用到的新技術能隨時沉下心去鉆研,對接觸的業務應能抓住核心目標,強力推進系統的落地與演化。
總結
以上是生活随笔為你收集整理的系统架构师、数据架构师、基础设施架构师、应用架构师的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mhxx防具幻化解锁条件
- 下一篇: GM9 tile empty issue