當前位置:
首頁 > 最新 > 基於阿里雲Serverless架構下函數計算的最新應用場景詳解 二

基於阿里雲Serverless架構下函數計算的最新應用場景詳解 二

摘要: Serverless概念是近年來特別火的一個技術概念,基於這種架構能構建出很多應用場景,適合各行各業,只要對輕計算、高彈性、無狀態等場景有訴求的用戶都可以通過本文來普及一些基礎概念,看看這些場景是否對用戶有一些指導意義。

前情詳見:基於阿里雲Serverless架構下函數計算的最新應用場景詳解(一)


場景描述:

直播間的客戶端把主播和連麥觀眾的音視頻採集發送給函數計算做混流服務,函數計算把數據彙集後交給混流服務進行合成,並把合成畫面視頻流推送給CDN,終端觀眾實時拉取直播流,能實時看到混流合成畫面。

視頻直播應用場景中,有一種場景視頻直播的多人連麥,主播可以同時和多個工作進行連麥,把多個觀眾或者好友畫面接入,並把畫面合成到一個場景中,供給更多觀看直播的觀眾觀看。這個場景中,有幾個技術難度需要關註:

1.連麥的觀眾不固定,需要考慮適度的並發和彈性。

2. 直播不可能24小時在線,有較為明顯的業務訪問高峰期和低谷期。

3. 直播是事件或者公眾點爆的場景,更新速度較快,版本迭代較快,需要快速完成對新熱點的技術升級。

綜合以上幾個特點,可以通過Serverless這種架構的來完美解決以上痛點。

函數計算作為連麥觀眾和主播接入的實時音頻和視頻轉發集群,當並發量過來時候,函數計算自動擴容多個執行環境來處理實時數據流,當業務高峰期過去後,會適度縮減資源使用,代碼管理部署在雲端,代碼迭代可以隨時進行修改和維護,無需再多管理一套軟體運行環境。

視頻直播場景常規做法:

1. 購買負載均衡應付並發。

2. 購買計算資源做數據處理。

3. 業務低谷期需要想辦法釋放硬體資源來節省成本。

4. 多版本要維護多套運行環境。

函數計算解法:

1、把負載分發程序寫到函數里。

2、多版本迭代無需更換運行環境,僅僅替換代碼版本即可。

3、業務訪問按需付費,業務低谷期無費用。


整個架構圖分成2部分內容:

? 一部分是Web應用,模擬一個社交內容更新和數據處理的流程,Web用戶通過API網關把請求轉發到函數計算進行處理,函數計算把處理後的內容更新到資料庫中,並更新索引,另外一個函數計算把索引更新推送的搜索引擎供給外部客戶進行檢索,完成整個數據閉環處理。

? 另一部分是智能設備通過IoT網關把設備狀態推送到函數計算處理,函數計算通過API介面把消息通過移動推送服務,推送給移動端進行狀態確認和管理。在智能設備狀態處理的場景中,同樣也會碰到幾個核心技術問題要解決,當海量設備把狀態發送到IoT平台後,如何設計一套高效非輪詢的技術框架來處理設備狀態數據;如何把處理後的數據高效透傳其他產品,例如寫資料庫或者推送給移動端。

IoT設備狀態場景常規做法:

1. 設置消息通道接收事件,並編寫業務代碼。

2. 購買伺服器資源做後端數據處理。

3. 開通多個產品,並調用SDK代碼來完成業務交互。

4. 維護相關硬體軟體環境。

函數計算解法:

1.定製IoT平台的事件通知,直接把業務代碼寫到函數計算中。

2. 不需要維護運行環境,用完即可釋放。

3. 控制台配置,就可以把信息透傳給相關產品。

通過兩種方式的對比,能看出函數計算的解法更具備通用性和大量減少維護工作。


客戶通過派單平台選著某種商家提供的服務,可能是餐飲、商品、或者服務。派單平台通知最近的騎手到最近的商家拿到服務並派送到客戶手裡。一個簡單的流程圖如下:

流程詳解:

步驟1、客戶通知派單平台下單某商品

步驟2、派單平台通知最新騎手

步驟3、派單平台同時通知商家商品售賣出去

步驟4、騎手到指定的商家獲取商品

步驟5、騎手配送到客戶所在地

這個派單場景中,要解決幾個棘手的技術:

整合多種資源:計算資源會涉及到,騎手位置信息、最優路徑規劃、車況情況、調度系統等

低延遲:派單系統對訂單的響應要求很高,從接單到商家在到客戶,整個閉環都需要在段時間內完成。

海量數據:涉及到三方面的數據,客戶數據、商家數據、平台騎手數據、位置信息、商品信息等。

請求明顯波峰波谷:派單系統在一天中的資源使用非常不均衡,波峰期,例如外賣,在中午和晚飯達到高峰,平時空閑。

通過技術選型轉化成阿里雲產品的解決方案後,函數計算結合其他產品比較完美的解決上述問題,解決方案圖如下圖所示:

流程詳解:

客戶APP把訂單請求通過API網關透傳給函數計算,函數計算把處理後的數據傳輸給表格存儲,表格存儲存放了騎行數據、商家信息、位置信息等,其中騎行日誌會存放到日誌服務里,便於後續做報表分析。騎行過程中騎手頭像、隨手拍街景會存放到OSS中,騎手位置可以通過函數計算去拉取第三方地圖信息,例如高德地圖等。這個方案中,函數計算可以完成動態擴容問題,API網關可以解決鑒權和安全訪問問題,函數計算打通了多款產品,可以無縫使用其他資源和內容。所有處理後的數據可以存放到表格存儲資料庫中,所有日誌都可以直接載入到日誌服務為後續數據報表服務。

共享派單系統常規做法:

1. 購買多台伺服器來支持高峰期的訪問,訪問波谷期自行設置釋放原則。

2. 通過編程方式完成多個產品的交互。

3. 為了保證負載均衡,需要購買相關的產品來支撐。

4. 人工維護相關硬體軟體環境。

函數計算解法:

1. 定製IoT平台的事件通知,直接把業務代碼寫到函數計算中。

2. 不需要維護運行環境,用完即可釋放。

3. 控制台配置,就可以把信息透傳給相關產品。

兩種解法都能達到目標,從資源利用率和可維護性來看,使用Serverless架構的方式會更優。


通過上面幾個個場景的詳解,我們大致可以得出這樣的結論,通過事件觸發場景、有業務訪問高峰和低谷的場景、迭代次數較多、需要快速打通多款產品場景,通過函數計算能完美的解決成本、效率、聯通等問題。

表3-1函數計算和傳統自建伺服器的優劣對比

函數計算雖然適用於很多場景,但也不是覆蓋全部應用場景的萬金油。例如某些業務在一天中沒有明顯的請求波峰波谷,請求相對平緩,那麼使用函數計算成本不見得會節省多少。Serverless這種框架是新興的技術,目前相應的支持開發工具較少,整體這個框架還在探索中。另外函數計算的執行環境是不記錄狀態的,有些耦合性較強的應用也不太適合用Serverless這種框架。受限於資源大小分配,一些大型的應用程序也不太容易能拆分能搬上來。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲棲社區 的精彩文章:

如何應對數據科學的「負擔症候群」

TAG:雲棲社區 |