電商直播平臺如何借助容器與中間件實現(xiàn)研發(fā)效率提升100%?
作者:鹿玄,阿里云解決方案架構(gòu)師
前言
直播帶貨是近期發(fā)展非常迅猛的一種新的電商模式。構(gòu)建一個電商直播平臺從技術(shù)角度上大致可以分為視頻直播服務(wù)、CDN、前端(H5/ 小程序)、大數(shù)據(jù)、以及各種業(yè)務(wù)后臺,如直播互動、商家和運營平臺等。相比于傳統(tǒng)的電商系統(tǒng),電商直播平臺有一些類似的地方,如系統(tǒng)需要具備高并發(fā)的能力來應(yīng)對流量洪峰;但同時直播業(yè)務(wù)也有一些獨有的特性:
-
直播業(yè)務(wù)的潮汐特性,需要更強(qiáng)的彈性能力及成本優(yōu)化方案。
-
微服務(wù)化后,要求更高的開發(fā)效率,以及更精細(xì)化的流量控制。
-
直播互動有著非常高的實時性,系統(tǒng)需要具備前后端監(jiān)控一體化的能力。
-
直播業(yè)務(wù)涉及到后期音視頻的處理需要合理分配計算資源。
云原生架構(gòu)正是為此而生。
什么是云原生架構(gòu)?
云原生架構(gòu)是基于云原生技術(shù)的一組架構(gòu)原則和設(shè)計模式的集合,旨在將云應(yīng)用中的非業(yè)務(wù)代碼部分進(jìn)行最大化的剝離,從而讓云設(shè)施接管應(yīng)用中原有的大量非功能特性(如彈性、韌性、安全、可觀測性、灰度等),使業(yè)務(wù)不再有非功能性業(yè)務(wù)中斷困擾的同時,具備輕量、敏捷、高度自動化的特點。為實現(xiàn)云原生架構(gòu),必然需要依托于各種云原生理念、實踐及技術(shù),即云平臺所提供的容器、微服務(wù)、DevOps、Service Mesh、Serverless 和中間件等服務(wù)。從 CNCF 的定義來看,采用基于云原生的技術(shù)和管理方法,將更好地把業(yè)務(wù)生于“云”或遷移到云平臺,從而享受“云”的高效和持續(xù)服務(wù)能力。
電商直播需要哪些云原生解決方案?
電商直播平臺系統(tǒng)為了滿足業(yè)務(wù)的快速發(fā)展,需要具備一些額外能力(當(dāng)然這里可能只是一部分),我們暫時以這些為例,將需求進(jìn)一步總結(jié)抽象,大致可以歸納為以下幾點:
-
極致彈性和成本;
-
微服務(wù)治理及流量控制;
-
立體化監(jiān)控;
-
音視頻處理自動化,計算資源按需使用。
容器服務(wù) ACK 解決對成本和極致彈性的訴求
傳統(tǒng)架構(gòu)在應(yīng)對“電商直播”這種新式互聯(lián)網(wǎng)化業(yè)務(wù)時,常常面臨發(fā)布迭代效率低、高峰期擴(kuò)容慢、運維復(fù)雜度高三大痛點。同時直播業(yè)務(wù)有典型的瞬間流量沖擊問題,無法有效預(yù)估峰值,并且高峰期間對延遲敏感,通過擴(kuò)容 K8s Node 節(jié)點方案無法滿足業(yè)務(wù)需求。 直播業(yè)務(wù)可以借助阿里云容器服務(wù) ACK + VK (Serverless ECI 基礎(chǔ)設(shè)施)架構(gòu),解決直播業(yè)務(wù)對成本和極致彈性訴求,具體體現(xiàn)在:-
研發(fā)效率提升 100%;
-
運維資源基本解放;
-
彈性 Serverless ECI,資源成本降低 60%~70%。
同時通過納管注冊形態(tài),可以實現(xiàn)將其他云平臺和 IDC 自建 K8s 集群進(jìn)行統(tǒng)一管理,幫助客戶抹平了多云架構(gòu)中日志采集、監(jiān)控等運維管理的差異性,大幅提升了整體運維效率。
微服務(wù)引擎 MSE 提供全面的微服務(wù)治理方案
在直播過程中,商家和觀眾進(jìn)行互動下單,直播前端和后臺業(yè)務(wù)系統(tǒng)進(jìn)行頻繁的交互。直播的后臺業(yè)務(wù)系統(tǒng)采用微服務(wù)+容器的架構(gòu),業(yè)務(wù)系統(tǒng)根據(jù)不同的模塊(如店鋪、商品、訂單)已經(jīng)進(jìn)行了微服務(wù)拆分。同時為了滿足業(yè)務(wù)需要,業(yè)務(wù)系統(tǒng)需要具備流量控制的能力,即對某些微服務(wù)進(jìn)行了多版本的部署,并將特定的用戶請求引流到某個特定版本進(jìn)行處理。 眾所周知,系統(tǒng)采用微服務(wù)化部署后,調(diào)用鏈路變得復(fù)雜。此外在容器環(huán)境下,POD IP 的不固定性等因素都為實現(xiàn)流量控制帶來一定的難度。我們可以采用阿里云微服務(wù)引擎(MSE)提供的微服務(wù)治理方案。 微服務(wù)引擎 MSE 為微服務(wù)應(yīng)用提供全面的微服務(wù)治理方案,包括服務(wù)鑒權(quán)、無損下線、離群實例摘除、服務(wù)降級、金絲雀發(fā)布、標(biāo)簽路由等功能。其中標(biāo)簽路由功能可以簡單完美地實現(xiàn)在 K8s 環(huán)境下流量控制的能力。微服務(wù)發(fā)布過程中,只需編輯 YAML 文件添加自定義標(biāo)簽,同時在MSE控制臺將請求參數(shù)(如 http header 等)和此前創(chuàng)建的標(biāo)簽進(jìn)行綁定即可。通過此方案,不僅可以在生產(chǎn)環(huán)境中無侵入性地解決了流量控制的問題,在開發(fā)測試環(huán)境中,也可將標(biāo)簽路由功能應(yīng)用在分支測試等場景。
ARMS 提供完整立體化全鏈路監(jiān)控方案
電商直播系統(tǒng)包括 H5 頁面和小程序前端層、微服務(wù)應(yīng)用層、中間件層(MQ、Redis 等)、數(shù)據(jù)庫層以及基礎(chǔ)資源層等,系統(tǒng)中任何一個環(huán)節(jié)出問題都可能導(dǎo)致一條業(yè)務(wù)請求出現(xiàn)異常。結(jié)合業(yè)務(wù)需求,運維效率、資源成本等因素,部署在云上的應(yīng)用可以通過阿里云應(yīng)用實時監(jiān)控服務(wù)(ARMS) 為直播業(yè)務(wù)提供一套完整的立體化的全鏈路監(jiān)控方案。 ARMS 領(lǐng)域全景圖 在直播場景下,ARMS 提供的功能解決了諸如以下幾個實際問題: 1、在直播過程中,如果用戶在前端進(jìn)行下單等操作發(fā)生錯誤,利用 ARMS 提供的前后端鏈追蹤功能,可將前端與后端串聯(lián)起來,實現(xiàn)一站式的問題排查。 2、系統(tǒng)中出現(xiàn)慢調(diào)用后,需要對整個鏈路中的瓶頸進(jìn)行定位,而這個瓶頸可能出現(xiàn)在網(wǎng)絡(luò)延時、微服務(wù)應(yīng)用內(nèi)部,或者應(yīng)用所依賴的緩存和數(shù)據(jù)庫等組件,開發(fā)運維人員可以借助 ARMS 提供的白屏化鏈路監(jiān)控、問題診斷等能力來快速定位。 3、在 ARMS 控制臺為核心業(yè)務(wù)及資源配置了完善的監(jiān)控報警能力,通過短信、釘釘、Webhook 等方式推送給工程師進(jìn)行第一時間排查,及時發(fā)現(xiàn)問題減少業(yè)務(wù)損失。阿里云函數(shù)計算解決自動化及效率等問題
在直播平臺發(fā)起的直播結(jié)束后,通常會有一些回放視頻需要進(jìn)行一些處理,比如對視頻進(jìn)行轉(zhuǎn)碼,或其他處理后再進(jìn)行二次分發(fā)。通常為了實現(xiàn)這一個功能,我們需要自建轉(zhuǎn)碼服務(wù)器,但由于直播業(yè)務(wù)天然的潮汐屬性,大部分時間這些轉(zhuǎn)碼服務(wù)器處于閑置階段,無法實現(xiàn)計算資源的最大利用和成本最優(yōu)化。 阿里云函數(shù)計算 FC 事件觸發(fā)機(jī)制完美第解決了自動化及資源利用率等問題。開發(fā)人員可以將轉(zhuǎn)碼邏輯部署到函數(shù)計算,配置 OSS 事件觸發(fā)器,當(dāng)有新的直播回放視頻上傳到 OSS 后,可自動觸發(fā)函數(shù)計算進(jìn)行轉(zhuǎn)碼及分發(fā)。 此方案具備的優(yōu)勢是:- 快速上線:用戶基于 FFmpeg 自建的轉(zhuǎn)碼服務(wù),里面很多命令參數(shù)都是線上實踐很好的參數(shù),函數(shù)計算支持用戶命令無縫遷移, FFmpeg 的版本也可以自定義。
- 彈性高可用:計算力不再是瓶頸,迅速調(diào)動大量計算資源進(jìn)行加速、并行轉(zhuǎn)碼。
- 降低成本:視頻轉(zhuǎn)碼是 CPU 密集型,基于函數(shù)計算按需付費,能大大降低轉(zhuǎn)碼成本。
總結(jié)
結(jié)合上面所討論的內(nèi)容,我們再來看下采用阿里云云原生解決方案后,一個完整的電商直播平臺的部署架構(gòu)如下:
經(jīng)過實際場景驗證及用戶的綜合評估,電商直播平臺借助全面的云原生容器化能力和中間件產(chǎn)品能力,大幅提升開發(fā)部署運維效率達(dá) 50%~100%,極大地提升了用戶體驗,為業(yè)務(wù)持續(xù)發(fā)展打下了堅實的基礎(chǔ)。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!