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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

函数计算镜像加速:从分钟到秒的跨越

發布時間:2024/9/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数计算镜像加速:从分钟到秒的跨越 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介:函數計算 FC 正式發布容器鏡像加速,通過按需讀取和更高效的解壓技術在不同場景下加速 50%-80%,即使 GB 級別的鏡像也可以在幾秒內完成端到端啟動。

作者信息:
Shuai Chang,阿里云云原生 Serverless 團隊高級技術專家,主導了函數計算同容器技術生態融合以及 FaaS 云原生可觀測。

體驗文檔:
鏡像拉取加速文檔:https://help.aliyun.com/document_detail/193075.html

FaaS 和容器

容器鏡像因其顛覆式創新成為云原生時代應用部署格式的事實標準。頭部云廠商 FaaS (Function-as-a-Service) 服務如阿里云函數計算、AWS Lambda 也相繼在2020年支持使用容器鏡像部署函數,全面擁抱容器生態。自發布以來,開發者陸續將機器學習、音視頻處理、事件驅動離線數據處理、前端自動化等多個場景使用鏡像快速無服務器化,提高效率、降低成本。然而,冷啟動一直是 Serverless 無法繞開的問題。容器鏡像需要將數據通過網絡遠程下載并解壓,對于GB級別的鏡像,拉取時間可能高達分鐘級別,客觀上放大了冷啟動副作用,阻礙實時應用的 Serverless 演進。

函數計算鏡像加速功能

傳統的鏡像拉取加速強調"開發者負責",如精簡鏡像,合理分配鏡像層,multi-stage 構建,使用工具(如 docker-slim)去除不需要的數據,遵循構建最佳實踐等。這些工作不僅加重了用戶負擔,加速效果有限,且有運行時穩定性風險。阿里集團超大規模和場景高度復雜的容器環境,對鏡像存儲、加速技術有深厚的積累,出色地承擔了3年雙十一,雙十二,春節等大促秒殺場景的嚴苛的挑戰。阿里云 Serverless 同容器鏡像、存儲等服務深度合作,將內部創新在函數計算輸出:杭州、北京、上海、美東、美西正式發布了鏡像加速功能。該功能將原本屬于開發者的鏡像優化負擔轉由函數計算承擔,進一步幫助開發者提高生產效率,專注業務創新。

加速效果

我們在選擇了內部生產環境和開源社區的工作負載,覆蓋機器學習、人工智能、前端自動化、Web 應用等7種鏡像大小、IO 訪問模式、啟動命令的不同組合作為 benchmark,部署在 FC 北京區域。如下圖所示,函數計算開啟鏡像加速功能后加速普遍超過 50%,對于機器學習場景中常見的臃腫鏡像(如多個團隊共享基礎鏡像, ml-small-import, ml-large-import, ai-cat-or-dog)加速效果更為明顯(約 70%-86%),鏡像越大優化空間往往越高。


使用方式

鏡像加速可以通過控制臺、CLI 工具或是 FC SDK 開啟,詳細步驟參加鏡像拉取加速文檔
? 方式一:在函數計算控制臺函數配置下選擇“開啟鏡像加速”。

? 方式二:使用 Funcraft 工具部署

在已有的 CustomContainerConfig 配置下添加 AccelerationType: Default 如需關閉則配置 AccelerationType:
None

CustomContainerConfig:Image: registry-vpc.cn-beijing.aliyuncs.com/fc-demo/python-flask:v0.1AccelerationType: Default

功能特點

