大型網(wǎng)站作為目前互聯(lián)網(wǎng)領(lǐng)域引發(fā)高度關(guān)注的系統(tǒng),其架構(gòu)設(shè)計(jì)體現(xiàn)了強(qiáng)大的能力要求。中培偉業(yè)《詳細(xì)設(shè)計(jì)與系統(tǒng)架構(gòu)最佳實(shí)踐》培訓(xùn)專家程老師根據(jù)自己多年的經(jīng)驗(yàn),對(duì)大型網(wǎng)站的架構(gòu)提出了自己的看法。
程老師指出,由于大型網(wǎng)站巨大的社會(huì)影響力,以及在技術(shù)方面的難度和復(fù)雜性,很多從業(yè)人員都對(duì)大型網(wǎng)站的系統(tǒng)架構(gòu)非常感興趣。程老師作為該領(lǐng)域的資深專家,在這里就大型網(wǎng)站架構(gòu)的技術(shù)原理進(jìn)行了分析。
企業(yè)級(jí)的業(yè)務(wù)系統(tǒng),它的特點(diǎn)是業(yè)務(wù)邏輯是比較復(fù)雜的,但用戶一般不太大;互聯(lián)網(wǎng)應(yīng)用則相反,業(yè)務(wù)邏輯一般很簡單,但面對(duì)的是海量用戶。
既然互聯(lián)網(wǎng)應(yīng)用開發(fā)的業(yè)務(wù)邏輯不復(fù)雜,但為什么大型網(wǎng)站都投入了那么多的技術(shù)人員呢?主要是因?yàn)檫\(yùn)營的環(huán)境太復(fù)雜,這種復(fù)雜性形成的原因以下:
1. 公開性
網(wǎng)站的服務(wù)是公開的,任何人都可以來訪問,所以就會(huì)直接面對(duì)大量的不良用戶,系統(tǒng)數(shù)據(jù)的安全面臨很大的風(fēng)險(xiǎn),一旦系統(tǒng)被攻入,結(jié)果將是災(zāi)難性的。
2. 訪問量大
訪問量大,就意味著網(wǎng)站必須能夠承受高并發(fā)大流量的考驗(yàn),如果網(wǎng)站的服務(wù)能力和健壯性等達(dá)不到要求,你的系統(tǒng)就會(huì)被沖垮。
3. 用戶體驗(yàn)
用戶體驗(yàn)要好,除了產(chǎn)品設(shè)計(jì)的因素之外,就要求訪問網(wǎng)站的速度要快,具有高可用性,別用一會(huì)就出現(xiàn)問題。
網(wǎng)站各子系統(tǒng)如何進(jìn)行部署,如何提高系統(tǒng)的健壯性和高可用性,如何實(shí)現(xiàn)網(wǎng)站的安全,如何提高訪問速度,如何進(jìn)行負(fù)載均衡,甚至于采用什么的硬件設(shè)備,另外,網(wǎng)站發(fā)展的不同時(shí)期會(huì)可能會(huì)采用不同的架構(gòu),如何實(shí)現(xiàn)架構(gòu)的平滑過渡,如何使目前的架構(gòu)具有彈性,具備可擴(kuò)展的能力,這都是大型網(wǎng)站必須解決的問題,也是小網(wǎng)站成長過程中遲早會(huì)遇到的問題。
網(wǎng)站機(jī)構(gòu)包括網(wǎng)站的軟件架構(gòu)和系統(tǒng)架構(gòu)兩部分,軟件架構(gòu)主要是指子系統(tǒng)和邏輯層的劃分結(jié)構(gòu);系統(tǒng)架構(gòu),一般是系統(tǒng)部署結(jié)構(gòu)。
系統(tǒng)架構(gòu)師的知識(shí)體系比較龐雜,所謂的見多識(shí)廣,多數(shù)是由運(yùn)維工程師成長起來的,他們開發(fā)能力不強(qiáng),編碼不多,但動(dòng)手能力很強(qiáng),腳本編寫非常熟練,經(jīng)常會(huì)做各種類型的實(shí)驗(yàn),密切跟蹤最新技術(shù)最新產(chǎn)品的相關(guān)信息。當(dāng)然,一個(gè)大型的網(wǎng)站,需要一個(gè)架構(gòu)師團(tuán)隊(duì),他們各自承擔(dān)擅長領(lǐng)域的架構(gòu)設(shè)計(jì),比如安全架構(gòu)、存儲(chǔ)架構(gòu)等等。
程老師認(rèn)為一般的開發(fā)人員還是很難走上這條路的,這份工作需要經(jīng)驗(yàn),需要不斷實(shí)踐,但如果開發(fā)人員一旦走上了這條路,會(huì)有很大的發(fā)展,主要源于開發(fā)人員的思考習(xí)慣和技術(shù)的深度。