方案概述
現在絕大多數客戶都有很多非結構化的數據存在 OSS 中,以圖片,視頻,音頻居多。舉一個圖片處理的場景,現在各種終端種類繁多,不同的終端對圖片的格式、分辨率要求也不同,所以一張圖片往往會有很多張衍生圖,那如果所有的衍生圖都存在 OSS 中,那存儲的成本會增加,所以就可以通過 OSS Object FC 的方案,在不同的終端請求時,對 OSS 中的原圖基於終端的要求做實時處理,然後響應返回,這樣 OSS 中只需要存儲原圖即可。
該方案以圖片處理的兩類場景爲例:
場景一: OSS 中只存原圖,用戶在請求 URL 中帶着期望對圖片做何種處理的參數,請求回來的圖片是已經基於參數處理好的圖片。
場景二: OSS 中只存某種格式的圖片,實現無論用戶請求時 URL 中是何種格式,都可以正常返回圖片。
方案優勢
-
不需要所有版本的圖片都保存,只需要保存原圖即可,可有效優化 OSS 存儲成本。
-
可以靈活實現對 OSS 中的數據做在請求時做擴展業務邏輯的需求,極大減少 OSS 側定製開發,並且客戶可以完全掌控處理圖片的邏輯,擴展性極強。比如請求時實時加水印、實時美顏處理、實時裁剪圖片、實時截幀等。
部署架構
名詞解釋:
- OPAP(Object Process Access Point):是在 AP 的能力上,拓展了 FC 功能,通過 OPAP 訪問的 GetObject 會觸發 FC。其他類型的請求會退化到綁定的 AP。
- AP(AccessPoint):是 OSS 推出的新的接入點域名;通過該域名訪問,有獨立的權限控制。假設用戶想把一個 bucket 給不同業務方使用,但是想精細控制每一個業務方的權限,可以通過創建多個 AP 給業務方使用。
架構說明
該方案的整條鏈路是非常清晰明確的:
-
用戶請求 CDN 地址展示圖片。
-
CDN 沒有命中後回源到 OPAP。
-
OPAP 的請求會觸發函數計算的函數,在該函數中可以拿到用戶請求的 URL 詳細信息,然後可由用戶自行實現對圖片處理的邏輯。
-
函數中對圖片處理完後,將圖片返回給 AP。
-
AP 返回給 OSS,由 OSS 響應給 CDN。
整個方案中,CDN 的回源配置,OPAP 的創建,AP 的創建,函數代碼的實現需要在產品控制檯進行配置,詳細步驟參見後續內容。
產品介紹
專有網絡 VPC(Virtual Private Cloud): 是用戶基於阿里雲創建的自定義私有網絡, 不同的專有網絡之間二層邏輯隔離,用戶可以在自己創建的專有網絡內創建和管理雲產品實例,比如 ECS、負載均衡、RDS 等。
函數計算 FC(Function Compute): 函數計算是事件驅動的全託管計算服務。使用函數計算,您無需採購與管理服務器等基礎設施,只需編寫並上傳代碼或鏡像。函數計算爲您準備好計算資源,彈性地、可靠地運行任務,並提供日誌查詢、性能監控和報警等功能。
內容分發網絡(Content Delivery Network,CDN): 是建立並覆蓋在承載網上,由不同區域的服務器組成的分佈式網絡。將源站資源緩存到全國各地的邊緣服務器,供用戶就近獲取,降低源站壓力。
阿里雲對象存儲 OSS(Object Storage Service): 是一款海量、安全、低成本、高可靠的雲存儲服務,可提供 99.9999999999%(12 個 9)的數據持久性,99.995% 的數據可用性。多種存儲類型供選擇,全面優化存儲成本。
雲速搭 CADT(Cloud Architect Design Tools): 是一款爲上雲應用提供自助式雲架構管理的產品,顯著地降低應用雲上管理的難度和時間成本。本產品提供豐富的預製應用架構模板,同時也支持自助拖拽方式定義應用雲上架構;支持較多阿里雲服務的配置和管理。用戶可以方便的對雲上架構方案的成本、部署、運維、回收進行全生命週期的管理。
前置條件
在進行本文操作之前,您需要完成以下準備工作:
1)註冊阿里雲賬號,並完成實名認證。您可以登錄阿里雲控制檯,並前往實名認證頁面 (https://account.console.aliyun.com/v2/#/authc/home) 查看是否完成實名認證。
2)購買按量付費資源,阿里雲賬戶餘額需要大於 100 元。考慮到部署後每小時會產生費用,建議賬號內餘額或者代金卷金額大於 200 元。您可以登錄阿里雲控制檯,前往賬戶總覽頁面 (https://usercenter2.aliyun.com/home) 查看賬戶餘額。
3)該最佳實踐涉及到使用 Git 下載示例中需要的代碼和文件,所以請提前準備好 Git 環境。
4)該最佳實踐需要您持有備案過的域名才能正常完成全部操作,請您先準備域名。
操作步驟
本實踐可通過 CADT 官方模板快速拉起演示環境。
-
基礎環境搭建
-
獲取示例代碼和文件
2.1.通過 Git 獲取示例代碼和文件
-
配置對象存儲 OSS
3.1.創建接入點(AP)
3.2.創建對象 FC 接入點(OPAP)
3.3.創建 RAM 授權
3.4.上傳樣例圖片
-
配置函數計算 FC
4.1.登錄函數計算 FC 控制檯
4.2.部署修改圖片擴展名代碼
4.3.更新 oss sdk 和 pyopenssl
-
配置 CDN
5.1.添加 CDN域名
5.2.CDN 域名 CNAME 解析
5.3.配置 CDN 域名
-
場景驗證
6.1.轉換圖片擴展名場景驗證
6.2.根據 URL 參數實時變更圖片尺寸場景驗證
6.3.驗證更多場景
-
一鍵釋放資源最佳實踐
全部內容,請點擊此處查看。對方案和產品感興趣的朋友,可以加入釘釘羣交流(羣號:31852400)。
往期文章:
雲原生最佳實踐系列 1:藉助雲速搭 CADT 如何實現 Kafka 的性能壓測?
雲原生最佳實踐系列 3:基於 SpringCloud 應用玩轉 MSE
雲原生最佳實踐系列 4:基於 MSE 和 SAE 的微服務部署與壓測