內容路徑難以理解或者讓我們談談 CDN

內容路徑難以理解或者讓我們談談 CDN

免責聲明:
本文不包含熟悉 CDN 概念的讀者以前不知道的信息,而是具有技術評論的性質

第一個網頁出現在 1990 年,大小只有幾個位元組。 從那時起,內容在質量和數量上都得到了擴展。 IT生態系統的發展導致現代網頁以兆位元組為單位,而網路頻寬增加的趨勢每年都在加強。 內容提供者如何能夠涵蓋廣泛的地理範圍並為世界各地的用戶提供高速的資訊存取? 內容交付和分發網路(也稱為內容交付網路或簡稱 CDN)必須應對這些任務。

網路上的「重度」內容越來越多。 同時,大量研究表明,如果 Web 服務載入時間超過 4-5 秒,使用者就不想處理這些服務。 網站載入速度過低會導致受眾流失,這肯定會導致流量、轉換率和利潤的下降。 理論上,內容傳遞網路 (CDN) 可以消除這些問題及其後果。 但實際上,像往常一樣,一切都取決於特定案例的細節和細微差別,這一領域有很多細節和細微差別。

分散式網路的想法從何而來?

讓我們先簡要回顧一下歷史和術語的定義。 CDN是由一組位於不同地點的伺服器組成的網絡,提供覆蓋大量使用者的互聯網內容存取。 分散式網路的想法是同時擁有多個存在點(PoP),這些點位於來源伺服器外部。 這樣的系統將更快地處理傳入請求的陣列,從而提高任何資料的回應和傳輸速度。

在網路發​​展的頂峰時期,即提供用戶內容的問題急劇出現。 90年代中期。 當時的伺服器,其性能甚至達不到現代旗艦筆記型電腦,難以承受負載,無法應對不斷增長的流量。 微軟每年花費數億美元用於與資訊高速公路相關的研究(人們立即會想到比爾蓋茲著名的 640 KB)。 為了解決這些問題,我們必須使用分層緩存,從數據機切換到光纖,並詳細分析網路拓撲。 這種情況讓人想起一輛老式機車,它沿著鐵軌疾馳,一路上都透過各種可能的手段進行現代化改造,以提高速度。

早在 90 年代末,入口網站的所有者就意識到,為了減少負載並提供所需的請求,他們需要使用中間伺服器。 這就是第一個 CDN 的出現方式,它從分佈在世界各地的不同伺服器分發靜態內容。 大約在同一時間,出現了基於分散式網路的業務。 全球最大(至少是最大)CDN 供應商 Akamai 於 1998 年開始其旅程,成為該領域的先驅。 幾年後,CDN 變得普遍,內容交付和貢獻的收入每月達到數千萬美元。

如今,每次造訪高流量的商業頁面或在社群網路上進行交流時,我們都會遇到 CDN。 該服務由:Amazon、Cloudflare、Akamai 以及許多其他跨國提供者提供。 此外,大公司傾向於使用自己的CDN,這為他們帶來了內容交付速度和品質方面的許多優勢。 如果 Facebook 沒有分散式網絡,而只滿足於位於美國的原始伺服器,那麼載入東歐用戶的個人資料可能需要更長的時間。

關於 CDN 和串流媒體的幾句話

FutureSource Consulting 對音樂產業進行了分析,得出的結論是,到 2023 年,音樂串流服務的訂閱人數將達到近 90 億人。 此外,服務業 XNUMX% 以上的收入將來自串流音訊。 影片的情況也類似;「讓我們一起玩」、「線上音樂會」和「線上電影」等術語已經成為流行詞彙中的根深蒂固。 蘋果、谷歌、YouTube 和許多其他公司都有自己的串流服務。

在早期推出時,CDN 主要用於具有靜態內容的網站。 靜態是不隨使用者操作、時間和其他因素而改變的訊息,即不是個性化的。 但串流媒體視訊和音訊服務的興起為分散式網路增加了另一個常見用例。 位於世界各地靠近目標受眾的中間伺服器可以在高峰負載期間提供穩定的內容訪問,從而消除互聯網瓶頸。

