愛奇藝 CDN 運維平臺實踐

CDN 的全稱是 Content Delivery Network,即內容分發網絡。它是構建在現有網絡基礎之上的智能虛擬網絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發、調度等功能模塊,使用戶就近獲取所需內容,降低網絡擁塞,提高用戶訪問響應速度和命中率。

簡單來說,CDN 就是爲了網絡內容訪問速度 “更快 “而生的。那麼如今的網絡本身四通八達,爲什麼還需要 CDN 呢?

一、爲什麼需要 CDN?

舉個簡單的例子,假設我們忽略網絡傳輸的損耗、設備延時,網絡傳輸速度接近光速,是 30 萬公里每秒,從東京到美國硅谷的距離大概爲 1 萬公里,也就是說,如果你的服務器在東京,你上傳了一張很小的圖片,美國用戶訪問至少需要 60 毫秒。而且,這只是理論數據,現實世界中,網絡環境是十分複雜的,跨地域、跨運營商、網絡擁塞、抖動等問題,都會積少成多,使得延時成倍增加,還有可能訪問失敗,最終影響訪問體驗。

CDN 的出現,正是爲了解決這個問題。我們將這張圖片分發並緩存在美國的 CDN 節點之上,美國用戶就無需從東京獲取數據,直接從就近的美國本地 CDN 節點獲取到圖片,這大大節省了傳輸時間,提升訪問效率。CDN 的節點通常會遍佈全球,源站的文件會被被緩存到世界各地,這樣全球用戶都可以實現快速訪問。

它有點像分佈於各地的倉儲物流點,很多品牌會預先在倉儲物流點儲備一些爆款商品(靜態文件使用 CDN 進行緩存),當用戶從電商平臺下單購買貨物的時候(用戶發起請求),平臺根據用戶的收穫地址就近匹配到最近的倉儲物流點並直接進行派貨(就近分發),讓用戶以最快的速度拿到快遞包裹(分發的內容)。我們可以用實際的生活經驗來做個對比,如果從江浙滬包郵區寄給杭州的用戶,一般第二天就能到,如果是從北京、深圳發貨,一般需要 2-3 天!

這就是 CDN 的緣起。簡單來說,它就是一個分佈式的緩存服務器,主要作用就是儘可能減少資源在轉發、傳輸、鏈路抖動等情況下的時延,保障信息的連貫與極速。當下,我們生活在互聯網世界,視頻和直播在數據上有巨大的吞吐量,CDN 扮演着護航者和加速者的角色,更快速、穩定地將信息觸達每一個用戶。

二、CDN 的工作原理

下面,我們來進一步瞭解下 CDN 的工作原理。首先,關於 CDN 的那些名詞,需要掃個盲。

接下來是 CDN 的工作原理,最簡單的 CDN 網絡由一個 DNS 服務器和幾臺緩存服務器組成,如下圖所示:

三、CDN 的關鍵技術組件

**看似複雜龐大的 CDN 系統,其中有幾個關鍵技術組件:**調度、緩存和安全。

1、 **調度是 CDN 中的重中之重,**流量接入、流量牽引、選擇合適的 CDN 節點服務器等工作,都是在調度環節完成的。

2、 緩存也叫 Cache,是 CDN 領域最重要的一個組成部分,對於靜態內容分發,大至視頻點播、文件下載,小至 html 頁面、jpg/gif/png 圖片、css/js 等,都可以緩存到本地,最終用戶(網民)訪問時,不必回到原始服務器拿取數據,從而節省了時間、降低了源站服務器的網絡帶寬支出和負載。對於 CDN 來說,每臺 Cache 機器每天的請求量是十分驚人的,磁盤上所存儲的內容量也多得可怕,十幾塊 TB 級的硬盤被塞滿數據也是很正常的事情,因此當一個請求到來時,能迅速檢索出磁盤上的文件並讀取、吐給最終用戶成了一件很重要的事情。

3、 針對各類網絡攻擊,比如帶寬飽和攻擊、反射攻擊等蠻力型攻擊,還有 XSS 跨站、SQL 注入、漏洞利用等技巧型攻擊,**CDN 可以從隱藏源站、分佈式架構、安全防護三個層面進行安全防護。**首先,當網站接入 CDN 後,源站信息會被隔離,攻擊者就無法直接對源站進行直接攻擊,其次,CDN 天然分佈式架構可以當某些節點被攻擊的時候,很快察覺異常並智能調度至正常節點,確保業務穩定,再次,對於技巧性攻擊,在 CDN 邊緣節點前置安全防護能力,與中心聯動形成更完整、更貼近邊緣的防護策略,有利於安全隱患的攔截。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/JkC8Wt0XkN7-jw3FWuLr0w