97婷婷狠狠成人免费视频,国产精品亚洲精品日韩已满,高清国产一区二区三区,日韩欧美黄色网站,xxxxx黄在线观看,韩国一级淫片视频免费播放,99久久成人国产精品免费

如何精心設計CDN架構?

2014/07/11 09:29      邵海楊

 

文|邵海楊,UPYUN(又拍云)聯(lián)合創(chuàng )始人兼運維總監

國內,隨著(zhù)互聯(lián)網(wǎng)的高速發(fā)展,因為各大通信公司的政策,造成了南電信北聯(lián)通互通有局限性,再加上大小且質(zhì)量參差不齊的運營(yíng)商,在這特殊的氛圍的互聯(lián)互通下號稱(chēng)“八線(xiàn)合一”的機房開(kāi)始嶄露頭角?;ヂ?lián)網(wǎng)的廣泛性使得網(wǎng)民分散在全國各地,由于全國地區的經(jīng)濟發(fā)展和互聯(lián)網(wǎng)建設的不平衡,實(shí)際網(wǎng)民的體驗往往受限于最后一公里的速度。在技術(shù)大噴井的年代,一些無(wú)聊或者有目的黑客攻擊也開(kāi)始涌現,無(wú)論是滲透還是DDoS攻擊都非常頻繁,時(shí)刻威脅著(zhù)網(wǎng)站的安全……

上述種種問(wèn)題,作為應用服務(wù)提供商,我們要如何解決此類(lèi)問(wèn)題呢?歸根結底就是要充分利用好CDN(Content Delivery Network,即內容分發(fā)網(wǎng)絡(luò ))。

CDN的作用可以幫助我們解決哪些問(wèn)題?

緩存代理

緩存代理類(lèi)似內容提供商源數據中心的一個(gè)透明鏡像,這些內容可以在邊緣服務(wù)器中緩存和分發(fā),對于普通的網(wǎng)絡(luò )用戶(hù)來(lái)講,它通過(guò)智能DNS的篩選,用戶(hù)的請求被透明地指向離他最近的省內骨干節點(diǎn),最大限度的縮短用戶(hù)信息的傳輸距離。在任何時(shí)間、地點(diǎn)或者不同的運營(yíng)商之間(尤其在中國),快速響應用戶(hù)請求。

它是通過(guò)在網(wǎng)絡(luò )各處放置節點(diǎn)服務(wù)器,所以無(wú)需更改源站的網(wǎng)絡(luò )拓撲,而是根據智能路由和用戶(hù)就近原則匹配,從而確保了內容快又穩定的傳輸,大大提高了用戶(hù)訪(fǎng)問(wèn)網(wǎng)站的響應速度。

路由加速

CDN服務(wù)初衷是確??焖倏煽康胤职l(fā)靜態(tài)內容,相對于動(dòng)態(tài)內容來(lái)說(shuō),由于動(dòng)態(tài)內容必須長(cháng)連接來(lái)操持連接和通訊,只是用戶(hù)到服務(wù)商之間的鏈路和質(zhì)量都無(wú)法控制。因此為了提供快速的網(wǎng)絡(luò )體驗,有必要事先設置一些最佳路由。如省內骨干網(wǎng),雙線(xiàn)機房,以改善用戶(hù)的網(wǎng)絡(luò )體驗。在中國典型的互聯(lián)互通問(wèn)題上,網(wǎng)絡(luò )游戲加速就是一些最佳實(shí)踐。

安全防護

利用好了CDN網(wǎng)絡(luò ),無(wú)論面對是滲透還是DDoS攻擊,攻擊的目標大都會(huì )被指向到了CDN,進(jìn)而保護了用戶(hù)源站。因為CDN是分布式的,所以即使遭受DDoS攻擊,也具備分散性,大大減少了源站收到毀滅打擊的可能性。在架構的前期,還可以通過(guò)CDN做一些前置的安全保護工作,如攔截SQL注入、XSS跨站、網(wǎng)站掛馬、篡改等黑客攻擊。

節省成本

CDN節點(diǎn)機房只需要在當地運營(yíng)商的單線(xiàn)機房,或者帶寬相對便宜的城市,采購成本低。由于通過(guò)CDN減輕了源站壓力,節點(diǎn)越多,源站面對任何時(shí)間高峰時(shí)的帶寬峰值會(huì )被平均拉低。從而降低了后端服務(wù)器硬件規模和帶寬的采購成本。 由于源站服務(wù)器規模的減少,后期運維成本也大大減少,可謂是一舉多得。

由此可見(jiàn),為了能夠滿(mǎn)足全國乃至世界各地和多線(xiàn)路運營(yíng)商的不同用戶(hù)都有最好的體驗,構建CDN的分布式服務(wù)其重要性不言而喻。但是,在面對如何根據自身場(chǎng)景去設計一個(gè)CDN架構,或者如何選擇以一個(gè)適合自己CDN服務(wù)提供商,這里面也有許多問(wèn)題需要考量。

我們要設計穩定高效的CDN架構需要考慮哪些因素?

