企業內部培訓網站為例,探索雲上成本優化

華爲雲開發者聯盟 發佈 2024-01-15T02:08:28.835240+00:00

本文就從一個企業內部培訓網站為例,拆解雲上成本優化方案需要注意的點,拋磚引玉,幫助大家參考業務架構,合理節省費用。配置 OBS + CDN 加速,並提前購買 CDN 流量包,降低網絡成本。

本文分享自華為雲社區《雲上成本優化方案——以一個企業內部培訓網站為例-雲社區-華為雲》,作者:雲存儲開發者支持團隊。

越來越多的企業選擇將服務搭建在雲上,業務初期訪問量、數據量都較小,成本問題還不顯著。隨著業務規模的不斷擴張,雲上的資源消耗也在不斷增多,雲資源成本開始成為一個不得不考慮的問題。本文就從一個企業內部培訓網站為例,拆解雲上成本優化方案需要注意的點,拋磚引玉,幫助大家參考業務架構,合理節省費用。

1. 業務背景介紹

某集團客戶 A,內部業務系統中包含一個內部在線教育網站,原部署在線下 IDC 機房,為集團內部各地分公司部提供內部培訓服務。網站除了提供點播服務外,還要在後台為講師上傳的原始視頻添加水印,轉換為指定清晰度,截取首幀作為視頻封面,並隔固定時間截取一張截圖方便學生跳轉。現集團業務整體搬遷上華為雲,需要考慮搬遷上雲後成本問題。

2. 基礎方案與成本優化點識別

在方案搬遷初期,客戶考慮對系統做微量改動後上雲,即系統整體架構不變,僅將存儲介質替換為對象存儲 OBS。為保證視頻轉碼性能,採購一台 8U32G 伺服器。在此方案中涉及的成本優化點全部集中在基礎資源 IaaS 中,即計算、存儲、網絡,我們逐項目進行優化。

2.1 計算成本