Какэтоработает

所有 CDN 的本質大致相同:使用中介者能夠更快地將內容交付給最終消費者。 其工作原理如下:用戶發送下載檔案的請求,CDN伺服器接收該請求,CDN伺服器一次性調用原始伺服器並將內容提供給用戶。 同時,CDN 會在給定的時間內快取文件,並從自己的快取中處理所有後續請求。 或者,他們還可以從來源伺服器預先載入檔案、調整快取保留期、壓縮大檔案等等。 在最理想的情況下,主機將整個流傳遞到 CDN 節點,CDN 節點已經使用自己的資源向使用者傳送內容。 不言而喻,有效的資訊快取以及將請求分配到網路而不是一台伺服器,將帶來更平衡的流量負載。

內容路徑難以理解或者讓我們談談 CDN
CDN 操作的第二個重要特徵是減少資料傳輸延遲(也稱為 RTT - 往返時間)。 建立 TCP 連線、下載媒體內容、JS 檔案、啟動 TLS 會話,這一切都取決於 ping。 顯然,你離源頭越近,你就能越快得到回應。 畢竟,光速也有極限:透過光纖傳輸的速度約為 200 萬公里/秒。 這意味著從莫斯科到華盛頓的RTT延遲約為75毫秒,而且這是在沒有中間設備影響的情況下。

為了更好地了解內容分發網路解決的問題,以下是當前解決方案的清單:

  • Google、Yandex、MaxCDN(使用免費CDN分發JS庫,在世界大多數國家擁有90多個存在點);
  • Cloudinary、Cloudimage、Google(用戶端優化服務與函式庫:圖片、影片、字體等);
  • Jetpack、Incapsula、Swarmify 等(內容管理系統中的資源最佳化:bitrix、wordpress等);
  • CDNVideo、StackPath、NGENIX、Megafon(用於分發靜態內容的 CDN,用作通用網路);
  • Imperva、Cloudflare(加速網站載入的解決方案)。

清單中的前 3 種 CDN 旨在僅傳輸來自主伺服器的部分流量。 其餘 2 個用作成熟的代理伺服器,完全傳送來自來源主機的通道。

該技術為誰提供了哪些好處?

理論上,任何向企業客戶或個人(B2B 或 B2C)銷售其產品/服務的網站都可以從實施 CDN 中受益。 重要的是它的目標受眾,即用戶群位於其地理位置之外。 但即使情況並非如此,分發網路也將有助於大量內容的負載平衡。

眾所周知,幾千個執行緒就足以堵塞伺服器通道。 因此,向大眾分發視訊廣播必然會形成一個瓶頸——網路頻道的頻寬。 當網站上有大量未縫合的小圖像(例如產品預覽)時,我們會看到相同的情況。 來源伺服器在處理任意數量的請求時使用一個 TCP 連接,這會將下載排隊。 新增 CDN 需要跨多個網域分發請求並使用多個 TCP 連接,從而減輕通道負載。 即使在最糟糕的情況下,往返延遲公式也會給出 6-7 RRT 的值,並採用以下形式:TCP+TLS+DNS。 這還包括與啟動設備上的無線電通道並將訊號傳輸到蜂窩塔相關的延遲。

