云函數(shù)是一項(xiàng)Serverless計(jì)算服務(wù),提供FaaS(Function as a Service)能力。一方面,云函數(shù)能夠?qū)㈤_發(fā)測(cè)試的對(duì)象聚焦到函數(shù)級(jí)別,使得整體的開發(fā)、聯(lián)調(diào)、交付、上線過程更加靈活;另一方面,云函數(shù)作為Serverless的核心與樞紐,開發(fā)者在應(yīng)用中集成云函數(shù)SDK后,能夠像拼搭積木一樣自由便捷地組織各項(xiàng)服務(wù)如云數(shù)據(jù)庫、云存儲(chǔ)等來實(shí)現(xiàn)業(yè)務(wù)邏輯,提升業(yè)務(wù)功能構(gòu)建的便利性。
此外,云函數(shù)可以根據(jù)函數(shù)的實(shí)際流量對(duì)函數(shù)進(jìn)行彈性伸縮,開發(fā)者無需對(duì)服務(wù)器資源進(jìn)行管理,運(yùn)維管理的難題隨之解決。
簡(jiǎn)單來說,云函數(shù)可以大幅度降低開發(fā)成本。下面看看云函數(shù)具體是如何做到的:
某權(quán)限管理服務(wù)器主要為用戶提供基于憑據(jù)的授權(quán)和鑒權(quán)的能力,日訪問流量近6.85億,且流量集中在一個(gè)核心接口中,伴有明顯的波峰低谷,非常符合云函數(shù)彈性伸縮的特征。
該服務(wù)器一直使用ECS來自動(dòng)調(diào)整計(jì)算資源(EC2 Container Service是一個(gè)高度可擴(kuò)展的軟件容器管理服務(wù)),為了提升資源使用率、降低時(shí)延以及節(jié)約資源和開發(fā)成本,其使用FaaS函數(shù)重構(gòu)了代碼架構(gòu),并通過分次切換流量驗(yàn)證保證了重構(gòu)后服務(wù)器功能的可用性和穩(wěn)定性。
使用FaaS函數(shù)重構(gòu)了代碼架構(gòu)的服務(wù)器上線后,正值6·18大促活動(dòng),日調(diào)用量大幅度提高至27億,實(shí)現(xiàn)了四倍彈性伸縮,流量無損抗住5W+峰值流量。并且CPU利用率達(dá)到60%,相比之前提高了25%;通過準(zhǔn)確的流量預(yù)測(cè),冷啟動(dòng)次數(shù)降低了近30%,費(fèi)用比傳統(tǒng)ECS微服務(wù)模式降低了近90%。(具體收益結(jié)合業(yè)務(wù)場(chǎng)景和使用案例預(yù)估)
在流量低谷期,資源自動(dòng)降低;而當(dāng)流量逐步走高,乃至峰時(shí),應(yīng)用可以快速啟動(dòng)滿足流量峰值,是應(yīng)用可靠性和資源彈性的直接表現(xiàn)。而這都離不開應(yīng)用的快速啟動(dòng)能力。
說到這里,就不得不提到本案例中用到的兩個(gè)云函數(shù)關(guān)鍵技術(shù)點(diǎn):
1、冷啟動(dòng)優(yōu)化:冷啟動(dòng)的時(shí)延降低95%
使用了“快照恢復(fù)”的技術(shù):將當(dāng)前的函數(shù)實(shí)例以及函數(shù)狀態(tài)保存為函數(shù)快照,啟動(dòng)時(shí)從函數(shù)快照并行恢復(fù),省去JVM運(yùn)行時(shí),Spring框架和業(yè)務(wù)初始化階段的耗時(shí)(如下圖所示)。
“快照恢復(fù)”的兩種實(shí)現(xiàn)方式:
1)高速快照緩存:基于共享內(nèi)存同節(jié)點(diǎn)上的函數(shù)實(shí)例零拷貝恢復(fù);
2)并行快照恢復(fù):對(duì)于函數(shù)快照,按照運(yùn)行時(shí)、進(jìn)程數(shù)據(jù)結(jié)構(gòu)、依賴文件等構(gòu)建依賴樹,并行進(jìn)行恢復(fù)重建。
2、調(diào)用量的預(yù)測(cè)預(yù)熱:盡量避免冷啟動(dòng)的發(fā)生
運(yùn)用了彈性預(yù)測(cè)的能力:利用機(jī)器學(xué)習(xí)技術(shù),預(yù)測(cè)未來一段時(shí)間內(nèi)函數(shù)調(diào)用請(qǐng)求次數(shù),提前預(yù)熱適量函數(shù)實(shí)例,避免冷啟動(dòng)。
兩種預(yù)測(cè)模型,滿足多種類型數(shù)據(jù)預(yù)測(cè)需求:
1)FFT:基于傅里葉統(tǒng)計(jì)模型(一維時(shí)序數(shù)據(jù))提取周期性信息,對(duì)強(qiáng)周期性任務(wù)進(jìn)行預(yù)熱;
2)LSTM:基于深度學(xué)習(xí)模型(支持多維數(shù)據(jù))對(duì)業(yè)務(wù)多維特征進(jìn)行學(xué)習(xí)擬合,對(duì)弱/非周期性任務(wù)進(jìn)行預(yù)熱。
(本文數(shù)據(jù)及圖片來源華為開發(fā)者聯(lián)盟)
云函數(shù)采用三層隔離,實(shí)現(xiàn)了內(nèi)核、容器、網(wǎng)絡(luò)三層安全防護(hù)能力,在提高資源使用率、降低成本的同時(shí),也保障了云端數(shù)據(jù)的安全。此外,云函數(shù)還提供面向流量洪峰(精準(zhǔn)容量+極致彈性+限流降級(jí))的高可用方案,確保在升級(jí)時(shí)不會(huì)造成業(yè)務(wù)的中斷,您可以直接創(chuàng)建函數(shù),不用申請(qǐng)額外資源,即開即用,流程極簡(jiǎn)。
(本內(nèi)容屬于網(wǎng)絡(luò)轉(zhuǎn)載,文中涉及圖片等內(nèi)容如有侵權(quán),請(qǐng)聯(lián)系編輯刪除。市場(chǎng)有風(fēng)險(xiǎn),選擇需謹(jǐn)慎!此文僅供參考,不作買賣及投資依據(jù)。)
原創(chuàng)文章,作者:陳晨,如若轉(zhuǎn)載,請(qǐng)注明出處:http://m.2079x.cn/article/561013.html