乾貨 | CDN搭配OSS最佳實踐 ——搭建動靜態分離的應用架構

京東科技開發者發表於2019-07-03

一、傳統架構及痛點

傳統的網站產品應用架構,所有資源部署在應用伺服器本地儲存或掛載的資料儲存區,對於動靜態資源不作分離, 產品架構如下圖所示:

該架構存在諸多問題:

  • 系統效能會隨著系統訪問量的增長而受到限制甚至遭遇瓶頸;

  • 靜態資源訪問量巨大時,佔用出口頻寬,影響動態請求響應;

  • 使用者請求分散時,回源距離長,影響使用者體驗(單純使用CDN仍然需要回源拉取)。

二、CDN+OSS架構方案:

該架構充分利用到“OSS頻寬/流量成本低、獨立響應、儲存空間無上限”的特點,結合CDN分發網路,實現資源動靜分離,支援海量使用者訪問。

最佳化後產品架構如下圖所示:

1、適用場景

  • 靜態檔案儲存量大,檔案數量多,檔案體積較大,伺服器儲存空間不夠;

  • 靜態檔案訪問量大,佔用頻寬負載或伺服器負載,I/O問題導致使用者訪問卡頓;

  • 使用者分佈較為分散,分佈在全國各地、各運營商;

  • 對檔案下載速度要求較高,且併發下載量高。

2、架構描述

涉及產品介紹:

  • 物件儲存服務(OSS: Object Storage Service)是京東雲自主研發的大規模分散式物件儲存服務,面向企業和個人開發者提供高可用、低成本、強安全的雲端儲存服務。您可以實現對資料的統一管理,滿足各類儲存需求。支援標準的 RESTfulAPI 介面,您只需按實際用量付費,無最低使用限制。支援流式寫入和檔案寫入兩種方式。面對冷資料儲存的場景,對於那些訪問頻率比較低,同時對訪問速度要求不高的資料,可以將資料以低頻訪問的方式進行儲存,為您儲存和備份資料提供了一個海量低價的空間。

  • 京東雲CDN(Content Delivery Network),基於京東優質網路基礎設施和智慧雲端計算技術,向使用者提供低成本、高效能、可擴充套件的網際網路內容分發服務。利用廣泛的節點覆蓋和先進的雲排程、雲端儲存技術,將海量內容更快、更可靠地投遞給網際網路終端使用者,降低網站運營成本,提升使用者網際網路應用體驗。京東雲 CDN 的前身是服務於京東商城的自建 CDN 平臺,歷經多年 618 和 11.11等大促業務活動考驗,京東雲 600+ 節點廣泛覆蓋於全國各區域和運營商,精選全網優質基礎設施,邊緣節點覆蓋全網、全地域,真正實現就近接流、就近推流。

    京東雲的物件儲存和CDN服務搭配使用,使用京東自建的全網CDN加速節點,為您提供上傳下載雙向加速,實現全網覆蓋、快速高效的內容分發。

架構優勢:

  • 降低Web/應用伺服器負載,靜態資源響應壓力轉移到CDN,避免效能影響;

  • 費用最低,OSS的儲存費用遠低於雲主機磁碟費用;

  • 超大容量儲存空間,大頻寬上傳通道,無需擔心儲存空間上限;

  • 降低流量費用,正常訪問熱度情況下,相比直接訪問OSS,減少95%回源流量。

三、實際案例

以一個常見的Web站點為例。是一個新聞入口網站,有500GB的新聞圖片、新聞影片、JS檔案等靜態內容,使用了LAMP架構,目前站點全套架構部署在京東雲上。隨著使用者業務發展,訪問量的不斷增長,不少使用者反映,訪問網站的速度越來越慢,圖片、影片載入慢,卡頓率高,網站響應慢。客戶工程師發現使用者上傳的圖片越來越多,業務高峰期,頻寬峰值很高,伺服器I/O經常被佔滿。

對於以上案例我們可以利用以上介紹的OSS+CDN架構對網站進行最佳化,實現動靜分離的產品架構,提升使用者訪問體驗,同時成本可控。

解決方案及步驟如下:

1、對網站應用架構進行整理,區分動態程式部分和靜態部分到不同的目錄進行管理,建立image、video、js目錄,分別放置所有網站圖片素材;

2、京東雲控制檯進入OSS產品,新建一個Bucket。根據雲主機所在的區域選擇bucket所在區域,許可權選擇“公共讀”,bucket名稱與雲主機新建的目錄的名稱對應,如“abc-image-bucket”、“abc-video-bucket”和“abc-js-bucket”;

3、分別繫結域名image.abc.com、video.abc.com、js.abc.com並進行CDN加速。

4、上傳檔案:提供控制檯上傳和表單上傳兩種方式。

  • 控制檯上傳 :可以透過物件儲存控制檯上傳小於1GB 的檔案。如您要上傳的檔案大於1GB,請透過物件儲存 API或SDK的方式上傳。

  • 表單上傳:表單上傳指使用者使用OSS API中的Post Object請求來完成檔案的上傳,非常適合嵌入在HTML網頁中來上傳檔案;


5、修改DNS排程,增加CNAME解析,將原本訪問源站的請求,排程到CDN加速域名,以後使用者訪問您的網站的靜態檔案就全部透過OSS+CDN的方式訪問,不再佔用您雲主機的資源。

四、典型應用場景

  • 新聞入口網站

  • 應用分發市場

  • 線上音樂、線上K歌

  • 影片、短影片(UGC/PGC)

  • 電影院線

  • 線上教育


歡迎點選“ 京東雲 ”瞭解更多精彩內容



 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912185/viewspace-2649452/,如需轉載,請註明出處,否則將追究法律責任。

相關文章