年薪50W的程序員,如何用5年時間成為一名架構師,分享成功的經驗
架構師,我想很多人都知道,其實該職位頭銜在最早的IT領域是沒有的,它是近些年來由互聯(lián)網的發(fā)展所引發(fā)的需求,因為現(xiàn)階段的數(shù)據量及高并發(fā)的活躍好動,引起了不少傳統(tǒng)的技術人員的力不從心,企業(yè)愈發(fā)關注到了系統(tǒng)架構的重要性,所以不同行業(yè)開始招募架構技術人員,架構師就誕生了。
架構設計的條件
以下三個條件不適合做架構設計
對架構不感興趣,但又迫于需求;
入IT行業(yè),年限小于4年的;
主觀能動性弱,又安于現(xiàn)狀的;
架構設計的優(yōu)勢
更好的梳理業(yè)務的結構體系;
更好的拓展、維護及性能優(yōu)化;
更好的適應企業(yè)業(yè)務靈活的推進;
更好的適應大數(shù)據的沖洗和應對;
更好的穩(wěn)定性、低成本及快速迭代;
架構設計時候需要注意的地方
架構設計需要注意的地方,不是怎么把架構搭建起來,而是必須根據業(yè)務需求,嚴格分析,實現(xiàn)該需求需要什么技術會更好及更長遠發(fā)展的考慮;
另外,構建好的架構雖然可以運行,但是性能需要跟起來,否則架構設計會適得其反,增加不必要的工作量,那么下面就詳細介紹下架構設計的策略。
平臺的需求
客戶需求
在線購物、在線支付或貨到付款;
購買商品后,客戶可以與客服溝通;
購買商品過程,物流的管理及跟蹤;
收取到商品后,商品、物流評價打分;
客戶的需求為***,也代表了企業(yè)的核心需求,當然,企業(yè)需求還包括其它很多非功能性需求,具體請查看需求梳理部分。
平臺的業(yè)務架構
根據業(yè)務的需求進行子系統(tǒng)模塊劃分,可以劃分為商品子系統(tǒng)、購物子系統(tǒng)、支付子系統(tǒng)、物流子系統(tǒng)、客服子系統(tǒng)、評論子系統(tǒng);而非核心需求可拆分出客服子系統(tǒng)、評論子系統(tǒng)及接口子系統(tǒng)。另外,根據各個子系統(tǒng)的核心等級,可拆分出核心子系統(tǒng)和非核心子系統(tǒng),前者包括商品子系統(tǒng)、購物子系統(tǒng)、支付子系統(tǒng)及物流子系統(tǒng);后者,則包括評論子系統(tǒng)、客服子系統(tǒng)及接口子系統(tǒng)。需要注意的是一般大型電商平臺的物流系統(tǒng)是單獨分離出來的系統(tǒng)(入庫、出庫、庫存管理、配送管理及貨品管理),而這里劃分為子系統(tǒng)的主要目的是為演示核心架構,本架構中物流子系統(tǒng)一般作為對接和管理獨立子系統(tǒng)的對接模塊哦。
1、業(yè)務拆分目的
為了解決各個模塊子系統(tǒng)間的耦合、維護及拓展性;
方便單獨部署子系統(tǒng),避免集中部署導致一個出問題,全部不能用;
分配專門的團隊,負責具體的子系統(tǒng),***化工作效率安排;
應對大數(shù)據,高壓力時,保護核心子系統(tǒng)正常使用;
2、業(yè)務的架構圖
在上面的業(yè)務架構圖中,將核心和非核心業(yè)務進行拆分,同時每個系統(tǒng)都要獨立部署實現(xiàn),做到大數(shù)據量壓下,各個系統(tǒng)獨立運作,提高可用性,必要時可以暫停掉非核心系統(tǒng)的資源開銷,保證核心業(yè)務正常為用戶服務。
平臺的技術架構
在上面業(yè)務架構圖基礎上,我們需要一個技術架構的演變過程,一切只為滿足用戶的體驗和支撐為前提,所以技術架構的搭建不是一蹴而就的,而是隨著業(yè)務的不斷衍變,系統(tǒng)的架構會逐漸完善更新,以實現(xiàn)應對業(yè)務數(shù)據量的沖擊。
1、基本的架構設計
記得很早的時候,很多中小企業(yè)所采用的架構設計十分簡單,基本使用一臺服務器來滿足一切需求部署,比如:一臺服務器同時用作應用部署、數(shù)據庫存儲以及圖片存儲等,不料的是待用戶數(shù)據達到50萬以上,系統(tǒng)出現(xiàn)很多性能問題,盡管對數(shù)據庫和程序做個各種性能優(yōu)化,結果仍無明顯改善,架構如下:
后來,IT程序猿發(fā)現(xiàn)圖片的讀寫嚴重影響了系統(tǒng)性能,并將圖片單獨存放在獨立服務器中,并且在架構中引入了Cache中間件,比如:Memcache,這種做法是可取的,而且比原來性能提高了1-2個性能級別,架構設計如下:
2、初級的架構設計
前幾年,一般的電商網站的做法是選用三臺服務器,一臺部署應用,一臺部署數(shù)據庫,一臺部署NFS文件系統(tǒng),做到將各個規(guī)模龐大并耗用性能的部分剝離到不同服務器設備,再配備必要的緩存中間件,基本可以滿足近1000萬的數(shù)據量,具體的架構圖如下:
但是,目前主流使用的網站架構已經不同,大多采用集群的方式來實現(xiàn)負載均衡和高可用性,架構可以是下面的樣子:
注意:
如果涉及到多臺網站服務器的話,就會存在Session如何同步的問題,一般也是最為常用的做法,就是使用Cache中間件來存儲和管理Session信息。
3、優(yōu)化的架構設計
這里為解決高并發(fā),高可用的大型電商網站的架構設計方案,主要采用了分布式、集群、負載均衡、反向代理、消息隊列及多級緩存技術。該架構設計方案,是現(xiàn)今比較流程的大型電商網站采用的架構模式,比如:淘寶、京東等,也許會有細微不同的地方,但大同小異哦!具體的架構圖方案如下:
平臺架構的總結
這里主要總結的是優(yōu)化架構,架構按層次結構羅列組織,共分為四層,層次分工明確,高拓展,低耦合,負載均衡、集群、分布式及緩存等技術的使用,架構如下:
好了,電商平臺的架構設計就介紹到這里。