除了Cache外,可以看到各大網(wǎng)站都采用了CDN,CDN可以讓靜態(tài)文件更加的靠近用戶(hù),以便用戶(hù)快速獲取,而除了讓靜態(tài)文件更靠近用戶(hù)外,多IDC的建設除了提升可用性外,還可實(shí)現讓動(dòng)態(tài)數據更靠近用戶(hù),當然,這個(gè)在技術(shù)上的實(shí)現難度會(huì )比CDN高很多。
除了結構上的這幾點(diǎn)外,技術(shù)創(chuàng )新是提升系統性能的重要方法,例如Google提高TCP的初始擁塞窗口值等,而要做到技術(shù)創(chuàng )新,顯然可控性就是基礎了。
成本
隨著(zhù)網(wǎng)站規模的不斷擴大,系統的運行和維護成本將會(huì )成為公司中支出的重要部分,例如有數據表明騰訊每年的支出中,支付給運營(yíng)商的費用是其中占比排第二的部分(2010年為208億),因此網(wǎng)站規模越大,成本控制就越重要(潛臺詞是網(wǎng)站規模在不是很大的時(shí)候,也許支撐業(yè)務(wù)快速發(fā)展更重要),例如Google在設計系統時(shí)price/performance是重要的考量指標,有些網(wǎng)站也會(huì )采用x元/每千次page views來(lái)計算成本。
性能優(yōu)化有些是需要增加成本的(例如cache、CDN),而有些性能優(yōu)化是可以降低成本(例如Google對Index結構的優(yōu)化)的,因此通常性能優(yōu)化也是降低成本的一種方法,網(wǎng)站規模大了后的規模效應可以讓有些性能優(yōu)化帶來(lái)的成本降低非常的明顯。
硬件的不斷升級,而軟件系統層面上又更多的是靠cluster來(lái)支撐,因此通常很難完全消耗硬件資源,虛擬化就成為一種不錯的降低成本的方法,虛擬化具備了很好的隔離機制,避免了應用的互相影響,因此落地的難度不大。
除了依靠虛擬化來(lái)降低成本的方法外,Google則采用了自行實(shí)現的一種Shared Environment的方法來(lái)降低成本,Shared Environment可根據不同類(lèi)型的資源消耗,動(dòng)態(tài)組合(例如分時(shí))部署到同一臺機器上,充分的發(fā)揮機器的資源。
在前文中也講到,網(wǎng)站主要是靠可伸縮存活下來(lái),隨著(zhù)規模的擴大,必然會(huì )有大量的機器, Google有上百萬(wàn)臺的機器,Facebook有幾十萬(wàn)臺機器,在這么大規模的情況下,自行根據應用特征設計機器,會(huì )帶來(lái)很大的成本下降,因此Google、Facebook都自行設計機器以及自行設計DataCenter,從PUE上就可以看到Google/Facebook自行設計DataCenter帶來(lái)的成本降低是非??捎^(guān)的。
以上四點(diǎn)挑戰會(huì )由于網(wǎng)站業(yè)務(wù)的不同、人員知識結構的不同、做事風(fēng)格的不同以及所處的階段不同而采用不同的方法去解決,每個(gè)階段都有自己適用的解決方案,例如Google在成立之初業(yè)務(wù)為搜索,相對而言搜索市場(chǎng)的競爭主要是技術(shù),功能次之,而facebook/eBay等網(wǎng)站的競爭壓力主要在業(yè)務(wù)功能上,因此在成立之初的時(shí)候必然會(huì )有不同的側重點(diǎn),所以也不用想著(zhù)一開(kāi)始就去把網(wǎng)站做成Google/Facebook等現在的結構,選擇適合自己網(wǎng)站的就是好的,很多開(kāi)發(fā)人員在加入規模較大的網(wǎng)站后,會(huì )覺(jué)得系統結構已經(jīng)穩定了,沒(méi)有發(fā)展的空間,但從上面各網(wǎng)站的發(fā)展歷程來(lái)看,可以看出網(wǎng)站對技術(shù)的要求是不斷在演變的,通過(guò)觀(guān)察大網(wǎng)站的發(fā)展歷程,對自己結合公司的業(yè)務(wù)背景、知識結構等來(lái)判斷其下一步的發(fā)展,是會(huì )有很大的幫助的,并且也可以借此儲備一些技術(shù),以把握技術(shù)演變時(shí)的機會(huì ),獲得更大的成長(cháng),如果是加入規模尚小的網(wǎng)站,技術(shù)儲備做的好的話(huà),就有機會(huì )親身經(jīng)歷網(wǎng)站從小到大的演變了,因此都有機會(huì ),就看個(gè)人如何把握。
圍繞這四個(gè)方向的發(fā)展,通常網(wǎng)站在發(fā)展到一定規模后會(huì )演變成類(lèi)似如下的結構:
除了在可伸縮性、可用性、性能以及成本這四點(diǎn)的技術(shù)挑戰外,網(wǎng)站還面臨了其他很多方面的挑戰,例如海量數據的分析和挖掘、網(wǎng)站安全、業(yè)務(wù)發(fā)展的靈活性支撐、人員增長(cháng)后龐大的軟件管理等等,因此構建一個(gè)支撐大訪(fǎng)問(wèn)量、長(cháng)期發(fā)展、低成本運行的網(wǎng)站是需要有堅實(shí)的技術(shù)作為支撐的。
原文轉自:http://bluedavy.me/?p=396