存儲介質(zhì) vs IO的關(guān)系

這里先簡(jiǎn)單的介紹一下SSD介質(zhì)的一些考量。SSD作為采用電子存儲介質(zhì)進(jìn)行數據存儲和讀取的一種技術(shù),突破了傳統機械硬盤(pán)的性能瓶頸,固態(tài)硬盤(pán)的全集成電路化、無(wú)任何機械運動(dòng)部件的革命性設計,擁有極高的讀取性能。

此環(huán)節,基本上不需要與傳統的SATA,SAS作性能上的比較,SSD的勝出毫無(wú)懸念。而在整體方案中,只需要考慮承受的價(jià)格、容量大小(如120GB,160GB,300GB等規格)、是否能夠滿(mǎn)足設計需求這些問(wèn)題。

作者建議:如果允許, 能使用SSD,就一定要考慮采用,用空間換性能,提升非常明顯。

這里給幾個(gè)SSD實(shí)戰的小貼士:

1.選擇EXT4文件系統+TRIM模式(mount -o defaults,noatime,nodiratime,barrier=0,discard),Btrfs建議少冒險

2.如果是使用三星的固態(tài)硬盤(pán),可以嘗試它貢獻給開(kāi)源的針對固態(tài)硬盤(pán)優(yōu)化的F2FS文件系統,相當不錯的選擇

3.I/O Schedulers調度算法,可以使用CFQ或者Deadline算法

4.內核參數調整,SSD所在硬盤(pán),echo 0 > /sys/block/sda/queue/rotational

隨機讀寫(xiě) vs 順序讀寫(xiě)

機械硬盤(pán)的連續讀寫(xiě)性很好,但隨機讀寫(xiě)性能很差。這是因為磁頭移動(dòng)至正確的磁道上需要時(shí)間,隨機讀寫(xiě)時(shí),也就需要磁頭和探針頻繁的轉動(dòng),而機械結構的磁頭和探針的位置調整是十分費時(shí)的,這就嚴重影響到硬盤(pán)的尋址速度,進(jìn)而影響到隨機寫(xiě)入速度。

在存儲小文件(圖片)、OLTP數據庫應用時(shí),隨機讀寫(xiě)性能(IOPS)是最重要指標。由于固態(tài)硬盤(pán)沒(méi)有普通硬盤(pán)的機械結構,也不存在機械硬盤(pán)的尋道問(wèn)題,因此系統能夠在低于1ms的時(shí)間內對任意位置存儲單元完成輸入/輸出操作。

作者經(jīng)驗筆記:

1.BIOS里務(wù)必開(kāi)啟AHCI模式(能支持SATA熱插拔和NCQ尋址方式,提速→300%,當然內核也要支持AHCI模式)

2.SSD的主控芯片相當于大腦中樞,非常重要,建議用Intel,Samsung,Marvell等知名品牌

3.SSD更適合應用在隨機讀寫(xiě)場(chǎng)景,因此需要認真思考什么場(chǎng)合應用

大文件 vs 小文件

大多數的存儲系統都是針對大文件而設計的,對小文件而言,大文件的存儲系統無(wú)法適應小文件的存儲需求,它造成元數據管理、數據布局和I/O管理、Cache管理、網(wǎng)絡(luò )開(kāi)銷(xiāo)等方面性能和存儲效率降低。

而且,文件系統的inode是線(xiàn)性存儲的,因此,我們遍歷一個(gè)目錄下的文件,需要讀取的磁盤(pán)的位置是來(lái)回跳躍的。不連續的讀取意味著(zhù)磁盤(pán)要不斷的進(jìn)行尋道,那么性能自然可想而知。

 

作者經(jīng)驗筆記:

1.無(wú)論大小文件,首選EXT4文件系統,Reiserfs/Btrfs不要輕易嘗試(雖然B-tree設計先進(jìn))

2.EXT4針對小文件有所改進(jìn),使用了inode預分配,這使得inode具有很好的局部性特征,同一目錄文件inode盡量放在一起,加速了目錄尋址與操作性能。

3.EXT4針對大文件使用了extent/delay/multi的數據塊分配策略。這些策略使得大文件的數據塊保持連續存儲在磁盤(pán)上,數據尋址次數大大減少,顯著(zhù)提高I/O吞吐量。

4.XFS在大文件方面,表現得不錯,可以使用。

5.SSD盡量應用在隨機小文件讀寫(xiě)的應用場(chǎng)景,畢竟容量寶貴,在有限的空間保存更多的文件是個(gè)明智之選。

6.有開(kāi)發(fā)實(shí)力的可以選用基于LevelDB或其它的KV存儲作底層文件系統,此為后話(huà)。

硬件紅利 vs 軟件設計

隨著(zhù)時(shí)間的推移,硬件升級已經(jīng)突破了摩爾定律,在硬件不斷升級帶來(lái)的紅利下,我們從最初的雙核到四核、六核、八核心&超線(xiàn)程,從2G、4G內存到 8G、16G甚至128G內存的情況下,同樣的價(jià)格所帶來(lái)的硬件升級,性能提升也是非??捎^(guān)的,因此,設置合適的硬件淘汰時(shí)間點(diǎn)也很重要,當老舊服務(wù)器超過(guò)3~5年的服役期,務(wù)必考慮做新陳代謝式的升級,充分利用好硬件潛力,保證架構設計平滑有序穩定的升級。

