高德最佳实践:Serverless 规模化落地有哪些价值?
來源 | 阿里巴巴云原生公眾號
作者 | 何以然(以燃)
導(dǎo)讀:曾經(jīng)看上去很美、一直被觀望的 Serverless,現(xiàn)已逐漸進(jìn)入落地的階段。今年的"十一出行節(jié)",高德在核心業(yè)務(wù)規(guī)模化落地 Serverless,由 Serverless 支撐的業(yè)務(wù)在流量高峰期的表現(xiàn)十分優(yōu)秀。傳統(tǒng)應(yīng)用也能帶來同樣的體驗(yàn),那么 Serverless 的差異化價值又是什么呢?本文分享高德 Serverless 規(guī)?;涞乇澈蟮膶?shí)踐總結(jié)。
隨著 Serverless 概念的進(jìn)一步普及,開發(fā)者已經(jīng)從觀望狀態(tài)進(jìn)入嘗試階段,更多的落地場景也在不斷解鎖。“Serverless 只適合小場景嗎?”、“只能被事件驅(qū)動嗎?” 這些早期對 Serverless 的質(zhì)疑正在逐漸消散,用戶正在更多的核心場景中,開始采用 Serverless 技術(shù)達(dá)到提效、彈性、成本優(yōu)化等目的。作為地圖應(yīng)用的領(lǐng)導(dǎo)者,高德為帶給用戶更好的出行體驗(yàn),不斷在新技術(shù)領(lǐng)域進(jìn)行探索,在核心業(yè)務(wù)規(guī)模化落地 Serverless,現(xiàn)已取得顯著成效。
2020 年的“十一出行節(jié)”期間,高德地圖創(chuàng)造了記錄 ——截止 2020 年 10 月 1 日 13 時 27 分 27 秒,高德地圖當(dāng)日活躍用戶突破 1 億,比 2019 年 10 月 1 日提前 3 時 41 分達(dá)成此記錄。
期間,Serverless 作為其中一個核心技術(shù)場景,平穩(wěn)扛住了流量高峰期的考驗(yàn)。值得一提的是,由 Serverless 支撐的業(yè)務(wù)在流量高峰期的表現(xiàn)十分優(yōu)秀,每分鐘函數(shù)調(diào)用量接近兩百萬次。這再次驗(yàn)證了 Serverless 基礎(chǔ)技術(shù)的價值,進(jìn)一步拓展了技術(shù)場景。
業(yè)務(wù)場景
自主出行是高德地圖的核心業(yè)務(wù),涉及到用戶出行相關(guān)的功能訴求,承載了高德地圖 APP 內(nèi)最大的用戶流量。下圖為自主出行核心業(yè)務(wù)中應(yīng)用 Node FaaS 的部分場景,從左至右依次為:主圖場景頁、路線規(guī)劃頁、導(dǎo)航結(jié)束頁。
隨著功能的進(jìn)一步拓展,高德地圖從導(dǎo)航工具升級為出行服務(wù)平臺和生活信息服務(wù)入口,進(jìn)一步拓展了出行相關(guān)的生活信息服務(wù)場景,帶給用戶更全面的用戶體驗(yàn)。上圖功能為場景推薦卡片,旨在根據(jù)用戶出行意圖推薦信息,提升用戶出行體驗(yàn)。此功能需具備快速迭代,樣式調(diào)整高靈活性的能力。因此,將卡片樣式模版存放于云端,通過服務(wù)下發(fā)的形式渲染至客戶端無疑為最優(yōu)選擇,可以滿足業(yè)務(wù)快速靈活迭代的目的。
經(jīng)過方案評估判斷,此場景類型屬于無狀態(tài)服務(wù),基于阿里云 Serverless 成熟的生態(tài),高德最終選擇接入 Node FaaS(阿里云函數(shù)計算)服務(wù)能力,出行前端搭建了場景推薦卡片服務(wù)。卡片的 UI 模版獲取、數(shù)據(jù)請求聚合&邏輯處理、拼接生成 Schema 的能力均在 FaaS 層得到實(shí)現(xiàn),客戶端根據(jù)服務(wù)下發(fā)的 Schema 直接渲染展示,達(dá)到更加輕便靈活的目標(biāo)。
那么,Serverless 場景在“十一出行節(jié)”峰值場景中的具體表現(xiàn)如何?
整體服務(wù)成功率均大于 99.99%?,總計 100W+?次觸發(fā)/分鐘,QPS 2W+,各場景的服務(wù)平均響應(yīng)時間均在 60ms 以下,服務(wù)穩(wěn)定性超出預(yù)期。
業(yè)務(wù)價值
從對以上業(yè)務(wù)場景的支撐中,我們可以看出 Serverless 的表現(xiàn)非常優(yōu)秀。當(dāng)然你也會問,傳統(tǒng)的應(yīng)用也能帶來同樣的體驗(yàn),那么 Serverless 的差異化價值又是什么呢?
1. 簡單提效
傳統(tǒng) BFF(Back-end For Front-end)層應(yīng)用會隨著時間推移,以及業(yè)務(wù)需求的增加, 其 BFF 層逐漸變 “富”, 冗余的代碼逐漸變多,最后變成開發(fā)者的噩夢——“牽一發(fā)而動全身”。隨著人員迭代變化,模塊的開發(fā)者也會變化,BFF 層就會慢慢變成一個無人知曉,無人敢動的模塊。
當(dāng) BFF 層轉(zhuǎn)換成 SFF (Serverless For Front-end) 層之后,會有什么變化?SFF 的職責(zé)會變的單一、零運(yùn)維、成本更低,這些是 Serverless 本身自帶的能力,而這些能力可以幫助前端進(jìn)一步釋放生產(chǎn)潛能。開發(fā)者不再需要一個富 BFF 層,而只需一個接口或一個 SFF 就可以實(shí)現(xiàn)功能,天然解決了“牽一發(fā)而動全身”的問題。如果接口停服或者沒有流量,那么所用的實(shí)例會自動縮零,也就很容易分辨出是哪一個接口函數(shù),后期就可以刪掉此接口的函數(shù),有效提升資源利用率。
高德在 Serverless 應(yīng)用上非常先進(jìn),實(shí)現(xiàn)了 FaaS 層與研發(fā)體系的完全對接,因此,應(yīng)用從開發(fā)、測試、灰度、上線的全生命周期,到具備流控、彈性、容災(zāi)等標(biāo)準(zhǔn)化能力,所用的時間較以前縮短了 40%,大大提高了人效。
2. 彈性以及成本
通過流量趨勢數(shù)據(jù),我們可以觀察到地圖場景流量特點(diǎn)——高峰與低峰的落差十分明顯。按照傳統(tǒng)應(yīng)用的資源準(zhǔn)備,我們需要根據(jù)最高峰的流量進(jìn)行資源準(zhǔn)備,所以到了流量低峰期,多準(zhǔn)備的機(jī)器會有很多冗余,這就造成了成本的浪費(fèi)。
針對以上情況,高德使用了阿里云函數(shù)計算,可以根據(jù)流量變化自動擴(kuò)縮容。然而,提升擴(kuò)縮容速度的復(fù)雜性較大,一直是大企業(yè)的專屬,但函數(shù)計算可以通過毫秒級別的啟動優(yōu)勢,將快上快下的擴(kuò)縮容能力普及給用戶,輕松幫助用戶實(shí)現(xiàn)了計算資源的彈性利用,并且大大降低了成本。
3. 可觀測性
可觀測性是應(yīng)用上線診斷平臺的必備屬性,要讓用戶觀察到 RT 變化、資源的使用率、系統(tǒng)應(yīng)用的全鏈路調(diào)用,從而快速診斷出系統(tǒng)應(yīng)用的瓶頸問題。阿里云函數(shù)計算率先與日志服務(wù)、云監(jiān)控、tracing 平臺以及函數(shù)工作流編排做了完美的融合,用戶只需要配置一次,就可以完完整整的享受到以上這些功能,大大降低了用戶的學(xué)習(xí)成本,實(shí)現(xiàn)了對應(yīng)用程序的快速診斷。
Serverless 規(guī)?;涞氐男蚰灰呀?jīng)拉開, 更多場景正在各行各業(yè)中解鎖。Serverless 在高德的規(guī)模化落地,對于業(yè)務(wù)方來而言,業(yè)務(wù)迭代更快更靈活了,為業(yè)務(wù)創(chuàng)新創(chuàng)造了前提條件;對于前端開發(fā)者而言,進(jìn)一步激活了開發(fā)者的生產(chǎn)潛能,提升了極大的能力自信。高德出行業(yè)務(wù)從 2020 年初的能力試點(diǎn)到“十一出行節(jié)”的自主出行核心場景,期間接入了阿里云函數(shù)計算,積累了非常寶貴的云原生落地經(jīng)驗(yàn),為未來業(yè)務(wù)整體上云打下了良好基礎(chǔ)。
作者簡介:何以然(以燃) 阿里巴巴前端技術(shù)專家,2016 年入職高德地圖,目前負(fù)責(zé)高德出行業(yè)務(wù)研發(fā)以及 Serverless 相關(guān)技術(shù)落地
更多企業(yè)落地實(shí)踐內(nèi)容,可下載云原生架構(gòu)白皮書了解詳情!
總結(jié)
以上是生活随笔為你收集整理的高德最佳实践:Serverless 规模化落地有哪些价值?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 以 Kubernetes 为代表的容器技
- 下一篇: 2020双11,Dubbo3.0 在考拉