您好,登錄后才能下訂單哦!
目前 Serverless 已成為云原生社區(qū)關(guān)注的重點(diǎn)之一,有人說它是微服務(wù)的繼承者,將會(huì)徹底改變軟件研發(fā)的現(xiàn)狀,那么真實(shí)情況如何呢?本文將介紹 Serverless 市場(chǎng)觀察、落地挑戰(zhàn),以及螞蟻金服對(duì) Serverless 的實(shí)踐。
Serverless 已成趨勢(shì)
當(dāng)我們回顧云計(jì)算的發(fā)展歷程,會(huì)看到基礎(chǔ)架構(gòu)經(jīng)歷了從物理機(jī)到虛擬機(jī),從虛擬機(jī)再到容器的演進(jìn)過程。在這大勢(shì)之下,應(yīng)用架構(gòu)也在同步演進(jìn),從單體過渡到多層,再到當(dāng)下的微服務(wù)。在變化的背后,有一股持續(xù)的動(dòng)力,它來自于三個(gè)不變的追求:提高資源利用率,優(yōu)化開發(fā)運(yùn)維體驗(yàn),以及更好地支持業(yè)務(wù)發(fā)展。
目前, Serverless 已成為云原生社區(qū)關(guān)注的重點(diǎn)之一,它的發(fā)展也不例外。相比容器技術(shù),Serverless 可以將資源管理的粒度更加細(xì)化,使開發(fā)者更快上手云原生,并且倡導(dǎo)事件驅(qū)動(dòng)模型支持業(yè)務(wù)發(fā)展。從而幫助用戶解決了資源管理復(fù)雜、低頻業(yè)務(wù)資源占用等問題;實(shí)現(xiàn)面向資源使用,以取代面向資源分配的模式。根據(jù) CNCF 在2018年底基于 2400人的一份統(tǒng)計(jì)報(bào)告,已有 38% 的組織正在使用Serverless 技術(shù),相比 2017 同期增長了 22%。(數(shù)據(jù)來源:CNCF Survey)
目前市場(chǎng)上,云廠商提供了多種 Serverless 產(chǎn)品和解決方案,大致可劃分為:
1.函數(shù)計(jì)算服務(wù):如 AWS Lambda,特點(diǎn)是以代碼片段為單位運(yùn)行,并對(duì)代碼風(fēng)格有一定要求。
2.面向應(yīng)用的 Serverless 服務(wù):如 Knative,特點(diǎn)是基于容器服務(wù),并提供了從代碼包到鏡像的構(gòu)建能力。
3.容器托管服務(wù):如 AWS Fargate,特點(diǎn)是以容器鏡像為單元運(yùn)行,但用戶仍需感知容器。
從社區(qū)來看,CNCF 云原生基金會(huì)正通過 Serverless 工作組協(xié)調(diào)社區(qū)討論并促進(jìn)規(guī)范和標(biāo)準(zhǔn)的形成,工作組產(chǎn)出了 Serverless 白皮書和全景圖等重要內(nèi)容。其中,全景圖將目前的生態(tài)劃分為了平臺(tái)層,框架層,工具鏈層和安全層這四個(gè)模塊。
圖片來源:https://landscape.cncf.io/
落地挑戰(zhàn)
在交流過程中,我們發(fā)現(xiàn) Serverless 很好地解決了客戶的一些訴求:包括通過 0-1-0 的伸縮能力來提高資源時(shí)用率,降低成本;支持代碼包出發(fā),從而讓客戶無感化實(shí)現(xiàn)云原生,歷史應(yīng)用無需經(jīng)過容器化改造;支持靈活的觸發(fā)器配置,引導(dǎo)用戶對(duì)應(yīng)用進(jìn)行事件驅(qū)動(dòng)的改造,從而適應(yīng)業(yè)務(wù)的高速發(fā)展等。這些優(yōu)勢(shì),使得 Serverless 在小程序開發(fā)的場(chǎng)景下大放異彩。同時(shí),對(duì)于在企業(yè)級(jí)應(yīng)用的生產(chǎn)環(huán)境落地 Serverless,各方也有了很多探索和突破。在前段時(shí)間的 KubeConChina 2019 大會(huì)上,Serverless 工作組會(huì)議也以此為話題展開了討論。目前的核心挑戰(zhàn)可歸納為:
1.平臺(tái)可遷移
目前眾多平臺(tái)都推出了自己的 Serverless 標(biāo)準(zhǔn),包括代碼格式、框架和運(yùn)維工具等,用戶既面臨較高的學(xué)習(xí)成本和選擇壓力,也擔(dān)心無法在平臺(tái)之間靈活遷移 Serverless 應(yīng)用。
2.0-M-N 性能
線上應(yīng)用對(duì)控制請(qǐng)求延遲有嚴(yán)格的要求,因此,用戶需要謹(jǐn)慎地驗(yàn)證 Serverless 0-1冷啟動(dòng)速度、M-N 擴(kuò)容速度以及穩(wěn)定性都達(dá)到了生產(chǎn)要求。
3.調(diào)試和監(jiān)控
用戶對(duì)底層資源無感知,只能借助平臺(tái)能力對(duì)應(yīng)用進(jìn)行調(diào)試和監(jiān)控,用戶需要平臺(tái)提供強(qiáng)大的日志功能進(jìn)行排錯(cuò),和多維度的監(jiān)控功能時(shí)刻了解應(yīng)用狀態(tài)。
4.事件源集成
采用 Serverless 架構(gòu)后,應(yīng)用往往進(jìn)行更細(xì)粒度的拆分,并通過事件串聯(lián)。因此用戶希望平臺(tái)能集成大多數(shù)通用的事件源,并支持自定義事件,使得觸發(fā)機(jī)制更加靈活。
5.工作流支持
完成某個(gè)業(yè)務(wù),往往涉及多個(gè) Serverless 應(yīng)用之間的配合,當(dāng)數(shù)目較多時(shí),用戶希望可以用工作流工具來進(jìn)行統(tǒng)一編排和狀態(tài)查看,提高效率。
螞蟻金服實(shí)踐
SOFAStack 致力于通過產(chǎn)品技術(shù)解決云上客戶實(shí)際痛點(diǎn),沉淀螞蟻金服技術(shù)實(shí)踐,幫助用戶以高效、低成本的方式遷移到云原生架構(gòu)。Serverless 應(yīng)用服務(wù)(Serverless Application Service,簡(jiǎn)稱 SOFA SAS)是一款源自螞蟻金服實(shí)踐的一站式 Serverless 平臺(tái)。SAS 基于 SOFAStack CAFE 云應(yīng)用引擎 (Cloud ApplicationFabric Engine 簡(jiǎn)稱 CAFE),CAFE的容器服務(wù)已經(jīng)通過了 CNCF 的一致性認(rèn)證,是一個(gè)標(biāo)準(zhǔn)的Kubernetes。
Serverless 應(yīng)用服務(wù)產(chǎn)品在兼容標(biāo)準(zhǔn) Knative 同時(shí),融入了源自螞蟻金服實(shí)踐的應(yīng)用全生命周期管理能力,提供了 Serverless引擎管理、應(yīng)用與服務(wù)管理、版本管理與流控、根據(jù)業(yè)務(wù)請(qǐng)求或事件觸發(fā)較快的 0-M-N-0 自動(dòng)伸縮、計(jì)量、日志及監(jiān)控等配套能力。同時(shí)結(jié)合金融云上客戶實(shí)際痛點(diǎn),產(chǎn)品獨(dú)居匠心的提供獨(dú)占版與共享版兩種形態(tài),以及傳統(tǒng)代碼包、容器鏡像與純函數(shù)三種研發(fā)模式,以解決用戶的不同需求,降低客戶準(zhǔn)入門檻。
一鍵部署:用戶可以通過代碼包或容器鏡像的方式一鍵部署應(yīng)用并在任意時(shí)刻測(cè)試執(zhí)行。
引擎管理:SAS 提供了豐富的引擎全生命周期管理、診斷、監(jiān)測(cè)等能力,為獨(dú)占版客戶賦能 Serverless 引擎數(shù)據(jù)面的全方位管理與運(yùn)維運(yùn)營能力。
服務(wù)及版本:SAS 提供應(yīng)用管理、應(yīng)用服務(wù)管理以及版本管理。版本可以采用容器鏡像方式部署也可以采用傳統(tǒng)VM發(fā)布模式下的代碼包部署,很多情況下用戶代碼無需修改也無需編寫維護(hù)Dockerfile 即可遷移。
0-M-N:SAS 提供 0-M-N-M-0 的Serverelss 快速伸縮能力,支持事件觸發(fā)或流量觸發(fā)的 0-M,多種指標(biāo)的 M-N(如 QPS、CPU、MEM 等等)
日志監(jiān)控計(jì)量:產(chǎn)品內(nèi)置了日志、監(jiān)控、計(jì)量等配套設(shè)施能力,幫助用戶進(jìn)行調(diào)試和應(yīng)用狀態(tài)監(jiān)控。
流量控制:基于 SOFAMesh,SAS提供基本流控能力,后續(xù)會(huì)與服務(wù)網(wǎng)格進(jìn)一步深度集成提供大規(guī)模多維跨地域及混合云的流控能力。
觸發(fā)器管理:產(chǎn)品支持基于常見周期以及秒級(jí)精度的cron表達(dá)式觸發(fā)器,可關(guān)聯(lián)并觸發(fā)無服務(wù)器應(yīng)用,后續(xù)將支持更多 IaaS、PaaS 管控型與數(shù)據(jù)型事件。
性能簡(jiǎn)析:橫軸為完全在同一時(shí)刻觸發(fā)冷啟的Java應(yīng)用個(gè)數(shù),縱軸為冷啟應(yīng)用的平均與最小耗時(shí)。隨著壓力增大,50個(gè)Java應(yīng)用同一時(shí)刻調(diào)度加冷啟平均耗時(shí)2.5秒左右,100個(gè)Java應(yīng)用同一時(shí)刻調(diào)度冷啟平均耗時(shí)3-4秒,最短耗時(shí)1.5到2秒。
性能簡(jiǎn)析:Pooling 快彈慢縮時(shí)序算法,池容量和實(shí)際單位時(shí)間申請(qǐng)量關(guān)系可做到如圖所示(藍(lán)色為實(shí)際申請(qǐng)量,綠色為池容量)目前產(chǎn)品已順利支撐生產(chǎn)環(huán)境小程序 Serverless 模式。同時(shí)通過 0-M-N-M-0 的能力在很大程度上降低了小程序的運(yùn)營成本。在行業(yè)客戶領(lǐng)域,某保險(xiǎn)公司決定近期遷移部分日結(jié)前置和長尾應(yīng)用到 Serverless 產(chǎn)品平臺(tái),這也是我們產(chǎn)品又一個(gè)重要突破。未來,我們致力于將SAS 打造成為一個(gè)金融級(jí)的 Serverless 平臺(tái)。
KubeCon China 2019 大會(huì)上, Serverless 應(yīng)用服務(wù)正式亮相,在 SOFAStack 工作坊吸引了百余名參與者,一同體驗(yàn)基于 Serverless 輕松構(gòu)建云上應(yīng)用。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。