架構師的主要職責


技術進階之路

一篇文章了解架構師能力模型-mikechen的互聯網架構

上圖是一個完整的技術進階之路,今天我們重點是談架構師,我先從架構師進階之路談起,然后我們一步步往里講,完整的剖析架構師能力模型。

架構師進階之路

1 架構師胚胎(程序員)

工作年限1-3年左右,掌握程序相關的基礎知識:語言編程開發、基本的數據結構、基本的算法掌握、對熟練使用常用的語言開發環境:java、c#、c++、go、groovy、php、python等相關的開發環境、基本的數據庫知識(還到不了性能調優)、基礎的設計模式(eg:工廠模式等 )、常用的通訊協議等。

2、架構師萌芽(高級程序員)

工作年限一般3-5年,如果你做研發超過了5年還是處於重復搬磚的節奏,還沒有考慮代碼效率以及避免重復造輪的情況,還不能算到高級。

這個階段需要掌握的知識,比如:掌握更多的設計模式、操作系統原理、分布式系統原理、常見的性能調優方案:數據庫端(事務超時、索引如何優化、高效sql等)、應用端、web端(靜態分離怎么做)等、高並發基礎場景..

3、架構師幼苗

工作超過5年,身經百戰的同時,至少必須參與個一個次大型項目,你還不能完全操盤一個大項目的架構設計,但至少對整個架構設計整體有一定的了解,比如:單點登錄、分布式緩存的場景、異步消息場景…典型的基礎架構設計怎么實現。以及從理論的角度,透徹領會應用設計模式、JVM的原理、listener、filter等為什么要這樣設計…了解技術的核心原理。

4、架構師

如果你經歷了上述3個步驟階段的項目操練,如果在這個階段,你能獨自帶隊操盤一個中型、大型項目的架構設計,並且從架構設計的角度:效率、可維護性、可擴展、容錯…能勝任這個項目並且成功上線,這是一個標志性的架構師節點,獨立勝任中、大型項目架構設計操盤手。

架構師再往上進階,就會涉及到上圖提到的技術總監以及CTO,如果有興趣的同學可以參考我之前寫的這篇文章一篇文章搞懂高級程序員、架構師、技術經理、技術總監、CTO,從薪資到技能要領的區別

備注:架構師並不只是技術進階的終點,還可以繼續往技術總監和CTO進階。

架構師完整能力模型

架構師的職責應該是立足於技術和業務之間的中間角色或者平衡點, 在針對業務深刻理解的基礎上,針對業務中存在諸多變數,挑選適合的技術架構和技術方案。

年薪百萬的架構師,基本屬於公司的首席架構師,需要包含兩塊能力,而不僅僅只是技術能力。

一篇文章了解架構師能力模型-mikechen的互聯網架構

這兩塊能力分別包含:技術能力和業務能力。

架構師技術能力

一篇文章了解架構師能力模型-mikechen的互聯網架構
分層的應用設計思想:SOA,事件驅動等。

分布式原理:CAP,最終一致性,冪等操作等

大型網絡應用結構

一篇文章了解架構師能力模型-mikechen的互聯網架構
消息中間件,分布式緩存,負載均衡,集群技術,數據同步等。

還有高可用,可容災分布式系統設計能力

容災系統,作為為計算機信息系統提供的一個能應付各種災難的環境,尤其是計算機病毒、掉電、網絡/通信失敗、硬件/軟件錯誤和人為操作錯誤等人為災難時,容災系統將保證用戶數據的安全性(數據容災),甚至,一個更加完善的容災系統,還能提供不間斷的應用服務(應用容災)。可以說,容災系統是數據存儲備份的最高層次。

例如,淘寶在早期就遇到過機房停電的情況,所以才促使了后來的機房容災的能力,保證服務穩定。尤其是當發生災難性事件並對IDC節點產生影響時,能夠具備節點級別的快速恢復能力,保障系統的持續可用。

去年攜程也遇見了一次幾乎一整天的宕機事故,后來發現是自動化部署的的腳本的問題,代碼重新部署,重新執行腳本,不斷把數據等等都刪除,這也算是人為事故中的經典案例。

還有大容量數據存儲和檢索系統設計能力、數據庫分區,NoSQL,搜索引擎、自動化部署、回滾機制等,以及監控系統等等,這些知識體系,敬請關注我后續的文章和課程。

架構師業務能力

技術架構的目的是為了服務好業務,技術離開了業務,就是空談。所以,對於好的架構師來講,需要對業務有本質的理解,技術再牛逼,解決不了業務的問題也是沒用的。所以一定要站在業務的角度去了解他們的需求,它到底是要並發高還是流量高,還是要分布式,還是要高可用。

一篇文章了解架構師能力模型-mikechen的互聯網架構

這就是業務分析能力