反觀(guān)軟件設計,相對硬件升級,可談的話(huà)題就比較多了,舉個(gè)反例:比如說(shuō) Squid軟件的缺點(diǎn)(當然,誕生于1996年的Squid與Apache同樣的古老,昔日的時(shí)代也是立下了汗馬功勞,但時(shí)代進(jìn)步就不能固步自封必須考慮革新):

1. 無(wú)法利用多核優(yōu)勢,造成單核CPU壓力太高;

2. 雞肋的DNS進(jìn)程必須要運行;

3. 無(wú)法利用大內存做緩存加速;

4. COSS設計上的先天缺陷,初始化甚至重啟后重建索引慢;

5. 偶然機器重啟,修復的效率非常漫長(cháng),慢到讓人崩潰。

更多詳情參考:

Varnish Cache 的架構筆記,為什么一些古老的軟件正在被新的設計思想所淘汰,如Nginx替代Apache,ATS替代Squid,Postfix替代Sendmail等等。

建議:

1. 負載均衡技術(shù)應用得當,如haproxy,lvs。一方面可以互援互備,另一方面也可以方便輪流升級;

2. 要嘗試新的軟件開(kāi)發(fā)思路和網(wǎng)絡(luò )模型,如epoll,aio,內存加速,連接復用和事件驅動(dòng)機制。

系統優(yōu)化

1. 系統服務(wù)精簡(jiǎn)瘦身;

2. 文件系統性能調優(yōu);

3. 提高磁盤(pán)IO性能;

4. 優(yōu)化網(wǎng)絡(luò )性能;

5. 優(yōu)化路由策略;

6. 數據庫的優(yōu)化;

……

這里就不展開(kāi)詳述了,以后有機會(huì )再介紹。

我們有哪些開(kāi)源的軟件可供選擇,我們了解它們嗎?

開(kāi)源世界里能夠擔當反向代理及緩存的軟件不少,而且各有優(yōu)劣。在這里,我就不一一介紹每個(gè)軟件的介紹了,大家可以自行參考相關(guān)鏈接了解。

CDN架構上要充分體現出抗攻擊能力和靈活應變的原則。因此,我們將CDN節點(diǎn)分解成反向代理+緩存加速+攻擊防御這三個(gè)不同層次的功能結構。

•反向代理功能(作用:路由加速,隱藏主節點(diǎn),負載均衡)

•緩存加速功能(作用:靜態(tài)推送,節省后端主節點(diǎn)帶寬)

•攻擊防御功能(作用:快速解析,匹配過(guò)濾惡意攻擊)

作為一個(gè)架構師,就必須要考慮如何選型,我們從性能、功能、配置上來(lái)進(jìn)行比較篩選。

現在,我們對這三層功能結構充分了解,在測試調優(yōu)及生產(chǎn)線(xiàn)的實(shí)踐檢驗中,我們發(fā)現:

•HTTP防御性能:HAProxy在應對大流量CC攻擊時(shí),做正則匹配及頭部過(guò)濾時(shí),CPU消耗只占10%~20%。其它軟件均狂占CPU資源約90%以上,容易成瓶頸導致整個(gè)系統無(wú)響應。

•反向代理性能:?jiǎn)渭冝D發(fā)效率以?xún)却婢彺嫘偷腣arnish性能最強,ATS和Nginx次之,考慮大容量緩存因素,ATS也是個(gè)不錯的選擇。Nginx是專(zhuān)門(mén)針對C10K的產(chǎn)物,性能不錯,配合自己編寫(xiě)插件,業(yè)務(wù)可塑性很強。

•過(guò)濾規則的可配置性:HAProxy,ATS,Squid均支持規則文件讀取、ACL定制和熱加載、熱啟動(dòng)。Nginx則不支持外部文件正則匹配,略差一點(diǎn),但可塑性強。

負載均衡

高可用性:LVS

LVS是個(gè)重量級、高效穩定的四層轉發(fā),雖然不能作七層HTTP協(xié)議的識別,但完全可以架設在七層之前,與上述的各種軟件搭配使用。

所以,LVS的使用并不會(huì )影響網(wǎng)絡(luò )結構,后續仍然可以想上就上,前提是要兼顧到LVS的單點(diǎn)故障,這個(gè)我們可以通過(guò)Keepalived/Heartbeat來(lái)實(shí)現可用性和可靠性的保證。

作者簡(jiǎn)介:

邵海楊,UPYUN(又拍云)聯(lián)合創(chuàng )始人兼運維總監,來(lái)自杭州Linux用戶(hù)組,新浪微博@海洋之心-悟空 ,資深系統運維架構師,業(yè)余撰稿人,致力于開(kāi)源軟件及前沿科技的研究和探索。

相關(guān)閱讀