Serverless 落地挑戰(zhàn)與螞蟻金服實踐

目前 Serverless 已成為云原生社區(qū)關(guān)注的重點之一,有人說它是微服務(wù)的繼承者,將會徹底改變軟件研發(fā)的現(xiàn)狀,那么真實情況如何呢?本文將介紹 Serverless 市場觀察、落地挑戰(zhàn),以及螞蟻金服對 Serverless 的實踐。

Part1 Serverless 已成趨勢

當我們回顧云計算的發(fā)展歷程,會看到基礎(chǔ)架構(gòu)經(jīng)歷了從物理機到虛擬機,從虛擬機再到容器的演進過程。在這大勢之下,應(yīng)用架構(gòu)也在同步演進,從單體過渡到多層,再到當下的微服務(wù)。在變化的背后,有一股持續(xù)的動力,它來自于三個不變的追求:提高資源利用率,優(yōu)化開發(fā)運維體驗,以及更好地支持業(yè)務(wù)發(fā)展。

目前, Serverless 已成為云原生社區(qū)關(guān)注的重點之一,它的發(fā)展也不例外。相比容器技術(shù),Serverless 可以將資源管理的粒度更加細化,使開發(fā)者更快上手云原生,并且倡導事件驅(qū)動模型支持業(yè)務(wù)發(fā)展。從而幫助用戶解決了資源管理復(fù)雜、低頻業(yè)務(wù)資源占用等問題;實現(xiàn)面向資源使用,以取代面向資源分配的模式。根據(jù) CNCF 在2018年底基于 2400人的一份統(tǒng)計報告,已有 38% 的組織正在使用Serverless 技術(shù),相比 2017 同期增長了 22%。(數(shù)據(jù)來源:CNCF Survey)

圖片來源:Gartner Report: China SummaryTranslation Evolution of Server Computing - VMs to Containers to Serverless -Which to Use When

目前市場上,云廠商提供了多種 Serverless 產(chǎn)品和解決方案,大致可劃分為:

1.函數(shù)計算服務(wù):如 AWS Lambda,特點是以代碼片段為單位運行,并對代碼風格有一定要求。

2.面向應(yīng)用的 Serverless 服務(wù):如 Knative,特點是基于容器服務(wù),并提供了從代碼包到鏡像的構(gòu)建能力。

3.容器托管服務(wù):如 AWS Fargate,特點是以容器鏡像為單元運行,但用戶仍需感知容器。

從社區(qū)來看,CNCF 云原生基金會正通過 Serverless 工作組協(xié)調(diào)社區(qū)討論并促進規(guī)范和標準的形成,工作組產(chǎn)出了 Serverless 白皮書和全景圖等重要內(nèi)容。其中,全景圖將目前的生態(tài)劃分為了平臺層,框架層,工具鏈層和安全層這四個模塊。

圖片來源:https://landscape.cncf.io/

Part2 落地挑戰(zhàn)

在交流過程中,我們發(fā)現(xiàn) Serverless 很好地解決了客戶的一些訴求:包括通過 0-1-0 的伸縮能力來提高資源時用率,降低成本;支持代碼包出發(fā),從而讓客戶無感化實現(xiàn)云原生,歷史應(yīng)用無需經(jīng)過容器化改造;支持靈活的觸發(fā)器配置,引導用戶對應(yīng)用進行事件驅(qū)動的改造,從而適應(yīng)業(yè)務(wù)的高速發(fā)展等。這些優(yōu)勢,使得 Serverless 在小程序開發(fā)的場景下大放異彩。

同時,對于在企業(yè)級應(yīng)用的生產(chǎn)環(huán)境落地 Serverless,各方也有了很多探索和突破。在前段時間的 KubeConChina 2019 大會上,Serverless 工作組會議也以此為話題展開了討論。目前的核心挑戰(zhàn)可歸納為:

1.平臺可遷移

目前眾多平臺都推出了自己的 Serverless 標準,包括代碼格式、框架和運維工具等,用戶既面臨較高的學習成本和選擇壓力,也擔心無法在平臺之間靈活遷移 Serverless 應(yīng)用。

2.0-M-N 性能

線上應(yīng)用對控制請求延遲有嚴格的要求,因此,用戶需要謹慎地驗證 Serverless 0-1冷啟動速度、M-N 擴容速度以及穩(wěn)定性都達到了生產(chǎn)要求。

3.調(diào)試和監(jiān)控

用戶對底層資源無感知,只能借助平臺能力對應(yīng)用進行調(diào)試和監(jiān)控,用戶需要平臺提供強大的日志功能進行排錯,和多維度的監(jiān)控功能時刻了解應(yīng)用狀態(tài)。

4.事件源集成

采用 Serverless 架構(gòu)后,應(yīng)用往往進行更細粒度的拆分,并通過事件串聯(lián)。因此用戶希望平臺能集成大多數(shù)通用的事件源,并支持自定義事件,使得觸發(fā)機制更加靈活。

5.工作流支持

