成為一名優(yōu)秀的系統(tǒng)架構(gòu)師需要經(jīng)歷的過程
2021-11-25點擊量:3275
軟件架構(gòu)跟蓋樓有異曲同工之妙。首先建筑師(軟件行業(yè):稱之為架構(gòu)師)在圖紙上把大樓外觀、主體結(jié)構(gòu)、材料工藝、施工流程等設(shè)計好。施工隊根據(jù)圖紙,打好地基,并開始建設(shè)能滿足抗地震、抗臺風、抗沉降(高并發(fā)、高性能、高可用)等必備條件的大樓主體結(jié)構(gòu),然后再澆筑墻體、封頂、室內(nèi)裝飾。成為一名優(yōu)秀的架構(gòu)師需要具備很多條件:業(yè)務理解轉(zhuǎn)化能力思維抽象能力軟件建模能力高并發(fā)、高性能、高可用的分布式系統(tǒng)架構(gòu)設(shè)計能力前沿技術(shù)選型把控能力系統(tǒng)重構(gòu)能力快速學習能力此外,還要懂分布式緩存、消息隊列、負載均衡、數(shù)據(jù)庫、NoSQL、搜索、RPC、容器、分庫分表、注冊中心、分布式配置、鏈路跟蹤、服務治理、系統(tǒng)監(jiān)控、微服務等等。如何做好架構(gòu)設(shè)計,有哪些經(jīng)驗可以遵循,我們簡單來學習下一、“拆分”,降低架構(gòu)復雜度世上沒有無緣無故的愛,也沒有無緣無故的恨,一切皆有因果。那為什么要做拆分呢?人類大腦神經(jīng)信號傳遞靠的是離子,通過透過鈉與鉀等離子來傳輸,其速度被限制在化學擴散的速率,所以我們的大腦內(nèi)大部分神經(jīng)信號是以約30m/s的速度傳播。由于人腦處理問題的能力是有限的,當面對復雜問題時,會主動去尋找一些方法提升效率(這也是人與動物的最大區(qū)別,人具有思考能力)。神器就是拆分,將復雜問題拆解為多個相對簡單的小問題。分而治之、各個擊破,這樣做極大地提高了解決復雜問題的可能性和效率。簡單歸納:應用拆分、服務拆分、數(shù)據(jù)拆分、應用解耦。比如常見的電商領(lǐng)域,當用戶發(fā)展到一定規(guī)模后,會拆分成一系列的業(yè)務子域:商戶、商品、庫存、權(quán)限、訂單、支付、履約、結(jié)算、售后、財務、會員、營銷、采購、倉儲等眾多模塊,項目實戰(zhàn)中可以結(jié)合DDD,來幫助我們理清、劃分各個子系統(tǒng)的邊界。二、認知抽象,架構(gòu)模式有通用性認知很重要,認知很重要,認知真的重要,重要的話說三遍。大家應該聽過一個成語:“一通百通”,出自明·吳承恩《西游記》。原文:這猴王也是他一竅通時百竅通,當時習了口訣,自習自練,將七十二般變化,都學成了。翻譯過來:一個主要的弄通了,其他的自然也都會弄通。相信很多人都面試過別人,或者被別人面試過。大家有沒有發(fā)現(xiàn)一個現(xiàn)象,簡歷中項目經(jīng)驗很重要,但是有時想招到一個對口業(yè)務的人真的很難,這時考量標準就會轉(zhuǎn)變?yōu)閷η舐氄叩幕A(chǔ)技術(shù)能力(比如算法)、表達能力、歸納能力、抽象思維能力。正所謂“一通百通”,你在一個行業(yè)積累了成功的項目經(jīng)驗,那么再換一個賽道也不會有問題。三、一圖勝千言,畫各種類型圖為什么架構(gòu)師都喜歡畫圖呢,一圖勝千言啊。人的生理結(jié)構(gòu)更容易接受視覺型知識輸入!段逡晥D法》描述架構(gòu):邏輯視圖:對應邏輯架構(gòu),主要關(guān)注功能需求,以及系統(tǒng)職責和行為的劃分。邏輯視圖不僅包括用戶可見的功能,還包括相應的輔助功能。比如秒殺系統(tǒng)中的活動場次切換、商品列表、用戶登錄、活動管理、后臺權(quán)限等功能開發(fā)視圖:對應開發(fā)架構(gòu),主要關(guān)注系統(tǒng)開發(fā)過程中的質(zhì)量屬性。它包括軟件源碼的組織方式、引入開源框架、配置方式、編譯打包方式以及與第三方包的依賴關(guān)系等。運行視圖:對應運行架構(gòu),主要關(guān)注軟件運行過程中的質(zhì)量屬性,它包括進程、線程、協(xié)程、對象之間的并發(fā)、同步、通信的問題等。物理視圖:對應物理架構(gòu),主要關(guān)注安裝和部署需求。它包括軟件運行時的系統(tǒng)、網(wǎng)絡、服務器等基礎(chǔ)設(shè)施和相關(guān)配置,以及如何利用基礎(chǔ)設(shè)施來實現(xiàn)應用程序的高可用、可伸縮等。數(shù)據(jù)視圖:對應數(shù)據(jù)架構(gòu),通常用E-R圖(EntityRelationshipDiagram,實體-聯(lián)系圖)表示。主要關(guān)注數(shù)據(jù)需求,它包括數(shù)據(jù)的格式、屬性、關(guān)系等。四、系統(tǒng)是演化來的,切勿初期就翻天覆地隨著公司業(yè)務的擴大,系統(tǒng)也會經(jīng)歷一個演化過程。大致分為這么幾個階段:煙囪式架構(gòu)-->平臺化-->中臺化就像人一樣,每個階段也都有自己的優(yōu)點和不足,業(yè)務早期追求速度,講究快速落地,搶占市場,時間就是生命,我們可能采用集中式架構(gòu),系統(tǒng)快速落地,后期在慢慢優(yōu)化、架構(gòu)升級。早期的系統(tǒng)很多都是煙囪式架構(gòu),自上而下一體化,存在大量的模塊重復,導致維護成本很高。另外模塊割裂對業(yè)務也有很大影響,比如:會員模塊,每個渠道都有自己的獨立用戶體系,用戶登錄網(wǎng)站系統(tǒng)時需要記住多套賬號,體驗較差。也不利于數(shù)據(jù)互通、共享,無法最大化發(fā)揮數(shù)據(jù)的價值。此時,便有了從煙囪式架構(gòu)朝著平臺化演化。平臺化是從降低技術(shù)重復的角度出發(fā),將重復模塊進行融合,從而提升效率。中臺化,也稱為企業(yè)級的能力復用平臺。從業(yè)務復用的角度出發(fā),進一步提升業(yè)務落地的效率。可視化之后,業(yè)務邏輯可以直接在可視化平臺上展現(xiàn)出來,業(yè)務方和產(chǎn)品經(jīng)理不需要頻繁和研發(fā)溝通確認需求,可以極大地減少溝通時間,有助于業(yè)務快速落地。中臺價值:當面對不斷出現(xiàn)的新的業(yè)務場景和形態(tài)時(如電商里新出現(xiàn)的社區(qū)團購等),中臺需要快速地復用已有能力,去滿足業(yè)務新建站點或不斷擴寬業(yè)務邊界的訴求。本文由培訓無憂網(wǎng)牛耳教育專屬課程顧問整理發(fā)布,希望能夠?qū)ο朐陂L沙學習系統(tǒng)架構(gòu)師培訓的同學有所幫助。更多系統(tǒng)架構(gòu)師培訓課程歡迎關(guān)注培訓無憂網(wǎng)系統(tǒng)架構(gòu)師培訓培訓頻道或添加老師微信:15033336050...