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