FC 鏡像加速具備以下特點:

  • 使用簡單:只需在函數上開啟鏡像加速,函數計算會自動制作加速鏡像和緩存,轉換完成后(5分鐘以內),函數自動采用加速鏡像緩存。
  • 專注業務創新:開發者無需花費時間刻意精簡優化鏡像大小或嚴格區分 Serverless 和 Serverfull 應用鏡像的構建方式,FC 負責按照應用實際使用數據拉取和解壓。
  • 加速免費,使用門檻低:鏡像加速開啟不產生額外費用,也不需要開發者額外購買或升級任何其他服務。事實上由于鏡像拉取時間變短,相應的請求費用也隨之降低。
  • 極速彈性、縮容到 0、事件觸發:FaaS 結合容器鏡像已經極大簡化了應用遷移至 Serverless,加速功能進一步解鎖了實時、準實時工作負載,曾經需要分鐘級別的容器啟動現在可以幾秒內快速啟動,真正實現縮容到0。
  • 鏡像拉取為什么慢?

    一個 OCI V1 容器鏡像包含多個層(layer),每層都是一個壓縮打包的文件系統(文件夾),通常以 tar.gz 格式存儲在遠端服務(如對象、文件存儲)。拉取鏡像時步驟如下:

  • 將各個 layer 對應的 tar.gz 文件完整下載至本地
  • 每層順序解壓
  • 將各個層合并(如 Overlay)作為 rootfs 啟動容器
  • 上述步驟雖然簡單,卻是鏡像拉取慢的主要原因:
    ? 文件格式缺陷、粗粒度數據分層、順序解壓:gzip 層導致無法細粒度隨機讀取應用實際需要的數據,且要求所有層單線程順序解壓。實際觀察發現鏡像層可以通過并發下載提高速度,然而解壓環節在 gzip 格式下卻很難優化。
    ? 低效的壓縮/解壓縮算法:鏡像層采用的 gzip,benchmark gzip 解壓速度對比 lz4 平均慢接近9倍。
    ? 全量數據下載:同樣由于粗粒度的分層和 gzip 格式(不支持 seek),鏡像數據不論是否實際有用,都要被完整下載至本地。
    綜上原理,鏡像拉取時間和鏡像大小成正比,而容器鏡像構建過程中運行 apt/yum install, 無用的測試、數據文件,構建過程中執行 chmod/chown 等命令造成同一數據復制多份,極易引入大量應用不需要的數據。

    加速原理

    函數計算將阿里集團成熟的鏡像加速技術應用在公共云服務中,加速技術圍繞兩個核心思路:
    ? 按需加載:僅讀取應用真實需要的數據,極大減少數據傳輸量
    ? 更高效的存儲和算法:相同大小的數據,更快地解壓

    按需加載

    Benchmark 中包含鏡像數據加載率在 12% - 84% 之間,除了鏡像較小的 web 應用,大部分場景數據利用率低于 50%。以層(layer)作為數據分發單位的原始鏡像被轉換成支持細粒度按需讀取的數據格式,并存放在延遲和吞吐都更優的存儲中。

    高效解壓

    除了按需加載帶來的下載步驟延時節省,鏡像加速技術在數據解壓步驟也同樣做了大量優化。下圖可以看出即使在加載 70% 以上全量數據的情況下,優化效果仍然超過 60%。

    未來規劃

    函數計算正式發布了容器鏡像加速,通過按需讀取和更高效的解壓技術在不同場景下加速 50%-80%,即使 GB 級別的鏡像也可以在幾秒內完成端到端啟動。加速功能結合函數計算極致彈性和事件觸發的特點,解鎖了更多對實時要求高的工作負載。容器應用可以更容易地享受 Serverless 特性,真正做到縮容到0以及快速大規模擴容。FC 在未來會持續優化冷啟動各個環節提供極致彈性,承擔更多用戶責任,使開發者專注業務創新。

    附錄:實驗場景數據

    Benchmark場景鏡像壓縮大小解壓后大小
    python-flaskWeb 應用46MB118MB
    ecommerce-nodejs電商, nodejs express130MB371MB
    ml-small-import/;ml-large-import機器學習,使用 numpy, pandas, pystan 等庫728MB2.392GB
    ai-cat-or-dog機器學習,人工智能,推理預測 tensorflow, keras 等庫790MB1.824GB
    puppeteer-pdfHeadless chrome,網頁轉 PDF, 使用 puppeteer, nodejs express332MB894MB
    cypress-chrome前端 UI 自動化,cypress, headless chrome980MB2.608GB

    參考

    ? 函數計算支持容器鏡像-加速應用 Serverless 進程
    ? New for AWS Lambda – Container Image Support
    ? 函數計算鏡像拉取加速文檔
    ? Docker Slim: Minify and Secure Docker containers (free and open source!)
    ? christopher-talke/node-express-puppeteer-pdf-example
    ? awesome-fc/custom-container-docs

    原文鏈接:https://developer.aliyun.com/article/781992?

    版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。

    總結

    以上是生活随笔為你收集整理的函数计算镜像加速:从分钟到秒的跨越的全部內容,希望文章能夠幫你解決所遇到的問題。

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