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