完成某個業(yè)務(wù),往往涉及多個 Serverless 應(yīng)用之間的配合,當數(shù)目較多時,用戶希望可以用工作流工具來進行統(tǒng)一編排和狀態(tài)查看,提高效率。

Part3 螞蟻金服實踐

SOFAStack 致力于通過產(chǎn)品技術(shù)解決云上客戶實際痛點,沉淀螞蟻金服技術(shù)實踐,幫助用戶以高效、低成本的方式遷移到云原生架構(gòu)。Serverless 應(yīng)用服務(wù)(Serverless Application Service,簡稱 SOFA SAS)是一款源自螞蟻金服實踐的一站式 Serverless 平臺。SAS 基于 SOFAStack CAFE 云應(yīng)用引擎 (Cloud ApplicationFabric Engine 簡稱 CAFE),CAFE的容器服務(wù)已經(jīng)通過了 CNCF 的一致性認證,是一個標準的Kubernetes。

Serverless 應(yīng)用服務(wù)產(chǎn)品在兼容標準 Knative 同時,融入了源自螞蟻金服實踐的應(yīng)用全生命周期管理能力,提供了 Serverless引擎管理、應(yīng)用與服務(wù)管理、版本管理與流控、根據(jù)業(yè)務(wù)請求或事件觸發(fā)較快的 0-M-N-0 自動伸縮、計量、日志及監(jiān)控等配套能力。同時結(jié)合金融云上客戶實際痛點,產(chǎn)品獨居匠心的提供獨占版與共享版兩種形態(tài),以及傳統(tǒng)代碼包、容器鏡像與純函數(shù)三種研發(fā)模式,以解決用戶的不同需求,降低客戶準入門檻。

一鍵部署:用戶可以通過代碼包或容器鏡像的方式一鍵部署應(yīng)用并在任意時刻測試執(zhí)行。

引擎管理:SAS 提供了豐富的引擎全生命周期管理、診斷、監(jiān)測等能力,為獨占版客戶賦能 Serverless 引擎數(shù)據(jù)面的全方位管理與運維運營能力。

服務(wù)及版本:SAS 提供應(yīng)用管理、應(yīng)用服務(wù)管理以及版本管理。版本可以采用容器鏡像方式部署也可以采用傳統(tǒng)VM發(fā)布模式下的代碼包部署,很多情況下用戶代碼無需修改也無需編寫維護Dockerfile 即可遷移。

0-M-N:SAS 提供 0-M-N-M-0 的Serverelss 快速伸縮能力,支持事件觸發(fā)或流量觸發(fā)的 0-M,多種指標的 M-N(如 QPS、CPU、MEM 等等)

日志監(jiān)控計量:產(chǎn)品內(nèi)置了日志、監(jiān)控、計量等配套設(shè)施能力,幫助用戶進行調(diào)試和應(yīng)用狀態(tài)監(jiān)控。

流量控制:基于 SOFAMesh,SAS提供基本流控能力,后續(xù)會與服務(wù)網(wǎng)格進一步深度集成提供大規(guī)模多維跨地域及混合云的流控能力。

觸發(fā)器管理:產(chǎn)品支持基于常見周期以及秒級精度的cron表達式觸發(fā)器,可關(guān)聯(lián)并觸發(fā)無服務(wù)器應(yīng)用,后續(xù)將支持更多 IaaS、PaaS 管控型與數(shù)據(jù)型事件。

性能簡析:橫軸為完全在同一時刻觸發(fā)冷啟的Java應(yīng)用個數(shù),縱軸為冷啟應(yīng)用的平均與最小耗時。隨著壓力增大,50個Java應(yīng)用同一時刻調(diào)度加冷啟平均耗時2.5秒左右,100個Java應(yīng)用同一時刻調(diào)度冷啟平均耗時3-4秒,最短耗時1.5到2秒。

性能簡析:Pooling 快彈慢縮時序算法,池容量和實際單位時間申請量關(guān)系可做到如圖所示(藍色為實際申請量,綠色為池容量)

目前產(chǎn)品已順利支撐生產(chǎn)環(huán)境小程序 Serverless 模式。同時通過 0-M-N-M-0 的能力在很大程度上降低了小程序的運營成本。在行業(yè)客戶領(lǐng)域,某保險公司決定近期遷移部分日結(jié)前置和長尾應(yīng)用到 Serverless 產(chǎn)品平臺,這也是我們產(chǎn)品又一個重要突破。未來,我們致力于將SAS 打造成為一個金融級的 Serverless 平臺。

KubeCon China 2019 大會上, Serverless 應(yīng)用服務(wù)正式亮相,在 SOFAStack 工作坊吸引了百余名參與者,一同體驗基于 Serverless 輕松構(gòu)建云上應(yīng)用。

極客網(wǎng)企業(yè)會員

免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2019-08-08
Serverless 落地挑戰(zhàn)與螞蟻金服實踐
目前 Serverless 已成為云原生社區(qū)關(guān)注的重點之一,有人說它是微服務(wù)的繼承者,將會徹底改變軟件研發(fā)的現(xiàn)狀,那么真實情況如何呢?

長按掃碼 閱讀全文