新零售:从上云到云原生 Serverless
作者 | 七凌
來源 | 阿里巴巴中間件
頭圖?|?付費下載于 IC?Photo
某零售商超行業(yè)的龍頭企業(yè),其主要業(yè)務(wù)涵蓋購物中心、大賣場、綜合超市、標準超市、精品超市、便利店及無人值守智慧商店等零售業(yè)態(tài),涉及全渠道零售、倉儲物流、餐飲、消費服務(wù)、數(shù)據(jù)服務(wù)、金融業(yè)務(wù)、跨境貿(mào)易等領(lǐng)域。為了持續(xù)支持業(yè)務(wù)高速且穩(wěn)定地發(fā)展,其在快速上云后,將核心業(yè)務(wù)改造為全 Serverless 架構(gòu)的中臺模式,采用函數(shù)計算 + API 網(wǎng)關(guān) + 表格存儲 OTS 作為計算網(wǎng)絡(luò)存儲核心,彈性支撐日常和大促峰谷所需資源,輕松支撐 618/ 雙11/ 雙12 大促。
傳統(tǒng)企業(yè)為什么更需要關(guān)注?Serverless
為了降低技術(shù)研發(fā)成本、提升運維效率,越來越多的企業(yè)選擇使用 Serverless 作為基礎(chǔ)研發(fā)底座,大力發(fā)展業(yè)務(wù)。在 CNCF Serverless 研究報告中顯示,大量的國內(nèi)開發(fā)人員正在將傳統(tǒng)架構(gòu)往 Serverless 上做遷移。Serverless 的出現(xiàn)給傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型帶了更多機遇。
傳統(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ā)人員在預算、運維經(jīng)驗上的不足。在幫助企業(yè)對抗業(yè)務(wù)洪峰的情況下,研發(fā)人員能輕易掌控處理,不僅極大地降低了研發(fā)技術(shù)門檻,而且大規(guī)模提升了研發(fā)效率。對于開發(fā)者而言,線上預警、流量觀測等工具一應俱全,關(guān)鍵是免去了運維負擔,切實為廣大開發(fā)者提供了普惠技術(shù)紅利。對傳統(tǒng)企業(yè)而言,Serverless 縮短了互聯(lián)網(wǎng)公司與傳統(tǒng)企業(yè)之間技術(shù)競爭力的距離。
從上云到云原生
2016 年以后,隨著國內(nèi)公共云的迅速發(fā)展,全面上云勢不可擋。某知名大型商場在 2018~2019 年期間,把自建機房中的各個系統(tǒng)模塊逐漸遷移到了公有云,整體架構(gòu)沒有太大改變,因此遷移工作比較順利。
系統(tǒng)全面遷移上云后一些改進和不足:
1
改進
不再需要關(guān)心網(wǎng)絡(luò)、操作系統(tǒng)的硬件細節(jié)
比如阿里云的 ECS 會提前做調(diào)度和預警,把用戶數(shù)據(jù)轉(zhuǎn)移并做多份數(shù)據(jù)的備災,防止磁盤壞掉的情況發(fā)生。
升級快捷簡單
比如用戶使用的是 4 核的機器,當發(fā)現(xiàn)業(yè)務(wù)增長迅速需要做硬件升級時,就只需要做一個鏡像。比如在夜間做一個磁盤快照,重新申請一臺新機器,然后把快照恢復上去,就可以完成一鍵遷移。對用戶來說這是非常快捷的方式,對開發(fā)者來說也是較好的體驗。
機器擴容時間大幅縮短
上面提到的是單機擴容,比如 4 核升到 8 核、16G 升到 32G 的內(nèi)存。除此之外還有橫向的擴容,例如用戶交易系統(tǒng)的 API 接口,隨著業(yè)務(wù)的發(fā)展需要由原來的 2 臺機器擴到 8 臺機器,這種情況下用戶只需去申請機器,然后將鏡像擴展到不同的機器上即可。
2
不足
資源預算困難
無法預估業(yè)務(wù)遇到大促活動時所能達到的體量,因此無法準確計算出所需硬件的數(shù)量。
水平擴展
水平擴展對研發(fā)有較高的要求。比如數(shù)據(jù)是否要做到無狀態(tài),無狀態(tài)的話水平擴展會比較容易,而如果是有狀態(tài),數(shù)據(jù)可能就需要做緩存,這就會涉及到數(shù)據(jù)庫相關(guān)的問題,例如數(shù)據(jù)過期、一致性等。如果對這些了解不夠透徹,做水平擴展就會比較困難。
水位監(jiān)控
許多開發(fā)者在水位監(jiān)控上處理得并不完善,如果將各個業(yè)務(wù)系統(tǒng)混在一臺機器上,當遇到機器水位較高,想要快速排查問題并及時進行流控、拆分、臨時修復等就顯得尤為困難。
財務(wù)預算困難
與資源預算困難類似。
硬件升級成本高
要做到用戶無感無損升級,可能會涉及到連接上的處理與數(shù)據(jù)庫一致性的問題。如果多個模塊需要同時升級,還要注意數(shù)據(jù)結(jié)構(gòu)的兼容問題。
數(shù)據(jù)庫單點故障
許多廠家將數(shù)據(jù)全部放在一個數(shù)據(jù)庫中,如果處理不妥當可能會造成單點故障。這就要做數(shù)據(jù)拆分,粗拆的話,需要注意事務(wù)和鎖相關(guān)的問題,效率會大打折扣;細拆的話,做查詢和排序時就會比較困難,給業(yè)務(wù)實現(xiàn)造成一定麻煩。
業(yè)務(wù)挑戰(zhàn)
在一次年中大促時,由于線上業(yè)務(wù)用戶訪問不可控,數(shù)據(jù)量過大,MySQL 單機訪問被打爆,導致了存儲數(shù)據(jù)庫出現(xiàn)問題,影響到了多個系統(tǒng),造成了一定的損失。因此在后續(xù)服務(wù)化改造過程中,數(shù)據(jù)庫選型由 MySQL 更改為表格存儲 OTS,表格存儲最大的優(yōu)點是用戶不需要關(guān)心訪問量和機器數(shù)的比例關(guān)系。只要訪問量擴大,后臺會自動擴容增擴機器,滿足高并發(fā)的數(shù)據(jù)讀取;在數(shù)據(jù)并發(fā)請求降低處于低峰期時,后臺就會將機器回收,用戶不再需要關(guān)心機器的數(shù)量及如何調(diào)動。
Severless改造
針對用戶流量不可控問題,客戶引入了阿里云的產(chǎn)品“API 網(wǎng)關(guān)”,API 網(wǎng)關(guān)可以針對不同渠道商做管控發(fā)布及流量控制。比如發(fā)現(xiàn)微信渠道流量有異常,就可以借助 API 網(wǎng)關(guān)進行限流。
另外計算也是一個非常重要的問題,客戶經(jīng)過探索發(fā)現(xiàn)阿里云函數(shù)計算 FC非常契合其業(yè)務(wù)場景。比如定時搶購、優(yōu)惠券投放等活動造成巨大的 burst 沖擊,當發(fā)現(xiàn)計算資源不夠的時候再去買機器肯定是來不及的,而函數(shù)計算及時擴容的功能就很好地解決了這個問題。另外其數(shù)據(jù)觀測和異常報警功能,也吸引到了客戶。
今年 3 月,權(quán)威咨詢機構(gòu) Forrester 發(fā)布 2021 年第一季度 FaaS 平臺評估報告,阿里云函數(shù)計算憑借在產(chǎn)品能力、安全性、戰(zhàn)略愿景和市場規(guī)模等方面的優(yōu)勢脫穎而出,產(chǎn)品能力位列全球第一,這也是首次有中國云廠商進入 FaaS 領(lǐng)導者象限。
在緊張的測試驗證后,技術(shù)人員發(fā)現(xiàn)函數(shù)計算的優(yōu)異表現(xiàn)很契合自身業(yè)務(wù)高度彈性的會員查詢系統(tǒng)。從 2019 年 7 月開始,客戶的技術(shù)團隊在不到 3 個月的時間里,將原有的會員數(shù)據(jù)全部副本鏡像遷移到表格存儲,并將所有渠道商的 API 全面遷移到阿里云 API 網(wǎng)關(guān)做分發(fā),會員查詢業(yè)務(wù)的計算業(yè)務(wù)也全面遷移到阿里云函數(shù)計算。
2019 年的 雙11,函數(shù)計算作為計算模塊,表格存儲作為存儲模塊,順利地幫助客戶渡過大促,扛住高峰流量的同時確保了應對業(yè)務(wù)的彈性。而未使用 Serverless 的業(yè)務(wù)因為預估不足,出現(xiàn)了一些異常。正是因為函數(shù)計算在 雙11 中的表現(xiàn)讓客戶技術(shù)人很振奮。在順利度過大促活動后,客戶就在所有業(yè)務(wù)中全面使用函數(shù)計算及表格存儲!
新零售商超整體架構(gòu)圖
全 Serverless 架構(gòu):函數(shù)計算 + API 網(wǎng)關(guān) + 表格存儲;
彈性高可用:毫秒級彈性擴容、充足的資源池水位、跨可用區(qū)高可用;
敏捷開發(fā)免運維:函數(shù)式極簡編程可專注于業(yè)務(wù)創(chuàng)新,無采購和部署成本、提供監(jiān)控報警等完備的可觀測能力。
2019 年下半年,阿里云函數(shù)計算宣布推出 2.0,支持預留模式,全面解決冷啟動延遲大的問題;推出單實例多請求問題,較少實例支持重 IO 高并發(fā)類型請求調(diào)用;支持自定義運行時,支持一鍵遷移傳統(tǒng) Web 架構(gòu)服務(wù)器。2.0 的出現(xiàn)讓函數(shù)計算在業(yè)務(wù)和規(guī)模上實現(xiàn)了巨大升級。
在經(jīng)歷了過去的線下場景考驗后,客戶將各渠道商的業(yè)務(wù)及旗下的移動 App,以及線上交易、定時搶優(yōu)惠券、秒殺業(yè)務(wù)也全部從 ECS 遷移到了函數(shù)計算 2.0,在開啟預留模式調(diào)整好單實例多并發(fā)的模式后,順利地扛過了是平時數(shù)十倍的洪峰流量請求。
比較上述的“時間-流量圖”及“時間-延遲”兩圖可以看到,急劇上升的突發(fā)流量對用戶造成的延遲變化影響非常小,從實際用戶反饋來看確實也證實了用戶體驗非常順滑。
所有的數(shù)據(jù)和業(yè)務(wù)上云,減輕的不只是研發(fā)人員的心理壓力,更為研發(fā)人員大量減負,從而讓大家可以做更聚焦在業(yè)務(wù)邏輯上的事情。函數(shù)計算可以讓研發(fā)人員不用管理服務(wù)器這些基礎(chǔ)設(shè)施,只要編寫代碼上傳,系統(tǒng)就會準備好計算資源,還提供日志查詢、性能監(jiān)控、報警等功能。如果是按照以前的模式,超市搞 雙11 大促,相關(guān)的技術(shù)團隊都睡不著覺,只靠擴展機器支撐大體量的流量和業(yè)務(wù),誰心里都沒譜。現(xiàn)在擴容的問題交給阿里云,水位遠遠高于客戶原有的儲備能力的極限。
今年,Serverless 迎來重大升級。函數(shù)計算重磅發(fā)布容器鏡像加速技術(shù),容器啟動延時縮短 50%-80%,將原本屬于開發(fā)者的鏡像優(yōu)化負擔轉(zhuǎn)由函數(shù)計算承擔,進一步幫助開發(fā)者提高生產(chǎn)效率,專注業(yè)務(wù)創(chuàng)新。該技術(shù)源于阿里集團超大規(guī)模和場景高度復雜的容器環(huán)境,對鏡像存儲、加速技術(shù)有深厚的積累,并出色地承擔了 3 年雙十一、雙十二、春節(jié)等大促秒殺場景的嚴苛的挑戰(zhàn)。
同時,Serverless 應用引擎(SAE)重磅發(fā)布 Java 應用啟動加速功能,首度將 Alibaba Dragonwell(阿里云開源的 Open JDK 長期支持版本)的冷啟動加速技術(shù)、多線程運行加速技術(shù)和 SAE 自身的原地升級策略、鏡像預熱策略相結(jié)合,實現(xiàn)了 Java 應用的端到端啟動速度提升 45%,最快僅需 15s,多線程性能提升 30%。
由于業(yè)務(wù)場景、用戶習慣迅速變化,許多行業(yè)數(shù)字化業(yè)務(wù)出現(xiàn)急速增長,加快數(shù)字化業(yè)務(wù)發(fā)展成為傳統(tǒng)企業(yè)的必然選擇。云原生是企業(yè)數(shù)字化最短路徑,越來越多的傳統(tǒng)企業(yè)正在擁抱云原生,借助更加快速、靈活的開發(fā)和交付模式,滿足市場快速變化的需求,進而加速業(yè)務(wù)創(chuàng)新。傳統(tǒng)零售企業(yè)借助 Serverless 保證了一次次大促的成功,正是這一趨勢的最好證明。
總結(jié)
以上是生活随笔為你收集整理的新零售:从上云到云原生 Serverless的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在SQL Server 2019中添
- 下一篇: 央视315曝光SDK事件,应用开发者如何