專家總結了線上業務的技術優勢,強調了以下幾點:

  1. 快速基礎設施擴展+減少頻寬。 更多伺服器=更多儲存資訊的點。 因此,一個點每單位時間處理的流量較少,這意味著它的吞吐量可能較低。 此外,優化工具也開始發揮作用,讓您能夠應對尖峰負載而不浪費時間。
  2. ping 值較低。 我們已經提到過,人們不喜歡在網路上等待太久。 因此,高 ping 會導致高跳出率。 延遲可能是由於伺服器上的資料處理問題、使用舊設備或網路拓撲結構考慮不周造成的。 這些問題大多可以透過內容傳遞網路得到部分解決。 儘管這裡需要注意的是,只有當「消費者 ping」超過 80-90 毫秒時,實施該技術的真正好處才會顯現出來,而這是從莫斯科到紐約的距離。

    內容路徑難以理解或者讓我們談談 CDN

  3. 資料安全。 DDos(拒絕服務病毒攻擊)的目的是使伺服器崩潰以獲得某種利益。 一台伺服器比分散式網路更容易受到資訊安全漏洞的影響(安裝像CloudFlare這樣的巨頭的基礎設施並不是一件容易的事)。 由於使用過濾器和在網路上正確分配請求,您可以輕鬆防止人為造成的存取合法流量的困難。
  4. 快速的內容分發和附加服務功能。 將大量資訊分發到伺服器網路上將可以將報價快速傳達給最終消費者。 再說一次,你不需要尋找太多的例子——只要記住亞馬遜和全球速賣通就可以了。
  5. 「掩蓋」主站點問題的能力。 無需等到 DNS 更新;您可以將其傳輸到新位置並分發先前快取的內容。 這反過來又可以提高容錯能力。

我們整理了優點。 現在讓我們看看哪些利基市場受益於此。

廣告業務

廣告是進步的引擎。 為防止引擎燒毀,必須適度載重。 因此,試圖應對現代數位世界的廣告業務面臨「重內容」的問題。 重媒體是指需要高網路頻寬的多媒體廣告(主要是動畫橫幅和影片)。 有多媒體的網站需要很長時間才能加載,並且可能會卡頓,考驗用戶的神經強度。 大多數人甚至在下載所有可用資訊之前就放棄了這些資源。 廣告公司可以利用CDN來解決這些問題。

Продажи

電子商務需要不斷擴大其地域覆蓋範圍。 另一個重要的一點是與競爭對手的鬥爭,每個細分市場都有許多競爭對手。 如果一個網站無法滿足使用者的要求(包括載入時間較長),它就不會受歡迎,也無法帶來持續的高轉換。 實施 CDN 應該證明其在處理來自不同位置的資料請求方面的優勢。 此外,流量分配將有助於防止流量峰值和隨後的伺服器故障。

娛樂內容平台

從下載電影和遊戲到串流媒體視頻,各種娛樂平台都適合這裡。 儘管該技術適用於靜態數據,但流數據可以透過中繼器更快到達用戶。 再次強調,快取 CDN 資訊是大型入口網站所有者的救星——多媒體儲存。

線上遊戲

網路遊戲必須放在單獨的部分。 如果廣告需要大量頻寬,那麼線上專案就更需要資源。 提供者面臨兩個方面的問題:伺服器存取速度+確保具有精美圖形的高遊戲效能。 線上遊戲的 CDN 是一個擁有所謂「推送區」的機會,開發者可以將遊戲儲存在靠近用戶的伺服器上。 這可以讓您減少對原始伺服器存取速度的影響,從而確保隨時隨地舒適的遊戲體驗。

為什麼CDN不是萬靈藥

內容路徑難以理解或者讓我們談談 CDN
儘管優勢明顯,但並不是每個人也不總是努力將技術引入他們的業務。 這是為什麼? 矛盾的是,在優點的同時也出現了一些缺點,也增加了一些與網路部署相關的要點。 行銷人員會華麗地談論科技的所有優勢,卻忘記提及它們在許多情況下都變得毫無意義。 如果我們更詳細地了解 CDN 的缺點,則值得強調:

  • 僅適用於靜力學。 是的,大多數現代網站的動態內容比例都很低。 但如果頁面是個人化的,CDN 將無法提供幫助(除非卸載大量流量);
  • 快取延遲。 優化本身是配電網路的主要優勢之一。 但是,當您在來源伺服器上進行更改時,CDN 在其所有伺服器上重新快取它需要一些時間;
  • 大規模封鎖。 如果因任何原因 CDN 的 IP 位址被禁止,則其上託管的所有網站都會關閉;
  • 在大多數情況下,瀏覽器將建立兩個連線(到來源伺服器和 CDN)。 這些都是額外的毫秒等待;
  • 綁定到先前分配給它的項目(包括不存在的項目)的IP位址。 結果,我們從谷歌搜尋機器人得到了複雜的排名,並且在 SEO 推廣過程中很難將網站帶到頂部;
  • CDN 節點是潛在的故障點。 如果您使用它們,請務必事先了解系統路由的工作原理以及在使用網站時可能會發生哪些錯誤;
  • 這很陳腔濫調,但你必須為內容交付服務付費。 一般來說,成本與流量成正比,這意味著可能需要進行控制來規劃預算。

