雲原生最佳實踐系列 7:基於 OSS Object FC 實現非結構化文件實時處理

方案概述

現在絕大多數客戶都有很多非結構化的數據存在 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 官方模板快速拉起演示環境。

  1. 基礎環境搭建

  2. 獲取示例代碼和文件

    2.1.通過 Git 獲取示例代碼和文件

  3. 配置對象存儲 OSS

    3.1.創建接入點(AP)

    3.2.創建對象 FC 接入點(OPAP)

    3.3.創建 RAM 授權

    3.4.上傳樣例圖片

  4. 配置函數計算 FC

    4.1.登錄函數計算 FC 控制檯

    4.2.部署修改圖片擴展名代碼

    4.3.更新 oss sdk 和 pyopenssl

  5. 配置 CDN

    5.1.添加 CDN域名

    5.2.CDN 域名 CNAME 解析

    5.3.配置 CDN 域名

  6. 場景驗證

    6.1.轉換圖片擴展名場景驗證

    6.2.根據 URL 參數實時變更圖片尺寸場景驗證

    6.3.驗證更多場景

  7. 一鍵釋放資源最佳實踐

全部內容,請點擊此處查看。對方案和產品感興趣的朋友,可以加入釘釘羣交流(羣號:31852400)。

往期文章:

雲原生最佳實踐系列 1:藉助雲速搭 CADT 如何實現 Kafka 的性能壓測?

雲原生最佳實踐系列 2:基於 MSE 雲原生網關同城多活

雲原生最佳實踐系列 3:基於 SpringCloud 應用玩轉 MSE

雲原生最佳實踐系列 4:基於 MSE 和 SAE 的微服務部署與壓測

雲原生最佳實踐系列 5:基於函數計算 FC 實現阿里雲 Kafka 消息內容控制 MongoDB DML 操作

雲原生最佳實踐系列 6:MSE 雲原生網關使用 JWT 進行認證鑑權

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章