架構師需要學會基於自己的經驗知識進行分析,把業務語言轉換成產品語言、開發語言。這樣在跟產品、研發團隊的溝通中,才能完成信息的有效、高保真傳遞。當然,這就涉及到溝通能力,因為團隊協作需要良好的溝通。

開啟你的架構進階之旅

總之,要想成為優秀的架構師,需要時間實踐(提升技術能力),也需要不斷的深入業務分析(提升業務能力),再加上自己的領悟能力(需要時間閱歷),這才是一個有效的路徑。

 

進階成為架構師是大多數java程序員們的夢想,架構師從廣義上可分為軟件架構師、系統架構師,軟件架構師是程序員最容易突破、最可能進階的一條職業發展路徑,我這次主要分享軟件架構師的相關知識點。

一:架構師的定義

架構師的主要職責是什么?-mikechen的互聯網架構

架構師,是一個既需要掌控整體又要洞悉局部瓶頸,並依據具體的業務場景給出解決方案的團隊領導型人物,他需要參與項目開發的全部過程,包括需求分析、架構設計、系統實現、集成、測試和部署各個階段,負責在整個項目中對技術活動和技術說明進行指導和協調。

架構師應該是立足於技術和業務之間的中間角色或者平衡點, 在針對業務深刻理解的基礎上,針對業務中存在諸多變數,挑選適合的技術架構和技術方案。

二:架構師的主要職責

架構師的主要職責是什么?-mikechen的互聯網架構

1、確認需求與拆分系統

在項目開發過程中,架構師需要依據用戶需求,將完整的系統拆分為子系統和組件,形成不同的邏輯層或服務,確定各層的接口、層與層相互之間的關系,對整個系統分層進行“縱向”分解,對同一邏輯層分塊進行“橫向”分解。

2、技術選型

通過對系統的一系列的分解,最終形成了軟件的整體架構,依據整體架構需要進行技術選型。

例如:天貓這樣的大型分布式網站,需要從前端(CDN、負載均衡),再到中間應用層端的緩存集群、消息集群、文件存儲集群等的選型,再到后端數據庫(NoSQL、MySQL、Oracle等)的選型,你需要很清楚每一種技術的優劣勢和應用場景,以及未來面臨的挑戰和風險。然后從業務的角度(預估訪問量和業務變化),結合起來進行選型。

3、系統分解

系統分解類似實際項目中的概要設計、詳細設計,業務邏輯划分、子系統與主系統的關聯、數據庫的設計,再到應用端業務流程等,從技術的角度完整的拆解業務,把控好技術的細節。

4、制作技術規格說明

在整個研發過程中始終保持與開發人員保持溝通,以保證開發者依照原定的架構意圖去實現各項功能。

三:架構師的綜合能力

程序員從初級、中級、高級再到架構師,是一個不斷經驗積累的過程,除了技術實力以外,其它軟實力也不容忽視。

架構師的主要職責是什么?-mikechen的互聯網架構

備注:圖表僅為抽樣數據,僅供參考

我們來細說下排名前三的架構師必備能力:設計能力、技術能力、溝通能力。

1、 設計能力

架構是架構師洞察內在結構、原則、規律與邏輯的過程,架構師要做到清晰理解系統、簡潔描述,除此之外,一個架構師還必須具備極強的分析能力,要做到根據產品宗旨和目標,分析清楚產品定位、產品業務,再整合利用現有的技術領域,找出最佳方案,實現產品概念。

架構設計能力,具體可以參考:一篇文章搞懂架構師的核心技能

2、 技術能力

眾所周知,架構師是團隊中的技術權威,需要同時具備技術的深度和廣度,至少精通多門技術,且技術廣度的要求高於技術深度的要求,這樣才能更加深入的理解架構相關工作原理,也可以拉近和技術團隊的距離,並形成影響力。

具體可以參考:想成為阿里160萬年薪的P8架構師?你必須掌握如下技能體系!

3、 溝通能力

架構師參與項目開發的全過程,包括確認需求、系統分解、架構設計、技術選型、制定技術規格說明、系統實現、集成測試和部署各階段,與相關部門、技術團隊關於各個環節的工作溝通在所難免,這就決定了架構師需要具備較強的溝通能力。

 

架構師成長三步曲

在國內架構師需要多年的實戰經驗和個人修煉,一名優秀的架構師,離不開個人的努力和公司的機遇,挑戰和機遇並存。
首先,架構師大部分人的成長都是伴隨公司的發展需要從而演變而來,需要大量時間的實踐以及不斷的經驗積累。
結合企業架構師的需求,以及我個人的架構實際經驗,我把架構師的成長分為如下必經之路:

1 架構師胚胎(Java程序員)

工作年限1-3年左右,掌握程序相關的基礎知識:語言編程開發、基本的數據結構與算法掌握、基本的計算機網絡Java集合等已經掌握、數據庫知識(還到不了性能優化)等。

2、架構師萌芽(Java高級程序員)

