日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

函数计算 GB 镜像秒级启动:下一代软硬件架构协同优化

發布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数计算 GB 镜像秒级启动:下一代软硬件架构协同优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:修蹤
審核&校對:Chang Shuai、望宸
編輯&排版:雯燕

背景

函數計算在 2020 年 8 月創新地提供了容器鏡像的函數部署方式。AWS Lambda 在 2020 年 12 月 Re-Invent,國內其他 FaaS 提供商在 2021 年 6 月也相繼宣布了 FaaS 支持容器的重磅功能。冷啟動一直都是 FaaS 的痛點,引入比代碼壓縮包大幾十倍的容器鏡像后冷啟動惡化便成為開發者最大的擔憂。

函數計算在支持容器鏡像的設計階段就決定要讓開發者像使用代碼包(秒級彈性能力)一樣的體驗使用鏡像,既要易用性也要保持 FaaS 自身的極致彈性,免除用戶的糾結和取舍。理想的用戶體驗是函數調用幾乎感覺不到鏡像數據遠程傳輸帶來的延遲額外消耗。

優化鏡像加速冷啟動大致分為兩種做法:降低絕對延遲和降低冷啟動概率。自容器鏡像上線以來我們已經通過鏡像加速技術,分階段降低了絕對延遲。本文在此基礎上,介紹借助函數計算下一代 IaaS 底座神龍裸金屬和安全容器,進一步降低絕對延遲且能夠大幅降低冷啟動頻率。

優化歷程

(以某一鏡像為例)

第一代架構:ECS 虛構機

第一階段(2021 年 3 月):按需加載,減少數據傳輸

過去的問題在于啟動鏡像前全量拉取鏡像內部數據,導致無用的鏡像數據也會被完整下載而占用了過多的準備時間。于是我們最初的優化方向是盡量忽略無用的鏡像數據,達到按需加載。為此,我們通過鏡像加速技術,省略掉了拉取無用數據的時間,實現了函數計算自定義鏡像冷啟動從分鐘級到秒級提升的相關技術細節。

第二階段(2021 年 6 月):記錄容器實例啟動 I/O 軌跡,在后續實例啟動中提前預取鏡像數據

我們發現,函數實例在容器啟動和初始化階段,I/O 數據訪問模式高度一致。根據 FaaS 平臺基于應用運行模式調度資源的特點,我們在函數實例首次啟動時記錄了 I/O 軌跡的脫敏數據,在后續的實例啟動時,將軌跡數據作為提示,提前預取鏡像數據到本地,進一步減小了冷啟動延時。

上述兩種加速優化雖然大幅減小了冷啟動絕對延遲,但由于傳統 ECS VM 在閑置一段時間后就會被回收,再次啟動新機器時就會重新觸發冷啟動。于是,如何減少冷啟動頻次便成為了下一階段重點攻克的題目之一。

下一代架構:彈性裸金屬服務器(神龍)+microVM

在設計下一代架構時我們不僅考慮解決冷啟動頻次問題,也同樣注意到緩存對于啟動時延的影響。于是我們創新性的發明了 Serverless Caching,根據不同的存儲服務特點構建數據驅動、智能高效的緩存體系,實現軟硬件協同優化,將 Custom Container 體驗進一步提升。函數計算后臺神龍的更迭時間遠大于 ECS VM 的閑置回收時間,對于用戶側而言,熱啟動頻率大幅提升,在冷啟動后,緩存會持續保留在神龍機器上,緩存命中率可達 90% 以上。

對比 ECS 虛擬機,神龍裸金屬加上微型虛擬機的架構為鏡像加速帶來了更多的優化空間:

  • 減小回源帶寬壓力并且減少重復數據存儲。比起 ECS VM 來,同時幾千實例啟動,對于鏡像倉庫的讀放大和磁盤存儲空間的寫放大降低至少兩個數量級。

  • 虛擬機級別的安全隔離使得函數計算組件可以安全地組成可用區級別緩存網絡,速度傳輸速度甚至優于云盤。

