來源:程序員小灰

漫畫:什麼是架構師?

漫畫:什麼是架構師?

漫畫:什麼是架構師?

漫畫:什麼是架構師?

漫畫:什麼是架構師?

漫畫:什麼是架構師?

於是,小灰去向大黃請教

漫畫:什麼是架構師?

漫畫:什麼是架構師?

這是有關未來的故事:

從前,有一個趕路的人路過一片工地,看到三個年輕人在工地上搬磚。

於是,他問其中一個人:

漫畫:什麼是架構師?

漫畫:什麼是架構師?

於是,他又問了第二個人:

漫畫:什麼是架構師?

漫畫:什麼是架構師?

於是,他又問了第三個人:

漫畫:什麼是架構師?

漫畫:什麼是架構師?

十年之後~

曾經說自己在建造城市的年輕人,成爲了市長

漫畫:什麼是架構師?

曾經說自己在搬磚的年輕人,成爲了磚廠老闆

漫畫:什麼是架構師?

曾經說自己在搭建教堂的年輕人,最沒出息,成爲了架構師

漫畫:什麼是架構師?

漫畫:什麼是架構師?

什麼是架構師?

架構師英文architect,這個詞源於建築學。軟件工程當中的架構師和建築工程當中建築師有許多相通之處,都是負責“產品”宏觀的架構設計。

在一個團隊裏,架構師充當了技術Leader的角色,不僅要完成項目的整體設計和規劃,還要帶領技術團隊一起解決實際問題,攻克技術難點,使得軟件的設計、開發、測試、發佈流程得以順利完成。

下面這張圖,表達了一個應用架構師(技術Leader)在團隊當中的角色:

漫畫:什麼是架構師?

需要注意的是,這張圖中的架構師只是應用架構師,所以運維和DBA人員沒有歸入到他的管轄範圍。同時,每個公司的具體組織結構也不盡相同。

漫畫:什麼是架構師?

漫畫:什麼是架構師?

架構師都做些什麼?

1.架構設計

架構師,顧名思義,第一職責就是在軟件設計階段,做好軟件“骨架”的設計。架構師需要把產品的需求翻譯成軟件工程的設計文檔,確定各個系統與模塊的邊界,評估系統的量級。

2.技術選型

從前端到後端,從緩存到數據庫,面對爲數衆多的第三方組件,架構師需要作出合理的選擇。

前端頁面選擇模板引擎還是動靜分離?

服務端選擇Java還是Node.js?

服務治理選擇DubboX還是Spring Cloud?

消息隊列選擇RocketMQ還是Kafka?

分佈式緩存選擇Redis Cluster 還是 Codis?

數據庫選擇Mysql還是Oracle?

全文檢索選擇Solr還是ES?

技術沒有絕對的好壞之分,關鍵看是否適用於公司的業務場景。

3.管理非功能性需求

滿足需求是項目開發和架構設計的根本,而管理非功能性需求則是項目的昇華。

在公司從0到1的創業階段,開發者更關注的是功能性需求,往往一個簡單粗暴的MVC項目就可以搞定一切。當業務量級逐漸增大,用戶需求逐漸多樣化,非功能性需求的重要性就逐漸顯現。

非功能性需求都包含哪些內容呢?

性能(響應時間)

可擴展性(適應需求的快速變化)

可用性 (四個9,五個9,必要時的限流和降級)

安全性(防範各種惡意攻擊,實現風控)

可監控(完善的監控和報警機制)

靈活性(便於非開發人員進行配置)

可維護(持續集成,持續部署)

國際化(衝出國門)

4.攻克技術難題

架構師不只需要關注宏觀的設計,也需要具有攻克技術細節的能力。在團隊開發過程中遇到難以實現和優化的技術問題時,架構師需要發揮技術優勢,解決系統的疑難雜症。

5.技術人員的管理和指導

架構師不只是一個技術大牛,也應該是一個好的管理者,在工作中需要把較大的項目和需求拆分一個個Story,依照每個人的情況分配給研發團隊的成員,並且在必要的時候進行技術上的培訓指導。

漫畫:什麼是架構師?

漫畫:什麼是架構師?

架構師都有哪些種類?

1.應用架構師

應用架構師是行業中數量最多的架構師,主要負責公司產品的技術架構。產品架構師需要對業務有足夠的理解,根據產品需求設計架構,在運營團隊的協助下評估量級,並管理項目的整個生命週期。

2.中間件架構師

中間件架構師主要負責基礎框架、公共組件,通用服務的搭建。比如分佈式服務框架諸如Dubbo,HSF;比如消息隊列諸如 RocketMQ,Kafka。在大型互聯網公司中,往往不是把開源框架簡單“拿來”,而是研發出符合自身業務的企業中間件。

3.基礎設施架構師

基礎設施架構師負責服務器資源、網絡資源、數據庫等基礎設施的建設;以及持續集成工具、持續部署工具的搭建。

以上所說的三種,只是架構師最基本的分類。一些特殊領域也有着專門的架構師,比如網絡安全架構師、大數據架構師等等。

漫畫:什麼是架構師?

漫畫:什麼是架構師?

怎樣才能成爲架構師?

1.技術的深度和廣度

有一句話說得好,將軍就是更優秀的士兵。架構師作爲程序員中的將軍,首先需要有足夠的技術深度,同時需要廣泛瞭解行業內的主流技術,以便更好地設計架構和技術選型。

2.業務的理解

拋開業務談架構就是耍流氓。這一點對應用架構師來說尤其重要。只有對業務有了充分的理解,才能對項目的設計和擴展做出合理的規劃。

3.良好的溝通能力

架構師不只是低頭做技術,更需要協調指揮團隊內的成員,也需要跨部門和產品、運營、項目經理等人員做及時有效的溝通,所以溝通能力是必不可少的。

漫畫:什麼是架構師?

漫畫:什麼是架構師?

相关文章