工作年限一般3-5年,如果你做研發超過了5年還是處於重復搬磚的節奏,還沒有考慮代碼效率以及避免重復造輪的情況,還不能算到高級。
這個階段需要掌握的知識,比如:Linux操作系統原理分布式系統原理、常見的性能優化方案:數據庫端(事務超時、索引如何優化、高效sql等)、應用端、web端(靜態分離怎么做)等、高並發基礎場景..

3、架構師幼苗

工作超過5年,身經百戰的同時,我的標准是必須參與過至少一次中、大型項目,這個階段你還不能完全操盤一個大項目的架構設計,但至少對整個架構設計整體有一定的了解,比如:分布式緩存分布式Session負載均衡分布式全局唯一ID分布式事務的場景、異步場景…等的架構設計怎么實現已經掌握了。

以及開始逐步深入技術的原理,更透徹的掌握JVMRPC消息中間件等為什么要這樣設計…有一定的洞察力,有興趣深入去了解技術的核心原理。

4、架構師

如果你經歷了上述3個步驟階段的項目操練,如果在這個階段,你能獨自帶隊操盤一個中型、大型項目的架構設計,並且從架構設計的角度:效率、可維護性、可擴展、容錯…能勝任這個項目並且成功上線,這是一個標志性的架構師節點,獨立勝任中、大型項目架構設計操盤手。

架構師是很多技術人的職業目標,好的架構師來源於機遇(公司)、個人努力(吃得苦、肯專研)、天分(真的熱愛)的三者協作的結果,實踐+機遇+努力才能助你成為優秀的架構師

 

架構師必備技術能力有哪些

什么是架構師

架構師,是一個既需要掌控整體又要洞悉局部瓶頸,並依據具體的業務場景給出解決方案的團隊領導型人物,他需要參與項目開發的全部過程,包括需求分析、架構設計、系統實現、集成、測試和部署各個階段,負責在整個項目中對技術活動和技術說明進行指導和協調。

架構師應該是立足於技術和業務之間的中間角色或者平衡點, 在針對業務深刻理解的基礎上,針對業務中存在諸多變數,挑選適合的技術架構和技術方案。

架構師必備技術能力有哪些?最全技能圖譜分享!-mikechen的互聯網架構

架構師的崗位職責

架構師職責簡單來說有4點:

架構師必備技術能力有哪些?最全技能圖譜分享!-mikechen的互聯網架構

1、確認需求與拆分系統

在項目開發過程中,架構師需要依據用戶需求,將完整的系統拆分為子系統和組件,形成不同的邏輯層或服務,確定各層的接口、層與層相互之間的關系,對整個系統分層進行“縱向”分解,對同一邏輯層分塊進行“橫向”分解。

2、技術選型

通過對系統的一系列的分解,最終形成了軟件的整體架構,依據整體架構需要進行技術選型。

3、制作技術規格說明

在整個研發過程中始終保持與開發人員保持溝通,以保證開發者依照原定的架構意圖去實現各項功能。

4、系統分解

系統分解類似實際項目中的概要設計、詳細設計,業務邏輯划分、子系統與主系統的關聯、數據庫的設計,再到應用端業務流程等,從技術的角度完整的拆解業務,把控好技術的細節。

架構師必備技術能力

精通數據庫 &性能優化

架構師必備技術能力有哪些?最全技能圖譜分享!-mikechen的互聯網架構

最全MySQL知識體系考點復盤總結

最全MySQL索引與底層實現原理詳解

MySQL事務ACID與隔離級別詳解

最全MySQL鎖詳解:表/行/頁鎖、共享/排它鎖、悲觀/樂觀鎖等

MySQL架構體系&SQL查詢執行全過程解析

MySQL Innodb核心架構&SQL更新深度剖析

分庫分表詳解:垂直拆分,水平分庫,水平分表

MySQL主從復制與讀寫分離的底層實現原理

最強MySQL MVCC實現原理,圖文視頻詳解!

 

精通數據庫性能優化

架構師必備技術能力有哪些?最全技能圖譜分享!-mikechen的互聯網架構

MySQL性能優化實戰,手把手教你4大解決步驟!

MySQL索引優化最全攻略,4大維度解讀!

MySQL Explain執行計划,最全實戰案例講解!

MySQL核心參數優化,6大維度詳解!

精通分布式系統架構

架構師必備技術能力有哪些?最全技能圖譜分享!-mikechen的互聯網架構

淘寶分布式架構演變案例詳解

分布式一致性協議實現原理:CAP、Paxos、Raft、Zab等

最全負載均衡:算法、實現、億級負載解決方案詳解

最全分布式Session解決方案詳解

最全分布式事務解決方案詳解

最全分布式鎖解決方案詳解

最全分布式關系數據庫解決方案詳解

最全NoSQL分布式數據庫解決方案詳解

最全分布式文件與存儲解決方案詳解

高並發秒殺系統解決方案詳解

除此之外還有分布式緩存Redis、RPC通信Dubbo、消息中間件…等等


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM