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