一個重要事實:即使 CDN 距離使用者很近也不能保證低 ping。 可以建立從客戶端到位於另一個國家甚至另一個大陸的主機的路由。 這取決於特定網路的路由策略及其與電信業者的關係(對等互連)。 許多大型 CDN 供應商都有多種計劃,其中成本直接影響向目標用戶交付內容時存在點的接近程度。

有機會 - 推出您自己的 CDN

您是否對提供內容傳遞網路服務的公司的政策不滿意,但您的業務需要擴展? 如果可能的話,為什麼不嘗試啟動自己的 CDN。 這在以下情況下有意義:

  • 目前的內容分發成本未達預期,且在經濟上不合理;
  • 我們需要一個永久的緩存,而不需要靠近伺服器和通道上的其他網站;
  • 目標受眾所在的區域沒有可供您使用的 CDN 接入點;
  • 交付內容時需個人化設定;
  • 需要加快動態內容的交付;
  • 第三方服務涉嫌侵犯用戶隱私等違法行為。

啟動 CDN 需要您擁有網域名稱、不同區域的多台伺服器(虛擬或專用)以及請求處理工具。 不要忘記安裝 SLL 憑證、設定和編輯用於提供靜態內容的程式(Nginx 或 Apache)以及有效監控整個系統。

快取代理的正確配置是另一篇文章的主題,因此我們不會在這裡詳細描述:正確設定的位置和參數。 考慮到啟動成本和部署網路的時間,使用現成的解決方案可能更有前景。 但必須以當前情勢為導向,提前規劃好幾步。

其結果是

CDN 是一組用於將流量轉送給大眾的附加功能。 在線業務需要它們嗎? 是或否,這完全取決於內容的目標受眾以及企業主追求的目標。

區域性和高度專業化的計畫在實施 CDN 時弊大於利。 請求仍然首先到達來源伺服器,但是透過中介。 因此,ping 值的降低令人懷疑,但使用該服務的每月費用卻相當明確。 如果您擁有良好的網路設備,您可以輕鬆改進現有的資訊安全演算法,將伺服器放置在離用戶更近的地方,並持續免費獲得最佳化和利潤。

但真正應該考慮中間伺服器的是大公司,其基礎設施無法應對不斷增長的流量。 CDN 完美地展現了自己作為一種技術,可以讓您快速地將網路部署到廣泛的用戶地理區域、提供舒適的雲端遊戲或在大型商業平台上銷售商品。

但即使受眾範圍廣泛,提前了解為什麼需要內容傳遞網路也很重要。 網站加速仍然是一項複雜的任務,不能透過實施 CDN 來神奇地解決。 不要忘記這樣重要的功能:跨平台、適應性、伺服器部分的最佳化、程式碼、渲染等。 對於任何線上項目,無論其重點和規模如何,初步的技術審核和採取適當的措施來消除問題仍然是最佳解決方案。

論廣告的權利

現在就可以訂購 強大的伺服器使用最新的處理器 AMD 史詩。 靈活的方案 - 從 1 個 CPU 核心到瘋狂的 128 個 CPU 核心、512 GB RAM、4000 GB NVMe。

內容路徑難以理解或者讓我們談談 CDN

來源: www.habr.com

添加評論