函數計算 Custom Container 登陸神龍的同時也提高了資源利用率,降低成本,這對用戶和服務端維護是雙贏。

Serverless Caching 的架構則可以在不增加資源使用成本的同時提供更多的優化潛力。

(L1~L4 為不同級別緩存,距離和延遲從小到大)

橫向對比

到目前為止,我們已經將鏡像加速優化到了較高的水準。我們在函數計算的公開用例里面挑選了 4 個典型的鏡像并將它們適配至國內外幾個大型云廠商(名稱以廠商 A、廠商 B 代替)進行橫向對比,每間隔 3 小時調用上述鏡像,重復數次,我們得到了以下結果:

1、AI 在線推理-貓狗識別

該鏡像包含了基于 TensorFlow 深度學習框架的圖像識別應用。阿里云函數計算和廠商 A 都能正常運行,但廠商 A 性能較差。廠商 B 則無法正常運行。下圖中阿里云函數計算和廠商 A 的延時數據包含鏡像拉取,容器啟動,執行推理運算端對端的延時,而廠商 B 的數據只是拉取鏡像部分的延時,都已經是最慢。FC 相對穩定,可以看出函數計算在 CPU 消耗型如 AI 推理方面有著更大優勢。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-I7a6864E-1637584327234)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/3be17fa89dfa4b668d5580d27ad3b4d0~tplv-k3u1fbpfcp-zoom-1.image “圖片”)]以云盤熱啟動為基準(灰色),對比各個廠商的額外開銷(彩色)

2、Python Flask Web Service

此鏡像為常見的網絡服務,內部使用 Python 搭配 Flask 服務框架。此鏡像的作用旨在測試不同云產品是否有能力完成高效按需加載。FC 與廠商 A 均有波動但后者的波動最為明顯。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UlL7s1FH-1637584327236)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/68cb5a1368194aa6b757d6263717b93b~tplv-k3u1fbpfcp-zoom-1.image “圖片”)]以云盤熱啟動為基準(灰色),對比各個廠商的額外開銷(彩色)

3、Python 機器學習運算

鏡像內同樣是 Python 運行環境,可以看出各個廠商依舊保持著各自的特性,廠商 B 全量下載,廠商 A 部分請求有優化但不穩定。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-B6tzS9rC-1637584327237)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0defcf9ddf734896877df4c64d5633fe~tplv-k3u1fbpfcp-zoom-1.image “圖片”)]以云盤熱啟動為基準(灰色),對比各個廠商的額外開銷(彩色)

4、Cypress Headless Chrome

此鏡像包含無頭瀏覽器測試流程,廠商 A 由于編程模型限制和運行環境不兼容無法運行。而廠商 B 過慢只能在規定時間內耗時 71.1 秒完成應用初始化。不難看出函數計算在重 I/O 的鏡像方面依然有著不錯的表現。

以云盤熱啟動為基準(灰色),對比各個廠商的額外開銷(彩色),綠色部位為優于基準線的端到端耗時04

推薦最佳實踐

支持容器技術是 FaaS 的必備特質,容器增加了可移植性和交付敏捷性,而云服務減輕了運維與閑置成本、提供了彈性擴縮容能力。自定義鏡像與函數計算結合最直接的解決了用戶為云廠商定制化地移植大容量業務邏輯帶來的困擾。

FaaS 運行容器時需要盡可能消除額外開銷,使用戶體驗與本地運行場景相近。穩定快速的運行同樣是優秀 FaaS 的標準,FC 提供了鏡像加載優化的同時大大降低了冷啟動頻次為穩定快速的運行提供了保障。不僅如此,在應用的可移植方面更加需要做到平滑,不限制開發模式的同時也要盡量降低用戶使用門檻。函數計算自定義鏡像支持標準 HTTP 服務,自由配置可用端口,可讀的同時也可寫,提供多種工具鏈以及多元化的部署方案,無強制等待鏡像準備完成時間,自帶 HTTP 觸發而不依賴其他云服務,支持自定義域名等一系列優質解決方案。

