沃爾瑪騰訊云 Serverless 應(yīng)用實(shí)踐,全力保障消費(fèi)者購物體驗(yàn)
深耕零售,沒有比中國更好的地方,也沒有比現(xiàn)在更好的時(shí)間。1996 年,國際零售巨頭沃爾瑪進(jìn)入中國,在深圳開設(shè)了第一家山姆會(huì)員商店。25 年后的今天,山姆會(huì)員商店擁有 數(shù)百萬付費(fèi)會(huì)員,成為 國內(nèi)遙遙領(lǐng)先的會(huì)員制商店。
當(dāng)位于深圳的山姆會(huì)員商店連續(xù) 10 余年成為沃爾瑪全球銷售第一的門店,沃爾瑪又一次亮出了優(yōu)秀的業(yè)績。為什么能夠在極度競爭的中國零售市場保持強(qiáng)勁增長?2020 年全球零售行業(yè)調(diào)研報(bào)告作出了如下總結(jié):在沃爾瑪,各種各樣的先進(jìn)技術(shù)被廣泛應(yīng)用以提高工作效率。沃爾瑪?shù)墓芾碚哒J(rèn)為,先進(jìn)的科技在零售市場將有助于沃爾瑪贏得競爭 。
01. 「顧客至上,服務(wù)第一」騰訊云 Serverless 解決方案
顧客至上是零售行業(yè)的服務(wù)宗旨。但是消費(fèi)者對(duì)購物體驗(yàn)的要求越來越高,業(yè)務(wù)迭代速度越來越快。山姆會(huì)員商店要保持前瞻性,線上銷售渠道必須快速迭代創(chuàng)新,不斷為消費(fèi)者創(chuàng)造新的購物體驗(yàn)。
難點(diǎn)1 :應(yīng)用發(fā)布頻率高
山姆會(huì)員商店業(yè)務(wù)迭代快、應(yīng)用發(fā)布頻率高,基本保持在一周一迭代。
難點(diǎn)2:保障用戶最佳體驗(yàn)
版本升級(jí)的基本要求是:對(duì)用戶無感知,在升級(jí)過程中應(yīng)用的無損發(fā)布。
難點(diǎn)3: 資源消耗大
零售行業(yè)線上流量巨大,一個(gè)應(yīng)用可能需要上千臺(tái)服務(wù)器,采用藍(lán)綠部署時(shí),如果在線上發(fā)布,需要再備份一千臺(tái)服務(wù)器,對(duì)資源消耗造成極大的損失。
典型的開發(fā)流程從開發(fā)測(cè)試到集成測(cè)試,到預(yù)發(fā)測(cè)試,再到發(fā)布上線,每個(gè)研發(fā)階段都有對(duì)應(yīng)的環(huán)境做支撐,而每個(gè)環(huán)境都會(huì)消耗資源和成本,來保持服務(wù)在線。傳統(tǒng)的版本灰度發(fā)布模式面臨環(huán)境多、資源消耗多、成本高等困境。
騰訊云山姆會(huì)員商店項(xiàng)目負(fù)責(zé)人李逸期在智慧零售深耕多年,從 0 到 1 搭建了山姆會(huì)員商店 APP 的技術(shù)架構(gòu)。秉承沃爾瑪公司用科技助力市場的戰(zhàn)略,李逸期對(duì)以賦能業(yè)務(wù)為目標(biāo)的技術(shù)創(chuàng)新,保持著極致化的追求。多種方案對(duì)比后,山姆會(huì)員商店選擇了騰訊云云函數(shù) SCF ( Serverless Cloud Function ) 默認(rèn)別名灰度發(fā)布策略。
云函數(shù) SCF 默認(rèn)別名灰度發(fā)布
默認(rèn)別名是配置云函數(shù)的 $default(默認(rèn)流量)別名,別名中固定有 2 個(gè)云函數(shù)版本:一個(gè)為 $latest 版本,一個(gè)為最后一次函數(shù)發(fā)布的版本。部署時(shí)配置的 traffic 參數(shù)為 $latest 版本流量占比,默認(rèn)另一部分流量切到當(dāng)前云函數(shù)最后一次發(fā)布的版本。
每次上線一個(gè)新功能,執(zhí)行 sls deploy 會(huì)部署到 $latest 版本上。版本發(fā)布時(shí)先切部分流量在 $latest 版本上進(jìn)行觀察,穩(wěn)定后逐步將流量切到 $latest 版本。當(dāng)流量切到 100% 時(shí),固化當(dāng)前版本,并將流量全部切到固化后的版本。
優(yōu)勢(shì) 1 :風(fēng)險(xiǎn)控制保障用戶體驗(yàn)
首先,控制變更的風(fēng)險(xiǎn),一旦發(fā)現(xiàn)新版本有異常,隨時(shí)可以調(diào)整流量比例進(jìn)行回滾;其次,客戶端和云函數(shù)一起進(jìn)行灰度,即使需要做一些破壞性變更,例如協(xié)議變更時(shí),也不用擔(dān)心線上版本是否兼容新的協(xié)議。
優(yōu)勢(shì) 2 :快速驗(yàn)證適應(yīng)高頻迭代
Serverless 模式下,環(huán)境隔離、可直接發(fā)布,提升高頻部署時(shí)的研發(fā)效率,適合做產(chǎn)品特性的快速驗(yàn)證。
優(yōu)勢(shì) 3 :彈性擴(kuò)縮容節(jié)約成本
Serverless 在沒有訪問量時(shí)自動(dòng)縮容,可以極大節(jié)約部署多環(huán)境的成本。
當(dāng)遇到更加復(fù)雜的版本發(fā)布策略時(shí),云函數(shù)自定義別名可以提供更靈活的版本切換方式。自定義別名的配置方式相對(duì)于默認(rèn)別名更復(fù)雜,適用于對(duì)灰度發(fā)布能力要求較高的業(yè)務(wù)場景。
02.零售電商場景中 Serverless 應(yīng)用
1. 電商大促等波峰波谷型業(yè)務(wù)
每年雙 11、618 等電商大促期間,零售行業(yè)線上渠道面臨歷史級(jí)別的流量挑戰(zhàn),中大型電商平臺(tái)的峰值調(diào)用量可達(dá)上千萬/分鐘,面臨高于日常 10-20 倍的流量壓力。日常運(yùn)營活動(dòng)中,例如精品秒殺、限時(shí)搶購等,電商平臺(tái)也同樣面臨大流量高并發(fā)、波峰波谷用戶流量明顯分化的典型場景。云函數(shù) SCF 提供彈性、可擴(kuò)展的基礎(chǔ)設(shè)施和護(hù)航服務(wù),幫助電商客戶把握業(yè)務(wù)增長的機(jī)遇,從容應(yīng)對(duì)挑戰(zhàn)。
瞬時(shí)冷啟動(dòng)
云函數(shù) SCF 底層采用自研的輕量級(jí)虛擬化技術(shù),Micro Vm 啟動(dòng)時(shí)間短至 90 毫秒,函數(shù) 冷啟動(dòng)減低至 200 毫秒,并且支持上萬臺(tái)計(jì)算節(jié)點(diǎn)同時(shí)擴(kuò)容。
實(shí)時(shí)擴(kuò)縮容
基于函數(shù)請(qǐng)求實(shí)時(shí)計(jì)算的模式,動(dòng)態(tài)的擴(kuò)縮函數(shù)實(shí)例,優(yōu)化函數(shù)冷啟動(dòng)的體驗(yàn)問題,以及控制函數(shù)計(jì)算的資源成本 。
預(yù)置并發(fā)
在秒殺、搶購等場景中,瞬間需要海量的計(jì)算資源。云函數(shù)預(yù)置并發(fā),可支持并發(fā)實(shí)例按配置預(yù)先啟動(dòng),提前“預(yù)熱”函數(shù),為業(yè)務(wù)高峰提前準(zhǔn)備計(jì)算資源,消除冷啟動(dòng)、降低運(yùn)行環(huán)境初始化及業(yè)務(wù)代碼初始化引起的耗時(shí)。
2. 電商直播等 CPU 密集型業(yè)務(wù)
直播帶貨已成為線上零售平臺(tái)的標(biāo)配功能。電商直播中,需要專業(yè)、穩(wěn)定的直播推流、轉(zhuǎn)碼、分發(fā)、播放等服務(wù),滿足超低延遲、超高畫質(zhì)、超大并發(fā)訪問量的要求。在直播結(jié)束后,通常需要對(duì)回播視頻進(jìn)行處理,例如音視頻轉(zhuǎn)碼混流、回播視頻二次分發(fā)和存儲(chǔ)等。相較于自建轉(zhuǎn)碼服務(wù)器,云函數(shù) SCF 無需考慮轉(zhuǎn)碼服務(wù)器閑置時(shí)間的利用效率、以及服務(wù)器運(yùn)維等問題。
平滑遷移快速上線
支持用戶自定義配置 FFmpeg 命令參數(shù)、以及部署自建 FFmpeg,轉(zhuǎn)碼方式靈活,也可以便捷地從物理機(jī)、云主機(jī)或容器中移植到云函數(shù)。
解決算力瓶頸
大規(guī)格實(shí)例最高支持 128GB/64C 進(jìn)行 4K 高清視頻轉(zhuǎn)碼,結(jié)合資源彈性伸縮能力,有效保證轉(zhuǎn)碼效率。
按量計(jì)費(fèi)成本優(yōu)勢(shì)
視頻轉(zhuǎn)碼是高運(yùn)算負(fù)荷的 CPU 密集型業(yè)務(wù),需要對(duì)輸入的視頻流進(jìn)行全解碼、視頻過濾/圖像處理、并對(duì)輸出格式進(jìn)行全編碼。云函數(shù)的1毫秒粒度按用量計(jì)費(fèi),擁有顯著的成本優(yōu)勢(shì)。
3. 智能圖片處理等事件驅(qū)動(dòng)型業(yè)務(wù)
在電商平臺(tái)上,每天都會(huì)有大量商品圖片的查詢請(qǐng)求和更新請(qǐng)求。高峰情況下,每天有千萬級(jí)甚至億級(jí)的圖片處理需求。傳統(tǒng)方案需要搭建一個(gè)在線服務(wù)器并部署 Web 應(yīng)用來進(jìn)行圖片處理,程序按照一定規(guī)則定時(shí)觸發(fā)事件。
在傳統(tǒng)方案中,主要有三個(gè)困擾:
- 沒有請(qǐng)求時(shí),空置率較高;
- 需要專門維護(hù)一套運(yùn)行處理代碼;
- 需要考慮并發(fā)和定時(shí)器的執(zhí)行方法,來保障圖片處理的及時(shí)性。
而在 Serverless 架構(gòu)中,云函數(shù) SCF 提供圖片裁剪、增加水印等多種處理能力,滿足電商業(yè)務(wù)的圖片處理訴求。同時(shí)針對(duì)圖片處理、存儲(chǔ)的高可用要求,可以支持對(duì)象存儲(chǔ)的跨區(qū)域高可用部署。
用戶僅需要在云函數(shù) SCF 上設(shè)置觸發(fā)器 + 函數(shù),當(dāng)用戶把圖片上傳到對(duì)象存儲(chǔ)中,將會(huì)觸發(fā)函數(shù)代碼進(jìn)行圖片處理,并把圖片轉(zhuǎn)移到新的存儲(chǔ)桶中。整個(gè)過程,不需要搭建 Web 服務(wù)器,無需編寫觸發(fā)條件,也無需關(guān)注業(yè)務(wù)運(yùn)維。
“中國市場是充滿競爭的,但機(jī)遇也是巨大的。我們將持續(xù)保持技術(shù)的驅(qū)動(dòng)力和領(lǐng)先性,以更高的質(zhì)量和更快的速度完成一次次的產(chǎn)品迭代,保障每一天的消費(fèi)者體驗(yàn)。”—— Jason Wang ,沃爾瑪中國 技術(shù)總監(jiān)