對計算來說,最理想的降成本方案就是極致的彈性,不使用時不計費,使用時也僅出使用了的計算資源,而不是直接整台 8U32G 的伺服器,然後大多時間資源利用率僅有 10% 以下。所以第一處改動就是通過使用華為雲 MPC 服務替換其自建的轉碼服務,相較於自己採購伺服器,且大多數時間處於閒置狀態,MPC 服務按視頻轉換時間收費,H.264 標準轉碼包 5000 分鐘僅 88元,成本極低。添加水印和截取指定幀的動作同樣可以較由 MPC 完成。同時將所有網頁靜態資源均存儲至 OBS 中,降低伺服器壓力,在不調整其他組件的前提下,可直接將伺服器降級為 4U8G 規格,節省費用。可配合數據工坊 DWR 的工作流進行使用,在上傳視頻時自動觸發工作流,進一步降低上手難度,詳情參考 視頻轉碼工作流最佳實踐(https://support.huaweicloud.com/bestpractice-dwr/dwr_04_0001.html)

當然,現在還不是最極致的彈性,如果想要進一步優化計算成本,應考慮通過使用 CCI 容器或改造為 serverless 應用,進一步壓縮,限於篇幅暫不展開討論。

2.2 存儲成本

計算資源可以彈性伸縮,不用時候關機,但是存儲資源則不可能不用時刪掉,所以就要考慮合理規劃存儲類型,根據數據對性能的要求合理劃分到不同類型的存儲介質中,如塊存儲、對象存儲、對象存儲的歸檔存儲等。

在當前業務中,轉碼過後的視頻需要經常播放,但轉碼前的原視頻、培訓會議現場錄製的視頻則不需要經常查看,又不能直接刪除。此時可以考慮使用對象存儲的歸檔存儲與深度歸檔存儲功能,配置生命周期規則,指定部分目錄下的視頻超過一定時間自動轉歸檔,再超過一定時間後自動轉深度歸檔。

除此之外,即使是轉換後的視頻也不是所有都經常播放的,可以將上架時間長、播放次數少的視頻也轉換為歸檔存儲,並配置歸檔直讀功能,進一步降低存儲成本。

除了視頻外,該網站還存儲了很多圖片,往往同一張圖片還要存儲多份,如封面視頻就需要有低、中、高清晰度分別的有無水印版本,共六個版本。此時可以考慮使用 OBS 自帶的圖片轉碼服務,僅需存儲一張原圖,在加載時通過添加參數自動轉換清晰度或添加水印。

2.3 網絡成本

網絡成本是視頻網站成本中不容忽視的一個大類,而且與可以事先規劃的計算與存儲成本不同,很多服務都會產生公網出流量費,每次請求會產生的公網出流量也有不同,無法做到精準的定量預估。不過我們可以針對以下幾個問題進行分析,設計最佳的網絡成本優化方案:

  1. 數據該從哪個出口出?
  2. 每月分別會有多少出流量?
  3. 數據能否進行壓縮?
  4. 數據能否分片/分級?
  5. 數據能否在客戶端進行緩存?

2.3.1 數據出口選擇

在本案例中,共有三個位置會產生公網出流量,分別為 ECS、OBS、CDN,其按需計費流量費分別為 0.8元/G、0.5元/G 與 0.2元/G。所以,我們要儘可能的增加從 CDN 流出的流量,減少從 ECS 流出的流量。可以通過改造業務系統,將靜態文件託管至 OBS,並通過 CDN 加速進行分發來達到此目的。可參照 CDN加速訪問OBS(https://support.huaweicloud.com/bestpractice-obs/obs_05_0510.html)一文配置 OBS + CDN 聯動。

2.3.2 通過預估流量合理購買套餐包

相較於直接按需計費,提前購買套餐包可以節省更多成本。以 OBS 為例,如若每月流出 100GB,按需計費時一年的流量費為 600 元,而提前購買包年流量包則僅需 411.59 元,節省了 27%。CDN 如果合理購買閒時流量則可以節省更多,具體可前往 OBS 官方活動頁(多AZ存儲_OBS_對象存儲_存儲_華為雲) 與 CDN 官方活動頁(華為雲CDN和雲視頻通信專場_國內CDN流量優惠包_CDN加速_CDN大額優惠券_特價CDN流量包-華為雲)查看並選購套餐包。

2.3.3 數據能否進行壓縮

現在主流的瀏覽器都已具備自動解析 gzip 壓縮後的 html、js、css 文件,可以在靜態資源轉儲至 OBS 時也可以利用該特性,簡單來說就是將 OBS 中的靜態文件進行 gzip 壓縮,並配置 http 頭域來告知瀏覽器自動解析。更詳細教程可參見將 Vue.js 項目部署至靜態網站託管,並開啟 Gzip 壓縮(將 Vue.js 項目部署至靜態網站託管,並開啟 Gzip 壓縮-雲社區-華為雲) 一文,在節省網絡傳輸流量成本同時也降低了存儲成本。

除了文本外,圖片也可進行壓縮。圖片壓縮有幾種思路,一是通過轉換格式為 heic、avif、webp 等壓縮效率更高的格式來進行無損壓縮;二是使用一些比較知名的工具,如 tinyjpg等進行一些肉眼不可見的有損壓縮;三則是在傳輸過程中,針對對圖片清晰度要求不高的場景——如縮略圖,使用 OBS 自帶的圖片轉碼能力,返回解析度更低的圖片。

2.3.4 數據能否分片/分級

對視頻數據來說,很難在不降低肉眼觀感的前提下進行壓縮,但可考慮對視頻數據進行分片,前端播放時僅加載當前播放位置前後片段,而不再每次都將全量數據都緩存至本地。MPC 的轉碼服務已提供了視頻轉 hls 格式的能力,將視頻切分為多個片段,用戶播放視頻時,可隨意拖動視頻進度,會讀取相應進度的分片文件進行加載。除此之外,MPC 還可以將一個視頻轉換為多種清晰度,可根據用戶需要選擇不同清晰度進行播放,既降低了網絡流量費,也提升了用戶體驗。

3. 最終方案

綜合上述分析,最終方案架構如下:

  1. 使用 DWR + MPC 服務進行視頻轉碼和截幀,用戶上傳源視頻後自動轉換為不同清晰度的 m3u8 格式視頻,降低計算成本。
  2. 配置 OBS 生命周期,定時將訪問頻次低的數據(如原始視頻文件等)逐級轉換為歸檔存儲與深度歸檔存儲,降低存儲成本。
  3. 配置 OBS + CDN 加速,並提前購買 CDN 流量包,降低網絡成本。

為簡化費用對比,我們假設用戶共 100T 數據,其中 20T 數據為歷史歸檔數據,基本不需要訪問,20T 數據為低頻數據,不經常訪問。假設全部用戶每月共播放 10 萬分鐘,平均每分鐘標清視頻約 20M,這 1 萬分鐘的播放中 20% 時間可以播放低清視頻(480P移動端),80% 時間播放高清視頻(1080P),同長度高清視頻大小為標清,也就是說總流出流量約為3.5T。

最終費用為原本的 67%,節省了 1/3 的成本。當然,為了方便理解,本文做了很多假設性的簡化,實際項目可能會有偏差,但總體來說成本優化時可以從這幾個方面進行考慮總是或多或少有點收穫的,在此拋磚引玉,大家可以根據自己項目實際情況針對性的再次優化。

關注 點擊下方,第一時間了解華為雲新鮮技術~

華為雲博客_大數據博客_AI博客_雲計算博客_開發者中心-華為雲

關鍵字: