close


Serverless 的本質是通過屏蔽底層的計算資源,來實現業務層開發的專注度和自由度。但越是往上抽象,雲廠商在底層的實現就越是複雜。函數計算將服務進一步拆分到函數的顆粒度,這勢必會給開發、運維、交付等帶來新的挑戰,例如如何對函數進行端雲聯調、如何對函數進行可觀測和調試、如何優化 GB 級別的鏡像冷啟動?這些以往在服務的顆粒度時,都不是問題的事情,成了 Serverless 大規模落地企業核心生產業務的絆腳石。
2021 雲棲大會現場,阿里巴巴研究員、阿里雲智能雲原生應用平台總經理 丁宇(叔同)重磅發布了函數計算的 7 大技術創新和突破,加速現代應用架構的革新。

1


Serverless Devs 2.0:業內首發 Desktop,支持端雲聯調、多環境部署

開源近一年, Serverless 開發者平台 Serverless Devs 2.0 版本正式發布。相比 1.0 ,2.0 在性能、使用體驗實現全方位提升,業內首發桌面客戶端 Serverless Desktop,對桌面客戶端進行了精細設計兼具美感和實用主義,具備更強的企業級服務能力。
作為業內首個支持主流 Serverless 服務/框架的雲原生全生命周期管理的平台,Serverless Devs 致力於為開發者打造 Serverless 應用開發一站式服務,Serverless Devs 2.0 提出多模式調試方案,包括打通線上線下環境;本地對接線上環境並進行調試的端雲聯調方案、本地直接進行開發態調試的本地調試方案、以及雲端運維態調試的在線調試/遠程調試方案等。新版本增加多環境部署部署能力,Serverless Devs 2.0 已支持一鍵部署框架 30 余種,包括 Django,Express,Koa,Egg,Flask,Zblog,Wordpress 等。

2


業內首發實例級別可觀測和調試
實例是函數資源最小的可被調度的原子單位,類比容器的 Pod。Serverless 將異構基礎資源高度抽象,因此「黑盒問題」是 Serverless 大規模普及的核心落地之痛。業內同類產品均沒有透出「實例」概念,也從未在可觀測功能中將 CPU、內存等指標透出,但可觀測就是開發者的眼睛,沒有可觀測,何談高可用呢?
函數計算重磅發布實例級別可觀測能力,對函數實例進行實時監控和性能數據採集,並進行可視化展示,為開發者提供函數實例端到端的監控排查路徑。通過實例級別指標,您可以查看 CPU 和內存使用情況、實例網絡情況和實例內請求數等核心指標信息,讓「黑盒」不黑。同時,函數計算將通過開放部分實例登錄權限,做到既能觀測,還能調試。

3


業內首發固定數量、定時、水位自動伸縮的實例預留策略
函數計算冷啟動受到多個因素影響:代碼和鏡像大小、啟動容器、語言運行時初始化、進程初始化、執行邏輯等,這依賴用戶和雲廠商的雙向優化。雲廠商會自動為每個函數分配最合適的實例數量,並進行平台側的冷啟動優化。但對於某些在線業務時延非常敏感,雲廠商無法代替用戶進行更深層的業務優化,如對代碼或依賴進行精簡、編程語言的選擇、進程的初始化、算法優化等。
業內同類產品普遍是採用預留固定實例數量的策略,即讓用戶配置 N 個並發值,除非手動調整,否則在分配了 N 個實例後不會再伸或者縮。這種方案只解決了部分業務高峰期的冷啟動延時,但大大增加了運維成本和資源成本,對紅包大促等帶有不定期峰谷的業務,其實並不友好。

因此,函數計算率先將部分實例資源的調度權限授予用戶,允許用戶通過固定數量、定時伸縮、按水位伸縮、混合伸縮等多維度的實例預留策略,來預留適量函數實例,分別滿足業務曲線相對平穩(如 AI/ML 場景)、峰谷時間段明確(如遊戲互娛、在線教育、新零售等場景)、突發流量無法預估(如電商大促、廣告等場景)、業務混雜(如 Web 後台、數據處理等場景)等不同場景的訴求,從而降低冷啟動對時延敏感型業務的影響,真正實現彈性和性能兼顧的終極目標。

4


業內率先推出 GPU 實例
函數計算提供彈性實例和性能實例兩種實例類型,彈性實例規格從 128 MB 到 3 GB,隔離粒度做到了整個雲生態最細,能真正實現普適場景下資源利用率 100%;性能實例規格區間範圍包含 4 GB、8 GB、16 GB 和 32 GB。資源上限更高,主要適用於計算密集型場景,如音視頻處理、AI 建模和企業級 Java 應用等場景。
隨着專用領域硬件加速的蓬勃發展,各 GPU 廠商均推出了視頻編解碼專用 ASIC,比如:英偉達從 Kepler 架構集成視頻編碼專用電路、從 Fermi 架構集成視頻解碼專用電路。
函數計算正式推出了基於 Turning 架構的 GPU 實例,使得 Serverless 開發者可以將視頻編解碼的 workload,下沉到 GPU 硬件加速,從而大大加快了視頻生產、視頻轉碼的效率。

5


最高可交付 2w 實例/分鐘
所謂「無服務器」,並不是說軟件應用不需要服務器就可以運行了,而是指用戶無須關心軟件應用運行時,涉及的底層服務器的狀態、資源(比如 CPU、內存、磁盤及網絡)和數量。軟件應用正常運行所需要的計算資源由雲計算廠商動態提供,但實際上,用戶還是會關心雲廠商的資源交付能力,以及應對突發流量場景下資源不足導致的訪問波動。
函數計算依託於阿里雲強大的雲基礎設施服務能力,通過神龍裸金屬資源池和 ECS 資源池雙池互備,在業務高峰期,實現最大交付達 2w 實例/分鐘,這近一步提升了函數計算在客戶核心業務上的交付能力。

6


VPC 網絡建連優化:從10s 優化至 200ms
當用戶需要在函數中訪問用戶 VPC 中的資源,例如 RDS/NAS 時,需要打通 VPC 網絡。業內 FaaS 產品普遍採用動態掛載 ENI 的方式來實現 VPC 打通,即在 VPC 創建一個 ENI,掛載到 VPC 中執行函數的機器上。該方案讓用戶能非常簡單地聯動後端雲服務,但 ENI 掛載的速度一般需要10秒以上,在延時敏感業務場景下帶來極大的性能開銷。
函數計算通過將 VPC 網關服務化,實現計算和網絡解耦,計算節點的伸縮不再受限於 ENI 掛載的能力。該方案由網關服務負責 ENI 的掛載、網關節點的高可用和自動伸縮,而函數計算專注於計算節點的調度,最終實現 VPC 網絡建連時,函數冷啟動時間降至 200 ms。

7


GB 級別鏡像啟動:從分鐘級優化至秒級
函數計算在 2020 年 8 月率先發布了容器鏡像的函數部署方式,AWS Lambda 在 2020 年 12 月 Re-Invent,國內友商在 2021 年 6 月也相繼宣布了 FaaS 支持容器的重磅功能。冷啟動一直都是 FaaS 的痛點,引入比代碼壓縮包大幾十倍的容器鏡像後,加重了冷啟動過程帶來的時延。
函數計算創新性的發明了 Serverless Caching,根據不同的存儲服務特點,構建數據驅動、智能高效的緩存體系,實現軟硬件協同優化,將 Custom Container 體驗進一步提升。到目前為止,函數計算已經將鏡像加速優化到了較高的水準。我們在函數計算的公開用例(https://github.com/awesome-fc)裡面,挑選了 4 個典型的鏡像,並將它們適配至國內外幾個大型雲廠商進行橫向對比,每間隔 3 小時調用上述鏡像,重複數次。
實驗證明,在 GB 級別鏡像冷啟動的場景下,函數計算已經實現了分鐘級到秒級的跨越。

8


先行一步,志在千里
2009 年,伯克利就當時興起的雲計算提出 6 點預測,包括服務的按需付費成為可能、物理硬件的利用率將大大提高等,在過去的 12 年間,這些都已成為事實。2019 年,伯克利再次預測 Serverless 計算將會成為雲時代默認的計算範式,並取代 Serverful (傳統雲)計算模式。
參照雲計算這 12 年的發展歷程,Serverless 正處於驗證伯克利預測的第 3 年,剛過四分之一。這 3 年間,從雲的未來的美好暢想,到雲廠商倡導的 Serverless First 和大規模投入,再到企業用戶充分利用 Serverless 的優勢來優化現有架構,並客觀的面對影響 Serverless 大規模落地企業核心業務的絆腳石,再到今天,通過技術創新和突破來化解行業共同的痛點。這不僅需要先行一步的勇氣和魄力,更需要志在千里的使命和責任。


特別感謝 墨颺、黛忻、筱姜、劉宇 對本文做出的貢獻。

戳原文,查看函數計算 FC 主頁!!
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()