函數計算自定義鏡像適用但不限于人工智能推理、大數據分析、游戲結算、在線課程教育、音視頻處理等。推薦使用阿里云容器鏡像服務企業版實例 ACR EE,自帶鏡像加速功能,省去使用 ACR 鏡像時手動開啟加速拉取和加速鏡像準備的步驟。

AI/ML 在線推理

推理類計算依賴大體積底層訓練框架以及大量的數據處理,普通的 AI 框架如 Tensorflow 的鏡像可以輕松達到 GB 級,對 CPU 要求已經很高,要再滿足擴縮容就更是挑戰。函數計算自定義鏡像可以很好的解決此類需求,用戶只需直接使用底層訓練框架鏡像并與數據處理邏輯打包至新的鏡像內便可以輕松省去更換運行環境所帶來的移植開銷,同時又可以滿足彈性擴縮容帶來的快速訓練結果。歌曲喜好推理、圖片 AI 識別分析等都可以無縫與函數計算銜接以達到彈性滿足大量動態的在線推理請求。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JJtapTv1-1637584327238)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/592e15e273f54158ab070267fa46af3b~tplv-k3u1fbpfcp-zoom-1.image “圖片”)]

輕量靈活 ETL

服務都依賴數據,而數據處理往往需要消耗大量資源來滿足高效快速的數據變更請求。自定義鏡像與其他函數計算運行時一樣可以滿足數據處理時的安全隔離,又同時保留了用戶將數據處理部分的業務邏輯自由的打包成鏡像的便捷能力。提供平滑遷移的同時滿足了鏡像啟動的極低額外延時,滿足了用戶針對如數據庫治理、萬物物聯等應用場景的安全,高效,彈性的數據處理需求。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-0wqoAeY0-1637584327239)(https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/232463e458b64ac3b096f9c0efb4f5cb~tplv-k3u1fbpfcp-zoom-1.image “圖片”)]

游戲戰斗結算

各類游戲內通常會設置日常任務等場景短時間集聚大量玩家同時需要戰斗結算一類的數據處理,為了不讓游戲玩家失去耐心,戰斗數據校驗通常需要在短短幾秒內完成,且單個玩家的數據結算單位時間不能隨著玩家數量增長而惡化。此類數據處理的業務邏輯通常繁雜且高度重復,將玩家數據處理邏輯打包至函數計算自定義鏡像內便可以彈性滿足短時間大量相似的玩家結算請求。

未來規劃

優化函數計算自定義鏡像的初衷就是要讓用戶感受不到容器鏡像傳輸帶來的額外延遲,給云原生開發者最極致的體驗。優化不會停止,我們最終的目標是幾乎消除容器鏡像拉取的額外開銷和大量擴容時鏡像倉庫成為瓶頸,極速伸縮。進一步完善 Serverless Caching 的同時 Custom Container 功能未來會幫助 Kubernetes 上的 Web 應用, Job 類工作負載無縫運行在函數計算。Kubernetes 負責處理常駐、流量穩定的工作負載,Serverless 服務分擔波動明顯的計算將逐漸成為云原生的最佳實踐。

1)函數計算公開用例

https://github.com/awesome-fc

2)社區官網

http://www.serverless-devs.com/

3)項目倉庫

https://github.com/Serverless-Devs/Serverless-Devs

4)Serverless Desktop 桌面客戶端

https://serverlessdevs.resume.net.cn/zh-cn/desktop/index.html

5)Serverless 應用開發者套件

http://serverless-dk.oss.devsapp.net/docs/tutorial-dk/intro/react

6)Serverless Devs CLI

https://serverlessdevs.resume.net.cn/zh-cn/cli/index.html

7)Serverless Hub 應用中心

https://serverlesshub.resume.net.cn/#/hubs/special-view

戳??此處??了解更多函數計算詳情!?

總結

以上是生活随笔為你收集整理的函数计算 GB 镜像秒级启动:下一代软硬件架构协同优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。