導(dǎo)讀:2020 年 雙11,世紀(jì)聯(lián)華基于阿里云函數(shù)計(jì)算 (FC) 彈性擴(kuò)容,應(yīng)用于大促會場 SSR、線上商品秒殺、優(yōu)惠券定點(diǎn)發(fā)放、行業(yè)導(dǎo)購、數(shù)據(jù)中臺計(jì)算等多個場景,業(yè)務(wù)峰值 QPS 較去年提升 230%,研發(fā)效率交付提效超過 30%,彈性資源成本減少 40% 以上。當(dāng) 雙11 走過 11 個年頭,傳統(tǒng)企業(yè)正在憑借云原生技術(shù)悄然逆勢崛起,參與到這場全球購物狂歡節(jié)中。
聯(lián)華華商旗下的世紀(jì)聯(lián)華超市近期迎來了一年一度的 “雙11” 大促活動。時光回到 2014 年的 雙12,支付寶聯(lián)合杭州多家線下品牌和商場門店,推出五折優(yōu)惠促銷活動。在這一次消費(fèi)狂歡中,濱江區(qū)世紀(jì)聯(lián)華店所有的柜員 POS 機(jī)前排起了長隊(duì),隊(duì)伍移動速度異常緩慢,商場工作人員表示,服務(wù)器出現(xiàn)異常導(dǎo)致支付出了問題。6 年后的今天,視線再次回到世紀(jì)聯(lián)華超市 雙11 大促現(xiàn)場,人潮涌動,卻井然有序。參與大促的人數(shù)是 6 年前的幾倍,但現(xiàn)場支付卻穩(wěn)定又順滑,這種天壤之別的轉(zhuǎn)變,源于世紀(jì)聯(lián)華對云原生技術(shù)的大膽嘗試。
世紀(jì)聯(lián)華大促現(xiàn)場
技術(shù)架構(gòu)演進(jìn)之路
我們有幸采訪到世紀(jì)聯(lián)華的技術(shù)人員,了解到世紀(jì)聯(lián)華在技術(shù)架構(gòu)演進(jìn)一路走來的不容易。
2014 年及以前:物理單機(jī)架構(gòu)的災(zāi)難
過去所有 POS 機(jī)及會員卡支付機(jī)器全部部署在各個門店,這套架構(gòu)持續(xù)了近十年之久。
這套架構(gòu)的最大好處是不受網(wǎng)絡(luò)影響,在當(dāng)年網(wǎng)絡(luò)基礎(chǔ)建設(shè)還不完善的情況下,商家可以盡最大可能地保障單個門店的交易穩(wěn)定性不受外界影響。這套架構(gòu)的最大問題是:當(dāng)門店機(jī)器出現(xiàn)故障時,專業(yè)的技術(shù)管理員很難第一時間趕到現(xiàn)場及時修復(fù),系統(tǒng)維護(hù)工作變得十分困難。
2014 年世紀(jì)聯(lián)華的 雙12 活動中,因?yàn)闃I(yè)務(wù)遭遇爆炸性流量,多個門店支付時好時壞,短時間也無法維護(hù),導(dǎo)致用戶體驗(yàn)差,這讓世紀(jì)聯(lián)華的技術(shù)人決心改進(jìn)這套使用了十多年的老系統(tǒng)。
2014~2018 年:中央機(jī)房部署架構(gòu)的演進(jìn)
在 2014 年經(jīng)歷了 雙12 大促活動的問題后,聯(lián)華技術(shù)人決心改進(jìn)各項(xiàng)系統(tǒng),于是將交易系統(tǒng)和會員系統(tǒng)陸續(xù)遷移到自建的中央物理機(jī)房,商品系統(tǒng)也改遷為中央下發(fā)機(jī)器,在浙江省各個門店的 POS 機(jī),通過互聯(lián)網(wǎng)連接至中央機(jī)房。相比 2014 年以前的架構(gòu),新架構(gòu)主要解決了三個問題:
問題修復(fù)可集中維護(hù)處理
商品調(diào)整價格下發(fā)全走網(wǎng)絡(luò)
數(shù)據(jù)可以集中查詢統(tǒng)計(jì)
然而新架構(gòu)遺留的最大的問題是:
管理人員需要掌握所有機(jī)器細(xì)節(jié)
運(yùn)維過程中可能出現(xiàn)宕機(jī)、斷網(wǎng)等事件,調(diào)查相對困難,應(yīng)急處理方案薄弱
2018 年~2019 年年中:全面上云
隨著國內(nèi)公共云建設(shè)的進(jìn)一步發(fā)展,世紀(jì)聯(lián)華也開始全面使用阿里云產(chǎn)品,將本地業(yè)務(wù)包括 MySQL 等全部遷移到了阿里云 ECS 上。
全面上云很好地應(yīng)對了宕機(jī)、計(jì)算節(jié)點(diǎn)斷網(wǎng)等事件的發(fā)生,這也堅(jiān)定了世紀(jì)聯(lián)華使用阿里云的決心。
然而業(yè)務(wù)急劇的擴(kuò)展,數(shù)據(jù)庫的查詢寫入越來越多,全面上云的架構(gòu)在 2019 年中促銷活動中,某臺 16 核 32G 的 MySQL 數(shù)據(jù)庫所在的 ECS ,因?yàn)闀T查詢業(yè)務(wù)實(shí)現(xiàn)未做好彈性擴(kuò)容準(zhǔn)備,定時業(yè)務(wù)陡增導(dǎo)致請求延遲巨大,嚴(yán)重影響了用戶體驗(yàn)。世紀(jì)聯(lián)華開始探索新的業(yè)務(wù)架構(gòu)方式,琢磨如何使用簡潔的架構(gòu)實(shí)現(xiàn)出更高可用的業(yè)務(wù)系統(tǒng)。
2019 年年中至 2019 年 雙11:Serverless 的探索和嘗試
隨著線上業(yè)務(wù)不斷發(fā)展,世紀(jì)聯(lián)華的業(yè)務(wù)量不斷擴(kuò)大。在經(jīng)歷了 2019 年中數(shù)據(jù)庫事件后,世紀(jì)聯(lián)華經(jīng)過嘗試探索后,發(fā)現(xiàn)阿里云的表格存儲服務(wù)比較適合自己的彈性業(yè)務(wù):陡升陡降的業(yè)務(wù)不需要提前做預(yù)算來準(zhǔn)備購買多少臺存儲服務(wù)器。這讓聯(lián)華的技術(shù)人很興奮,因?yàn)楹茈y算準(zhǔn)突發(fā)的定時搶購業(yè)務(wù)量,這就導(dǎo)致很難預(yù)估準(zhǔn)備多少機(jī)器來應(yīng)付相應(yīng)的業(yè)務(wù)量。表格存儲的出現(xiàn)讓聯(lián)華技術(shù)人了解到一個詞:Serverless!在探索 Serverless 的道路上,聯(lián)華的技術(shù)人偶然接觸到了阿里云的函數(shù)計(jì)算,在緊張的測試驗(yàn)證后,技術(shù)人員發(fā)現(xiàn)函數(shù)計(jì)算的優(yōu)異表現(xiàn)很契合聯(lián)華的業(yè)務(wù)高度彈性的會員查詢系統(tǒng)。
從 2019 年 7 月開始,聯(lián)華技術(shù)人在不到 3 個月的時間里,將原有的會員數(shù)據(jù)全部副本鏡像遷移到表格存儲,并將所有渠道商的 API 全面遷移到阿里云 API 網(wǎng)關(guān)做分發(fā),會員查詢業(yè)務(wù)的計(jì)算業(yè)務(wù)也全面遷移到阿里云函數(shù)計(jì)算。
2019 年的 雙11,函數(shù)計(jì)算作為計(jì)算模塊,表格存儲作為存儲模塊,順利地幫助世紀(jì)聯(lián)華渡過大促,扛住高峰流量的同時確保了應(yīng)對業(yè)務(wù)的彈性。而未使用 Serverless 的業(yè)務(wù)因?yàn)轭A(yù)估不足,出現(xiàn)了一些異常。
Serverless 給世紀(jì)聯(lián)華帶來新的曙光:
無需人工干預(yù),瞬時彈性擴(kuò)容很好地解決了流量的爆發(fā)帶來的服務(wù)全面不可用;
運(yùn)維管理簡單,一鍵部署更新函數(shù),不需要了解網(wǎng)絡(luò)分發(fā)架構(gòu),部署流程變得更簡單,無需特聘運(yùn)維人員,普通研發(fā)即可操作;
不再需要提前做費(fèi)用預(yù)算,用多少資源是多少錢,極大解決了技術(shù)和財務(wù)的溝通煩惱;
因?yàn)槎〞r秒殺場景請求波峰波谷明顯,不需要預(yù)留大量機(jī)器,從而節(jié)省了大量費(fèi)用。遺留的問題:
部分請求因?yàn)槔鋯友訒r高導(dǎo)致用戶體感不好,這也是當(dāng)時 Serverless 開發(fā)人員普遍遇到的問題。
雙11 中 Serverless 的表現(xiàn)讓聯(lián)華技術(shù)人很振奮。在順利渡過大促活動后,世紀(jì)聯(lián)華很快宣布:將在所有業(yè)務(wù)中全面使用函數(shù)計(jì)算及表格存儲!
2020 年的 雙11:函數(shù)計(jì)算 2.0 及全面擁抱 Serverless
2019 年下半年,阿里云函數(shù)計(jì)算宣布推出 2.0,支持預(yù)留模式,全面解決冷啟動延遲大的問題;推出單實(shí)例多請求問題,較少實(shí)例支持重 IO 高并發(fā)類型請求調(diào)用;支持自定義運(yùn)行時,支持一鍵遷移傳統(tǒng) Web 架構(gòu)服務(wù)器。2.0 的出現(xiàn)讓函數(shù)計(jì)算在業(yè)務(wù)和規(guī)模上實(shí)現(xiàn)了巨大升級。
在經(jīng)歷了過去的線下場景考驗(yàn)后,世紀(jì)聯(lián)華將各渠道商的業(yè)務(wù)及旗下的“聯(lián)華鯨選 APP”,以及線上交易、定時搶優(yōu)惠券、秒殺業(yè)務(wù)也全部從 ECS 遷移到了函數(shù)計(jì)算 2.0,在開啟預(yù)留模式調(diào)整好單實(shí)例多并發(fā)的模式后,順利地扛過了是平時數(shù)十倍的洪峰流量請求。
比較上述的“時間-流量圖”及“時間-延遲”兩圖可以看到,急劇上升的突發(fā)流量對用戶造成的延遲變化影響非常小,從實(shí)際用戶反饋來看確實(shí)也證實(shí)了用戶體驗(yàn)非常順滑。
所有的數(shù)據(jù)和業(yè)務(wù)上云,減輕的不只是研發(fā)人員的心理壓力,還有工作量。聯(lián)華華商技術(shù)負(fù)責(zé)人樓杰表示,“阿里云函數(shù)計(jì)算省了我們技術(shù)人員好多工作,我們不用管理服務(wù)器這些基礎(chǔ)設(shè)施,只要編寫代碼上傳,系統(tǒng)就會準(zhǔn)備好計(jì)算資源,還提供日志查詢、性能監(jiān)控、報警等功能。這要是放在以前,超市搞 雙11 大促,我們技術(shù)團(tuán)隊(duì)都睡不著覺,只靠擴(kuò)展機(jī)器支撐大體量的流量和業(yè)務(wù),誰心里都沒譜。現(xiàn)在擴(kuò)容的問題交給阿里云,水位遠(yuǎn)遠(yuǎn)高于我們儲備能力的極限。”
站在風(fēng)口上超車:傳統(tǒng)企業(yè)何以更需關(guān)注 Serverless?
2020 年是國內(nèi) Serverless 的技術(shù)元年,為了降低技術(shù)研發(fā)成本、提升運(yùn)維效率,越來越多的企業(yè)開始選擇使用 Serverless 作為基礎(chǔ)研發(fā)底座,大力發(fā)展業(yè)務(wù)。
在近期 CNCF Serverless 研究報告中,阿里云函數(shù)計(jì)算以 46% 的占比占據(jù)國內(nèi)榜首。報告同時顯示,大量的國內(nèi)開發(fā)人員正在將傳統(tǒng)架構(gòu)往 Serverless 上做遷移。Serverless 的出現(xiàn)給傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型帶了更多機(jī)遇。
在今年的疫情當(dāng)中,線上教育已經(jīng)成為廣大學(xué)生群體不可或缺的基礎(chǔ)設(shè)施,阿里云函數(shù)計(jì)算也為企業(yè)提供了強(qiáng)大的計(jì)算力,助力企業(yè)實(shí)現(xiàn)視頻轉(zhuǎn)碼成為國內(nèi)在線教育 TOP 級企業(yè)。
除了新浪微博、芒果 TV、石墨文檔等互聯(lián)網(wǎng)企業(yè),在過去的一年里,越來越多的傳統(tǒng)企業(yè)正在以意想不到的速度接觸、嘗試、大規(guī)模使用函數(shù)計(jì)算。
傳統(tǒng)企業(yè)何以更關(guān)注 Serverless 呢?現(xiàn)如今,大量尖端技術(shù)人才更偏向在互聯(lián)網(wǎng)公司就業(yè),但傳統(tǒng)企業(yè)又面對著大量技術(shù)升級和重構(gòu)技術(shù)架構(gòu)的剛需,人才缺口和技術(shù)升級之間產(chǎn)生了對云原生技術(shù)的需求。Serverless 的出現(xiàn)抹平了研發(fā)人員在預(yù)算、運(yùn)維經(jīng)驗(yàn)上的不足。在幫助企業(yè)對抗業(yè)務(wù)洪峰的情況下,研發(fā)人員能輕易掌控處理,不僅極大地降低了研發(fā)技術(shù)門檻,而且大規(guī)模提升了研發(fā)效率。對于開發(fā)者而言,線上預(yù)警、流量觀測等工具一應(yīng)俱全,關(guān)鍵是免去了運(yùn)維負(fù)擔(dān),切實(shí)為廣大開發(fā)者提供了普惠技術(shù)紅利。對傳統(tǒng)企業(yè)而言,Serverless 縮短了互聯(lián)網(wǎng)公司與傳統(tǒng)企業(yè)之間技術(shù)競爭力的距離。
由于業(yè)務(wù)場景、用戶習(xí)慣迅速變化,許多行業(yè)數(shù)字化業(yè)務(wù)出現(xiàn)急速增長,加快數(shù)字化業(yè)務(wù)發(fā)展成為傳統(tǒng)企業(yè)的必然選擇。云原生是企業(yè)數(shù)字化最短路徑,越來越多的傳統(tǒng)企業(yè)正在擁抱云原生,借助更加快速、靈活的開發(fā)和交付模式,滿足市場快速變化的需求,進(jìn)而加速業(yè)務(wù)創(chuàng)新。世紀(jì)聯(lián)華借助 Serverless 保證了一次次大促的成功,正是這一趨勢的最好證明。