徹底透視CDN痛點(diǎn),互聯(lián)網(wǎng)老兵聊聊CDN的那些事兒!
原創(chuàng)【51CTO.com原創(chuàng)稿件】2000 年左右是全球互聯(lián)網(wǎng)發(fā)展的鼎盛時(shí)期,由于 HTTP 網(wǎng)頁(yè)內(nèi)容加速的需求日益暴增,進(jìn)而 CDN 成為了產(chǎn)業(yè)關(guān)注的熱點(diǎn)。當(dāng)下,CDN 行業(yè)化、智能化越來(lái)越明顯,主要是因?yàn)槊總€(gè)行業(yè)在技術(shù)、使用場(chǎng)景等方面都有個(gè)性化的需求。
近日,51CTO 以“Tech Neo”為主題的技術(shù)沙龍第十五期于北京舉行,本次沙龍邀請(qǐng)了來(lái)自國(guó)美互聯(lián)網(wǎng)應(yīng)用運(yùn)維技術(shù)負(fù)責(zé)人張高明。這位互聯(lián)網(wǎng)老兵的演講,不僅讓開發(fā)者對(duì)智能 CDN 有了更深入的了解,而且從中可以窺見國(guó)美互聯(lián)網(wǎng)在 CDN 方向的實(shí)踐與痛點(diǎn)。
目前,國(guó)美互聯(lián)網(wǎng)的體量較小,與大型互聯(lián)網(wǎng)公司有一定差距。但麻雀雖小五臟俱全,在 CDN 方面的應(yīng)用有很多。包括視頻、圖片、Js、css、Html 等傳統(tǒng)的一些內(nèi)容;以及 APP 的安裝包、更新包、下載包等內(nèi)容;還有抗 D,防攻擊方面的一系列產(chǎn)品。
介紹下抗 D 的產(chǎn)品,2016 年,在 APP 推廣過(guò)程中受到幾次攻擊,導(dǎo)致服務(wù)處于不可用狀態(tài),非常被動(dòng)。當(dāng)時(shí)可選的解決方案有兩套:
- 自研,但受到多方面限制,如資源不足(機(jī)房帶寬、服務(wù)器都需要采購(gòu))、沒有人員儲(chǔ)備、時(shí)間周期不允許等。
- 和已經(jīng)有成熟產(chǎn)品的第三方公司合作,鑒于實(shí)際情況,采用第二套方案。產(chǎn)品的確沒有出現(xiàn)問(wèn)題,但對(duì)于第三方公司提供的數(shù)據(jù)沒有有效的方法能夠驗(yàn)證有效性和真實(shí)性。
智能 CDN 的六大元素
智能 CDN 也是 CDN,但是智能化是趨勢(shì),智能化的本質(zhì)是通過(guò)技術(shù)、智能手段為消費(fèi)者提供更好的服務(wù)。
談智能 CDN 之前,有必要先來(lái)了解一下 CDN 的使用模型:
- 從瀏覽器或其他途徑請(qǐng)求資源。
- 由 DNS 對(duì)域名進(jìn)行解析得到真實(shí) IP 的地址。
- 通過(guò)鏈路傳輸,到達(dá)目的機(jī)房。
- 經(jīng)過(guò) CDN 調(diào)度器把資源返給用戶(CDN 跳轉(zhuǎn)或請(qǐng)求資源)。
基于 CDN 的使用模型,依次具體地分析智能 CDN,如下圖所示:
智能 CDN 由智能 DNS、鏈路優(yōu)化以及智能調(diào)度器、大數(shù)據(jù)、AI、人六大元素組成。
智能 DNS
在目前所有網(wǎng)絡(luò)活動(dòng)中,DNS 的作用可以說(shuō)是不可替代的。早期 DNS 相對(duì)簡(jiǎn)單,功能也較單一,這里我們稱之為 DNS 1.0。DNS 1.0 的作用非常簡(jiǎn)單,只是收到網(wǎng)址,反饋 IP 地址。隨著技術(shù)發(fā)展和產(chǎn)品需要,DNS 2.0、3.0 先后出現(xiàn)。DNS 2.0 是根據(jù)用戶所在 ISP、區(qū)域,智能提供最優(yōu) IP 地址,使得訪問(wèn)速度得到提升。DNS 3.0 彌補(bǔ)了之前 1.0、2.0 沒有的狀態(tài)缺陷,新增了健康檢查的功能。智能剔除異常節(jié)點(diǎn),把可用且最優(yōu)的節(jié)點(diǎn)返給用戶。
這里值得提醒的是 DNS 有兩個(gè)不可規(guī)避的坎兒:
- 進(jìn)行全網(wǎng) DNS 更新時(shí),時(shí)間不可控。當(dāng)更改 DNS 配置時(shí),用戶的生效時(shí)間不一,有時(shí)會(huì)達(dá)到不能容忍的時(shí)間長(zhǎng)度。
- 用戶地址解析的準(zhǔn)確度完全依賴于用戶 Local Dns 的設(shè)置。DNS 是以 Local Dns 作為反饋的唯一依據(jù),反饋?zhàn)罱K地址。 一旦 Local Dns 設(shè)置錯(cuò)誤,那么地址一定不是最優(yōu),甚至有可能是錯(cuò)誤的。這樣一來(lái),就會(huì)導(dǎo)致用戶訪問(wèn)過(guò)慢或訪問(wèn)不到資源的情況出現(xiàn)。
鏈路優(yōu)化
中國(guó)網(wǎng)絡(luò)的復(fù)雜度眾所周知,運(yùn)營(yíng)商多,并且每個(gè)運(yùn)營(yíng)商的用戶都各自為戰(zhàn),融合起來(lái)并非易事。在跨網(wǎng)絡(luò)請(qǐng)求情況下,不僅僅是慢的問(wèn)題,有時(shí)候甚至無(wú)法訪問(wèn)目的資源。
鏈路優(yōu)化方面,可以借鑒一些成熟方案,如協(xié)議的優(yōu)化,比如 BGP、OSPF 等。還有就是資源部分,如通過(guò)帶寬的建設(shè)、POP 點(diǎn)建設(shè)、機(jī)房的擴(kuò)容進(jìn)一步對(duì)鏈路進(jìn)行優(yōu)化。
智能調(diào)度器
DNS 在細(xì)分時(shí)顆粒度很大,不能精確為用戶區(qū)分優(yōu)化策略。想要提升精確度,就要靠調(diào)度器來(lái)實(shí)現(xiàn)。調(diào)度器會(huì)基于訪問(wèn)請(qǐng)求資源的熱度、大小、內(nèi)部資源情況為用戶提供最優(yōu)的節(jié)點(diǎn)。
大數(shù)據(jù)與 AI
談智能化不得不提大數(shù)據(jù)與 AI,因?yàn)檫@兩者正在給我們的生活帶來(lái)潛移默化的影響。對(duì)于 DOS / DDOS 攻擊,大數(shù)據(jù)可以給訪問(wèn)源地址合適的權(quán)重,知道哪些 ip"更危險(xiǎn)"(以前發(fā)起過(guò)攻擊),更加精確地定位是普通訪問(wèn)還是攻擊,進(jìn)而能夠更加有力的防御攻擊。
邊緣計(jì)算與 CDN 的結(jié)合,帶動(dòng)了整個(gè)“人工智能+云”在各個(gè)場(chǎng)景的服務(wù)。以視頻直播為例,同城互動(dòng)直播放到邊緣節(jié)點(diǎn)里去成本可能會(huì)減少 50%,涉黃的內(nèi)容 90% 都能夠在邊緣網(wǎng)絡(luò)上處理。這其中涉及到與 AI 相結(jié)合的部分,云廠商在其間擁有優(yōu)勢(shì):一邊有數(shù)據(jù)中心,一邊運(yùn)營(yíng)邊緣網(wǎng)絡(luò),并且能夠知道這兩者之間如何高效合作。而單純的 CDN 公司在所獲得的數(shù)據(jù)不多的情況下可能很難判斷哪些東西需要過(guò)濾和分發(fā),最終還是需要與云及AI協(xié)同去完成。
人·決策
為什么要在智能 CDN 模塊加入人的元素呢?因?yàn)榇蠖嗲闆r下,都是人在做決策,像采用哪種網(wǎng)絡(luò)模型、哪種算法、哪種分布式結(jié)構(gòu)等等;另一方面,就是人的服務(wù)。
綜上這些是張高明老師對(duì)智能 CDN 的一些見解,但國(guó)美互聯(lián)網(wǎng)因?yàn)榫?、時(shí)間等原因沒有涉及到這些。下面我們來(lái)看看國(guó)美互聯(lián)網(wǎng)在 CDN 方面的優(yōu)化實(shí)踐和一些不可避免的痛點(diǎn)。
國(guó)美 CDN 的優(yōu)化實(shí)踐
下面主要介紹國(guó)美互聯(lián)網(wǎng)在 APP、IMG 和視頻三方面的 CDN 優(yōu)化實(shí)踐。
APP 端
APP 端主要做的是針對(duì)靜態(tài)文件進(jìn)行優(yōu)化,采用方式如下:
- 縮略圖。這里最主要的事情是圖片匹配,國(guó)美互聯(lián)網(wǎng)之前的縮略圖更適用于 PC 端,不是很合理。這里的解決方案是基于自身訪問(wèn)和第三方的數(shù)據(jù),得到主流機(jī)型的標(biāo)準(zhǔn),再根據(jù)產(chǎn)品需求,制定五種縮略圖。這樣做在提升用戶訪問(wèn)速度的同時(shí)還對(duì)帶寬進(jìn)行了優(yōu)化。
- 兩種 Cache。前端開發(fā)有一個(gè)簡(jiǎn)單的技術(shù),叫 App Cache。把重要的 Cache 緩存到本地,一定時(shí)間段內(nèi),請(qǐng)求時(shí)無(wú)須重新下載,會(huì)對(duì)提升用戶訪問(wèn)質(zhì)量有很大幫助。
- 短緩存。規(guī)定合理的本地緩存時(shí)間,提升用戶的訪問(wèn)速度,尤其是弱網(wǎng)情況下,效果特別好。同時(shí),還能優(yōu)化帶寬。
IMG
圖片部分,采用 WebP 的格式,谷歌推出這個(gè)圖片格式的優(yōu)點(diǎn)非常明顯,和其他格式相比,WebP 格式僅占用 60%-70% 資源。它的缺點(diǎn)也同樣明顯,就是不是所有瀏覽器都支持。
在移動(dòng)端就是 Android 的手機(jī)系統(tǒng)支持,但是 IOS 的不支持。國(guó)美互聯(lián)網(wǎng)的解決方案是在 CDN 中儲(chǔ)存 WebP 和 JPG 兩種 Cache,在調(diào)度器設(shè)置 UA 判斷流程,對(duì)節(jié)省帶寬有很大改進(jìn)。
視頻
視頻部分,主要涉及推、拉模式選擇、CDN 調(diào)度器、自適應(yīng)播放器:
- 推、拉模式選擇。以當(dāng)前的技術(shù)手段,無(wú)論是把視頻流推給 CDN,還是 CDN 主動(dòng)來(lái)拉視頻流,在技術(shù)上都可以實(shí)現(xiàn)。但在特定場(chǎng)景下,比如故障排查時(shí),還是要選擇 CDN 來(lái)拉的方式,這樣對(duì)視頻流的故障排查就可以由 CDN 提供方來(lái)完成。
- CDN調(diào)度器。CDN 流量是分階段計(jì)算的,1G 以下、1~2G 價(jià)格不同,通過(guò) CDN 調(diào)度可以把成本控制在最優(yōu)。還有是在出現(xiàn)異常情況下,對(duì)用戶的訪問(wèn)也可做一些調(diào)整。這上面的調(diào)整比在 DNS 層面調(diào)整更迅速。
- 自適應(yīng)播放器。自主開發(fā),能根據(jù)不同的業(yè)務(wù)特點(diǎn)采用自適應(yīng)播放器。比如實(shí)時(shí)性要求高的直播,就使用支持 rtmp 的播放器,需要回看的情況下,就使用支持 HLS 的播放器。
CDN 優(yōu)化不可避免的痛點(diǎn)
在 CDN 優(yōu)化過(guò)程中,也有很多痛點(diǎn)不可避免。這里主要分享三方面:ISP、CDN 廠商、內(nèi)外部用戶。
ISP
說(shuō)到 CDN 優(yōu)化,必然離不開 ISP(互聯(lián)網(wǎng)服務(wù)提供商),這里涉及到如下四個(gè)方面:
- 劫持。常見的劫持有兩種。第一種是 DNS 劫持,可通過(guò)商務(wù)手段解決,但時(shí)間跨度很長(zhǎng);還可通過(guò)私人關(guān)系解決,但不是每個(gè)人都有這種關(guān)系。針對(duì)這種劫持,目前還沒有特別好的解決方案。
- 還有一種就是內(nèi)容劫持,會(huì)在 PC 或 APP 端出現(xiàn)其他公司的廣告,這種劫持的解決方案是做全站 HTTPS。
- IP。IP 使用比較混亂,運(yùn)營(yíng)商之間有混用的情況。如出現(xiàn)跨運(yùn)營(yíng)商的情況,對(duì)用戶進(jìn)行 DNS 解析時(shí),精確度就會(huì)受到影響。
- 移動(dòng)端。用手機(jī)進(jìn)行網(wǎng)絡(luò)訪問(wèn),第一跳肯定是手機(jī)和基站之間的連接。目前基于大的環(huán)境,手機(jī)和基站在通訊過(guò)程中的延遲無(wú)法避免,而且也沒有有效的監(jiān)控方法。
- GFW。這個(gè)是所有擁有海外業(yè)務(wù)公司的痛點(diǎn),目前國(guó)美互聯(lián)網(wǎng)采用的是第三方的設(shè)備。
CDN廠商
CDN 廠商這部分,涉及四個(gè)方面:
- 服務(wù)質(zhì)量。這里的服務(wù)質(zhì)量其一是指節(jié)點(diǎn)的響應(yīng)速度,其二是節(jié)點(diǎn)正常運(yùn)行的保障。服務(wù)質(zhì)量是一切的前提條件。
- 計(jì)費(fèi)方式。一般計(jì)費(fèi)方式有按平均帶寬、95 計(jì)費(fèi),第四峰值計(jì)費(fèi)等,根據(jù)業(yè)務(wù)情況可能還有根據(jù)訪問(wèn)次數(shù)計(jì)費(fèi)。一般采用 95 計(jì)費(fèi)即可,具體情況根據(jù)業(yè)務(wù)來(lái)定。
- 以國(guó)美直播舉例,發(fā)展初期,直播場(chǎng)次少,基本一月一次,那么按照 95 計(jì)費(fèi)是比較合理的,對(duì)公司成本也是最優(yōu)的。
- 個(gè)性化需求。有些 CDN 廠商,不太愿意提供個(gè)性化的需求,所以在合作前期就要溝通好,因?yàn)槊總€(gè)公司,每個(gè)產(chǎn)品對(duì) CDN 的需求都是不一樣的。
- 朋友非敵人。和 CDN 廠商合作,是朋友而非敵人的關(guān)系,是相互學(xué)習(xí)的過(guò)程。在合作的過(guò)程中,都能學(xué)習(xí)到很多知識(shí)。
用戶
用戶分為外部、內(nèi)部兩種,有各自的痛點(diǎn):
- 外部用戶。當(dāng)對(duì)一些故障進(jìn)行修復(fù)時(shí),需要外部用戶的配合,可能會(huì)涉及進(jìn)行有些用戶很反感的遠(yuǎn)程操作。
- 內(nèi)部用戶。當(dāng)內(nèi)部用戶發(fā)現(xiàn)故障時(shí),應(yīng)該第一時(shí)間反饋數(shù)據(jù),進(jìn)而縮短解決問(wèn)題的時(shí)間。做為互聯(lián)網(wǎng)工程師,應(yīng)該具備相關(guān)的網(wǎng)絡(luò)基礎(chǔ)知識(shí)。
結(jié)束語(yǔ)
從傳統(tǒng)的 CDN 加速到目前的智能 CDN,速度發(fā)展的非常快。CDN 是用戶訪問(wèn)的入口,其服務(wù)質(zhì)量直接關(guān)系使用公司的成敗。雖然如今智能化是趨勢(shì),是方向,但是最基本的服務(wù)質(zhì)量才是所有的根本。
作為使用方的我們,希望 CDN 使用應(yīng)該是:
- 專業(yè)服務(wù)。
- 智能技術(shù)。
- 量身定制。
張高明為自己定義的兩個(gè)標(biāo)簽是“互聯(lián)網(wǎng)老兵,電商新兵”,曾就職過(guò) SP、傳統(tǒng)互聯(lián)網(wǎng)、電商。目前就職國(guó)美互聯(lián)網(wǎng),是應(yīng)用運(yùn)維技術(shù)負(fù)責(zé)人,主要負(fù)責(zé)站內(nèi)應(yīng)用運(yùn)維與站外第三方合作。
沙龍相關(guān)文章
每日數(shù)億視頻播放量,秒拍播放鏈路優(yōu)化實(shí)踐
給高并發(fā)降溫,美團(tuán)高性能、高可靠四層負(fù)載均衡MGW優(yōu)化實(shí)踐
10 月 28 日 / 北京,第十六期“Tech Neo”沙龍,主題:“自動(dòng)化運(yùn)維與 DevOps”,點(diǎn)擊圖片,立即報(bào)名。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】
























