華為云計算 云知識 華為云Serverless核心技術(shù)與最佳實踐
華為云Serverless核心技術(shù)與最佳實踐

函數(shù)工作流 FunctionGraph服務(wù)入口>>

一、Serverless簡介

軟件架構(gòu)的發(fā)展從原先的單體架構(gòu)到近十幾年的微服務(wù)架構(gòu),再到現(xiàn)在新興的Serverless架構(gòu)。單體架構(gòu)通常把應(yīng)用的邏輯和功能耦合在一起,部署在BMS裸金屬機或VM上,耦合模式使得一些通用功能或通用邏輯無法靈活復(fù)用,經(jīng)常出現(xiàn)重復(fù)造輪子的現(xiàn)象,架構(gòu)整體上是相對封閉的。

微服務(wù)時代對應(yīng)用做了拆分,組件服務(wù)化,誕生了一系列優(yōu)秀的設(shè)計原則,如接口標(biāo)準(zhǔn)化、CS/CD 自動化 ,使得應(yīng)用初步具備了彈性和自動容錯的能力。

在Serverless的框架下,應(yīng)用的粒度更細(xì),例如以函數(shù)為粒度進(jìn)行管理和開發(fā)迭代,應(yīng)用通過事件驅(qū)動的方式觸發(fā)運行。

Serverless可以看作是一種 云計算 服務(wù)模型,它允許開發(fā)者在不需要管理服務(wù)器的情況下通過事件驅(qū)動的方式運行應(yīng)用代碼,主要解決資源托管、調(diào)度、運維管理等一系列平臺型問題,可以看作是DevOps的進(jìn)一步延伸。

從傳統(tǒng)微服務(wù)向Serverless演進(jìn)的過程中,資源管理的邊界逐步上移。在微服務(wù)時代,虛機/容器時代,開發(fā)者發(fā)布應(yīng)用,需要管理虛擬化層或更向上的運行時細(xì)節(jié);而從IaaS到Serverless,抽象度越來越高,底層細(xì)節(jié)的屏蔽度也越來越高,對于開發(fā)者而言,云的易用性性也在增強,門檻在降低。

Serverless將是下一代的云計算范式,得益于它在按因付費、自動彈性、免運維等方面的顯著優(yōu)勢。通用全場景的Serverless能夠幫助企業(yè)解決更廣泛的計算和運行交付的問題。實際上,Serverless也在過去幾年的發(fā)展中,逐步增長成為下一代云上交付、運行與交付標(biāo)準(zhǔn)的框架。

二、華為云 Serverless 核心技術(shù)

Serverless的特點是按用計費、按需計費,如果終端沒有流量,平臺會自動回收應(yīng)用資源,不需要為空閑時間付費,需要再次使用時,通過重新啟動的方式再次加載。

冷啟動或進(jìn)一步延伸到高并發(fā)下的彈性問題,用戶側(cè)應(yīng)用托管到Serverless平臺上,如果頻繁經(jīng)歷冷啟動,應(yīng)用的QoS下降,最直觀體現(xiàn)在終端用戶頁面的Web 應(yīng)用響應(yīng)很慢,有超時的風(fēng)險,導(dǎo)致用戶側(cè)體驗下降。對云平臺側(cè),冷啟動和彈性關(guān)系著資源利用率,例如多租戶進(jìn)行混合部署時,預(yù)熱效率的提升問題,以及平臺多用戶多應(yīng)用流量并發(fā)上漲時的彈性問題。因此,冷啟動和彈性問題是Serverless領(lǐng)域廣泛關(guān)注的技術(shù)重點。

為了解決上述問題,華為云Serverless做了一系列的探索。

鏈路加速:通過高性能解壓縮轉(zhuǎn)換與共享內(nèi)存加速技術(shù),能夠把性能提升2-11倍;通過公共依賴包分離、預(yù)解壓與動態(tài)按需 link 技術(shù),加速應(yīng)用冷啟動 5- 10 倍。

池化預(yù)熱、彈性調(diào)度:通過資源池化預(yù)熱、分層預(yù)加載與彈性水位控制,實現(xiàn)毫秒級 (< 10 ms) 彈性。

智能預(yù)熱:以智能、分層資源預(yù)熱實現(xiàn)負(fù)載感知,自適應(yīng)池化水位控制;采用負(fù)載、資源壓力預(yù)測框架,實現(xiàn)良好擴展性、數(shù)據(jù)驅(qū)動、以及工程師經(jīng)驗的規(guī)則注入。

預(yù)留實例智能推薦策略:通過建模的方式推算給定時間段大概需要的實例數(shù)量,提供高性能、平衡、低成本三種預(yù)留實例配置策略。

三、華為云 Serverless 最佳實踐

案例一:Mock 服務(wù)接入 Serverless

客戶Mock服務(wù)可以模擬接口的響應(yīng),常用于服務(wù)打樁,避免由于依賴服務(wù)的不穩(wěn)定,造成自身開發(fā)和測試進(jìn)度的阻塞。在華為云Serverless 的幫助下,從手動擴縮容變成毫秒級的自動彈性,提升開發(fā)、上線效率 100%,資源成本降低 50%

案例二:視頻業(yè)務(wù)基于函數(shù)實現(xiàn) BFF (Backends For Frontends) 模式

使用函數(shù)BFF架構(gòu)后,華為視頻登錄速度提升0.6~1s,相比原有方案快30%~40%。

案例三:基于 Serverless 構(gòu)建的視頻轉(zhuǎn)碼服務(wù)

基于Serverless構(gòu)建的視頻轉(zhuǎn)碼服務(wù),函數(shù)編排的能力,由多個函數(shù)協(xié)同提供完整的功能,比如一個視頻處理業(yè)務(wù)下,有多個視頻處理的算子,能夠自動 彈性伸縮 。完整改造后,整個成本降低了80%。

四、General-purpose Serverless 展望

未來,邊緣、中間件、托管、 大數(shù)據(jù) 將全面Serverless化,最底層是Serverless的BaaS的資源、資源池的自動化管理和快速彈性的能力。在底座之上,是跟業(yè)務(wù)相關(guān)的函數(shù)計算、容器和托管,三種共存。Serverless容器將下沉到Serverless底座,只需要對底座資源進(jìn)行管理。在邊緣端,傳統(tǒng)的容器或是虛機可能無法支撐,采用Serverless + WASM是更可行的方案。