張瑪麗
(山西職業(yè)技術(shù)學院,山西 太原 030006)
大型網(wǎng)站分布式架構(gòu)的研究和應(yīng)用
張瑪麗
(山西職業(yè)技術(shù)學院,山西 太原 030006)
隨著互聯(lián)網(wǎng)信息化建設(shè)和電子商務(wù)的快速發(fā)展,導(dǎo)致網(wǎng)站規(guī)模不斷擴大,安全性和穩(wěn)定性的規(guī)格不斷提高,從根本上已經(jīng)有了改變傳統(tǒng)網(wǎng)站系統(tǒng)架構(gòu)設(shè)計的需求,需要從以前簡單的單節(jié)點服務(wù)器架構(gòu),逐步過渡到多臺服務(wù)器節(jié)點、多種業(yè)務(wù)節(jié)點的服務(wù)器架構(gòu)形式。采用分布式服務(wù)器來部署網(wǎng)站的整體結(jié)構(gòu),能夠有效提升整個網(wǎng)站系統(tǒng)的擴展性和穩(wěn)定性,進一步提高網(wǎng)站系統(tǒng)的容錯性和安全性。
站群;分布式;大規(guī)模網(wǎng)站
根據(jù)網(wǎng)站系統(tǒng)服務(wù)對象的不同,每個大規(guī)模網(wǎng)站的搭建架構(gòu)也不同,有效合理的處理文件、數(shù)據(jù)庫、緩存以及負載均衡是網(wǎng)站架構(gòu)的重要內(nèi)容,其主要目的就是要提高網(wǎng)站的綜合性能,無論從安全性、訪問速度和擴展性上都必須要滿足當前以及今后的發(fā)展。雖然部分網(wǎng)站系統(tǒng)級別還算不上大規(guī)模網(wǎng)站系統(tǒng)的級別,但是在建設(shè)部署的時候采用分布式結(jié)構(gòu)標準,可以使部署后的網(wǎng)站在開發(fā)和使用中滿足所有應(yīng)用的需求,提高網(wǎng)站系統(tǒng)的信息化建設(shè)標準。
1.1 大規(guī)模網(wǎng)站系統(tǒng)的安全性
安全性是網(wǎng)站系統(tǒng)的生命線,任何網(wǎng)站首先要保證的就是其自身的安全。尤其對于大規(guī)模網(wǎng)站系統(tǒng)而言,涉及到多個應(yīng)用模塊和應(yīng)用系統(tǒng),保證每一個環(huán)節(jié)的安全性才能夠保證整體架構(gòu)的安全。網(wǎng)站系統(tǒng)的安全性包括硬件安全和軟件安全兩個方面。
硬件安全:網(wǎng)站存放的服務(wù)器,首先要保證其物理安全。從機房建設(shè)中的防火防盜,到電源配置中的斷電續(xù)航能力,再到服務(wù)器硬件的容災(zāi)備份,每一個環(huán)節(jié)的故障都能夠直接導(dǎo)致整個系統(tǒng)的崩潰。在資金允許的情況下,需要充分考慮到機房的門禁、供電、防火防盜等一系列問題,盡可能的以高標準嚴要求的規(guī)格來對機房硬件環(huán)境進行全方位的建設(shè)。
軟件安全:網(wǎng)站系統(tǒng)對外開放,目的是為了讓訪問者可以隨時查看網(wǎng)站內(nèi)容,了解最新動態(tài)。這種全天候不間斷的網(wǎng)絡(luò)服務(wù)不止為用戶提供了便利,也給不法人員提供了開放的大門,導(dǎo)致部分非法人員利用技術(shù)對網(wǎng)站進行非法訪問和攻擊。尤其是電子商務(wù)網(wǎng)站系統(tǒng),涉及到購物與支付業(yè)務(wù),對安全的要求更加迫切。面對各種各樣的攻擊和信息泄露,網(wǎng)站系統(tǒng)要能夠在訪問權(quán)限、身份識別、安全加密、防篡改和防攻擊等多個維度進行整體防護,保證網(wǎng)站系統(tǒng)的穩(wěn)定性和安全性。
建設(shè)網(wǎng)站系統(tǒng)的硬件環(huán)境,目前主流的方式有兩種:自建機房環(huán)境和租用云空間環(huán)境。
從自建機房的角度來講,在前期建設(shè)的初始階段就需要有高要求高起點的規(guī)劃,比如配置專業(yè)的供電設(shè)備和空調(diào)設(shè)備,部署專業(yè)的硬件防火墻來隔絕外圍的網(wǎng)絡(luò)攻擊和非法訪問,配置數(shù)據(jù)儲存和提高災(zāi)備能力等。這些投入在面對較小的網(wǎng)站系統(tǒng)時,往往面臨性價比較低的問題。
從租用云空間的角度來講,前期很少的投入就可以快速部署我們的網(wǎng)站系統(tǒng),我們不需要再去考慮機房的硬件環(huán)境和建設(shè)周期,而且云空間采用的先進防火墻技術(shù)和數(shù)據(jù)災(zāi)備恢復(fù)功能,在安全性和可靠性方面都有足夠的保障。目前騰訊云、阿里云已經(jīng)能夠為用戶提供各種配置和各種要求的空間服務(wù),能夠保障大規(guī)模網(wǎng)站系統(tǒng)的運行和安全。
1.2 大規(guī)模網(wǎng)站系統(tǒng)的擴展性
網(wǎng)站系統(tǒng)的規(guī)模和復(fù)雜度會隨著業(yè)務(wù)系統(tǒng)的增長和多樣性而發(fā)生變化。在網(wǎng)站系統(tǒng)的不斷更新和變化中,會產(chǎn)生成倍的圖片、視頻等大容量附件以及一些垃圾信息。隨著時間的推移,網(wǎng)站系統(tǒng)能否繼續(xù)保持良好的可讀性和可管理性,和網(wǎng)站系統(tǒng)在建設(shè)之初對于整體架構(gòu)的規(guī)劃有著密切聯(lián)系。網(wǎng)站系統(tǒng)在規(guī)劃的過程中,要充分考慮耦合度和容量擴展的問題。將網(wǎng)站程序、數(shù)據(jù)、文件等資源分布在不同的服務(wù)器上,根據(jù)具體的應(yīng)用調(diào)整服務(wù)器的硬件配置,以便達到最佳性能。在程序設(shè)計方面,數(shù)據(jù)和頁面分離、內(nèi)容和表現(xiàn)分離,能夠使各功能模塊相互獨立,有效提高網(wǎng)站的擴展性。
1.3 大規(guī)模網(wǎng)站系統(tǒng)的高可用性
對一個大規(guī)模網(wǎng)站系統(tǒng)而言,基本功能就是能夠承載大量用戶同時訪問,提供高效可靠的服務(wù)。網(wǎng)站全天24小時提供不間斷服務(wù),需要網(wǎng)站系統(tǒng)本身既要具備長時間提供服務(wù)的高性能和持續(xù)性,也需要在網(wǎng)站出現(xiàn)故障時能夠及時排查問題并恢復(fù)網(wǎng)站運行。單臺服務(wù)器由于單節(jié)點的特性,在網(wǎng)站運行期間,都有可能出現(xiàn)訪問瓶頸或者服務(wù)器故障。提高高可用性的首要方法就是使用負載均衡的功能,根據(jù)網(wǎng)站訪問的帶寬和來源進行有效分流,減輕單臺服務(wù)器的訪問壓力。
利用虛擬化技術(shù)中的HA技術(shù),建立高可用集群服務(wù),能夠有效避免單節(jié)點服務(wù)器發(fā)生故障出現(xiàn)的問題,并且能夠利用多主機建立的私有云進行服務(wù)器漂移,極大提高網(wǎng)站系統(tǒng)的可用性。
根據(jù)大規(guī)模網(wǎng)站系統(tǒng)的主要特性,進行大規(guī)模網(wǎng)站系統(tǒng)的建設(shè)應(yīng)該從兩個角度出發(fā)。首先在網(wǎng)站架構(gòu)中,硬件服務(wù)器的部署應(yīng)該符合安全性、高可用性和擴展性。其次,在網(wǎng)站搭建中,從開發(fā)語言、環(huán)境部署以及個性化建設(shè)方面,也要符合可行性、高效性和可管理性。
2.1 大規(guī)模網(wǎng)站系統(tǒng)硬件系統(tǒng)架構(gòu)
硬件系統(tǒng)采用分布式架構(gòu)方式,能夠使整個系統(tǒng)實現(xiàn)內(nèi)外網(wǎng)的隔離、發(fā)布和管理分離、動態(tài)和靜態(tài)分離,如圖1所示。
圖1 硬件系統(tǒng)架構(gòu)
發(fā)布網(wǎng)站服務(wù):網(wǎng)站系統(tǒng)設(shè)置獨立對外發(fā)布服務(wù)的服務(wù)器組,由兩臺服務(wù)器組成。服務(wù)器之間采用負載均衡配置,WEB服務(wù)器1和WEB服務(wù)器2對外發(fā)布網(wǎng)站服務(wù),采用同步技術(shù)及時更新網(wǎng)站內(nèi)容,任何一臺服務(wù)器出現(xiàn)故障,都不會影響到網(wǎng)站訪問。
動態(tài)程序和靜態(tài)頁面分離:由于網(wǎng)站發(fā)布程序采用動態(tài)技術(shù)實現(xiàn),可能會在程序和數(shù)據(jù)庫兩方面留下漏洞,致使服務(wù)器受到攻擊,產(chǎn)生安全隱患。采用動態(tài)程序服務(wù)器和靜態(tài)發(fā)布服務(wù)器分離的技術(shù),將產(chǎn)生的網(wǎng)站內(nèi)容頁面同步發(fā)送到WEB服務(wù)器1和WEB服務(wù)器2,對外可見的服務(wù)器只保留網(wǎng)站最基本的發(fā)布訪問功能,能夠有效減少服務(wù)器本身的漏洞。
發(fā)布和管理分離:網(wǎng)站發(fā)布服務(wù)器采用模塊化CMS系統(tǒng)進行內(nèi)容管理,對多個站點進行管理,集成多個功能模塊。有效的統(tǒng)一了數(shù)據(jù)庫資源,方便各種數(shù)據(jù)在整個站群中實時調(diào)用,實時備份,保障數(shù)據(jù)安全。
網(wǎng)站維護安全:整體架構(gòu)采用內(nèi)網(wǎng)安全隔離技術(shù),配置一定安全策略和規(guī)則,提高服務(wù)器訪問的安全性。在網(wǎng)站發(fā)布中,一方面提高網(wǎng)站驗證的復(fù)雜度,另一方面也可采用VPN訪問方式進行網(wǎng)站管理,增加網(wǎng)站防護的手段。
分布式存儲:配置獨立的文件服務(wù)器解決圖片、下載、視頻等資源的擴展性,不論網(wǎng)站需要擴充多大的業(yè)務(wù),在服務(wù)器容量方面也不會產(chǎn)生瓶頸。
2.2 大規(guī)模網(wǎng)站系統(tǒng)軟件架構(gòu)
開發(fā)大規(guī)模網(wǎng)站系統(tǒng),在軟件方面需要重點部署數(shù)據(jù)庫、文件系統(tǒng)結(jié)構(gòu)、負載均衡以及緩存(如圖2)。
圖2 軟件系統(tǒng)架構(gòu)
數(shù)據(jù)庫選擇:WEB服務(wù)開發(fā)中,可以使用的數(shù)據(jù)庫系統(tǒng)有很多。在大規(guī)模網(wǎng)站開發(fā)中,數(shù)據(jù)庫要能夠滿足大量用戶高頻度的訪問,在選擇上最好采用ORACLE或者SQL等高性能數(shù)據(jù)庫。
文件調(diào)用:文件服務(wù)器按存儲文件的類別進行劃分,訪問方式采用域名訪問,如images.xxx.com、video.xxx.com。這樣做的好處是方便各個系統(tǒng)單獨調(diào)用,也方便資源管理。
負載和緩存:針對于高并發(fā)的訪問場景,緩存可以降低系統(tǒng)的負荷,提高吞吐量。緩存不是網(wǎng)站的全部內(nèi)容,會帶來命中率和存儲一致性的問題。采用熱點數(shù)據(jù)存儲,淘汰老舊數(shù)據(jù),逐步增加系統(tǒng)規(guī)模,搭建分布式緩存系統(tǒng),有效提高網(wǎng)站負載能力和減輕壓力。
一個大規(guī)模的網(wǎng)站系統(tǒng),不僅需要在系統(tǒng)架構(gòu)上合理設(shè)計和實施,還需要在用戶訪問體驗上進行逐步優(yōu)化,提高用戶體驗至關(guān)重要。
3.1 內(nèi)容分發(fā)網(wǎng)絡(luò)
CDN的全稱是Content,即內(nèi)容分發(fā)網(wǎng)絡(luò)。一個大規(guī)模的網(wǎng)站系統(tǒng),面對各個地區(qū)的網(wǎng)絡(luò)訪問,反饋速度是不同的。為了提高用戶訪問速度,在不同地區(qū)放置節(jié)點服務(wù)器,形成智能虛擬網(wǎng)絡(luò),根據(jù)用戶訪問流量來源,引導(dǎo)用戶訪問最新最快速的節(jié)點。CDN的優(yōu)勢在于不同地區(qū)不同時段的用戶都會快速打開網(wǎng)站,利用虛擬主機部署CDN,后期維護工作量會大大減少,用戶訪問體驗也會得到提高。
3.2 高性能搜索引擎
在訪問大型網(wǎng)站系統(tǒng)的時候,面對海量的數(shù)據(jù)信息,需要建立一套有效的搜索引擎來反饋用戶的搜索要求。搜索引擎在數(shù)據(jù)庫中執(zhí)行操作,既要提高搜索的精度和速度,還要降低服務(wù)器在執(zhí)行搜索任務(wù)時的性能損耗,所以,采用一套高性能的搜索引擎也是我們需要重點考慮的方面。
采用高性能的搜索引擎,要考慮幾個方面的問題:1) 能否應(yīng)對海量的數(shù)據(jù),是否支持讀寫分離,是否支持分布式搜索;2) 搜索中建立的索引時效性如何,是否實時更新;3) 查詢語言是否豐富,接口是否豐富。常用的企業(yè)級搜索引擎如sphinx。
3.3 平臺監(jiān)控統(tǒng)計
大規(guī)模網(wǎng)站系統(tǒng)使用了多種設(shè)備和技術(shù),如網(wǎng)絡(luò)設(shè)備、各服務(wù)器硬件和軟件及數(shù)據(jù)庫,數(shù)量龐大,出錯的概率也相應(yīng)增大。所以需要對重要設(shè)備進行實時監(jiān)控,以便管理人員能夠?qū)崟r了解各設(shè)備和數(shù)據(jù)的使用情況,進行監(jiān)控預(yù)警,及時做出相應(yīng)措施。
一個大型的網(wǎng)站系統(tǒng),涉及到方方面面的技術(shù)和設(shè)備,可以采用多種組合來進行系統(tǒng)架構(gòu)的設(shè)計。不同的系統(tǒng),關(guān)注的側(cè)重點不同,如電商網(wǎng)站側(cè)重的是用戶訪問體驗、數(shù)據(jù)的安全性和實時性,對實時計算有較高要求;內(nèi)容咨詢類網(wǎng)站側(cè)重的是用戶的搜索速度、下載速度以及內(nèi)容的時效性。在搭建大規(guī)模網(wǎng)站系統(tǒng)的時候,統(tǒng)一部署統(tǒng)籌安排,才能夠在開發(fā)和應(yīng)用的各個階段給予網(wǎng)站更好的保障。
The Research and Application on Distributed Architecture of Large Scale Web Site
Zhang Mali
(ComputerEngineeringDepartment,ShanxiPolytechnicCollege,TaiyuanShanxi030006,China)
With the rapid development of Internet information technology and e-commerce, it causes the continues expand of site scale, the standard of security and stability is continuously improved, so fundamentally, it is necessary to change the traditional site architecture design that is from the previous simple single node server architecture gradually transit to the server architecture form of multiple server nodes and a variety of business node. The using of distributed server to deploy the overall structure of the site can effectively improve the scalability and stability of the entire website system, and further improve the fault tolerance and security of the site system.
station cluster; distributed; large scale of website
2017-02-09
張瑪麗(1983- ),女,山西萬榮人,講師,碩士,研究方向:軟件工程。
1674- 4578(2017)02- 0073- 03
TP311.5
A