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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

作者信息:
Shuai Chang,阿里云云原生 Serverless 團(tuán)隊(duì)高級(jí)技術(shù)專家,主導(dǎo)了函數(shù)計(jì)算同容器技術(shù)生態(tài)融合以及 FaaS 云原生可觀測(cè)。

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

FaaS 和容器

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

函數(shù)計(jì)算鏡像加速功能

傳統(tǒng)的鏡像拉取加速?gòu)?qiáng)調(diào)"開(kāi)發(fā)者負(fù)責(zé)",如精簡(jiǎn)鏡像,合理分配鏡像層,multi-stage 構(gòu)建,使用工具(如 docker-slim)去除不需要的數(shù)據(jù),遵循構(gòu)建最佳實(shí)踐等。這些工作不僅加重了用戶負(fù)擔(dān),加速效果有限,且有運(yùn)行時(shí)穩(wěn)定性風(fēng)險(xiǎn)。阿里集團(tuán)超大規(guī)模和場(chǎng)景高度復(fù)雜的容器環(huán)境,對(duì)鏡像存儲(chǔ)、加速技術(shù)有深厚的積累,出色地承擔(dān)了3年雙十一,雙十二,春節(jié)等大促秒殺場(chǎng)景的嚴(yán)苛的挑戰(zhàn)。阿里云 Serverless 同容器鏡像、存儲(chǔ)等服務(wù)深度合作,將內(nèi)部創(chuàng)新在函數(shù)計(jì)算輸出:杭州、北京、上海、美東、美西正式發(fā)布了鏡像加速功能。該功能將原本屬于開(kāi)發(fā)者的鏡像優(yōu)化負(fù)擔(dān)轉(zhuǎn)由函數(shù)計(jì)算承擔(dān),進(jìn)一步幫助開(kāi)發(fā)者提高生產(chǎn)效率,專注業(yè)務(wù)創(chuàng)新。

加速效果

我們?cè)谶x擇了內(nèi)部生產(chǎn)環(huán)境和開(kāi)源社區(qū)的工作負(fù)載,覆蓋機(jī)器學(xué)習(xí)、人工智能、前端自動(dòng)化、Web 應(yīng)用等7種鏡像大小、IO 訪問(wèn)模式、啟動(dòng)命令的不同組合作為 benchmark,部署在 FC 北京區(qū)域。如下圖所示,函數(shù)計(jì)算開(kāi)啟鏡像加速功能后加速普遍超過(guò) 50%,對(duì)于機(jī)器學(xué)習(xí)場(chǎng)景中常見(jiàn)的臃腫鏡像(如多個(gè)團(tuán)隊(duì)共享基礎(chǔ)鏡像, ml-small-import, ml-large-import, ai-cat-or-dog)加速效果更為明顯(約 70%-86%),鏡像越大優(yōu)化空間往往越高。


使用方式

鏡像加速可以通過(guò)控制臺(tái)、CLI 工具或是 FC SDK 開(kāi)啟,詳細(xì)步驟參加鏡像拉取加速文檔
? 方式一:在函數(shù)計(jì)算控制臺(tái)函數(shù)配置下選擇“開(kāi)啟鏡像加速”。

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

在已有的 CustomContainerConfig 配置下添加 AccelerationType: Default 如需關(guān)閉則配置 AccelerationType:
None

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

功能特點(diǎn)

FC 鏡像加速具備以下特點(diǎn):

  • 使用簡(jiǎn)單:只需在函數(shù)上開(kāi)啟鏡像加速,函數(shù)計(jì)算會(huì)自動(dòng)制作加速鏡像和緩存,轉(zhuǎn)換完成后(5分鐘以內(nèi)),函數(shù)自動(dòng)采用加速鏡像緩存。
  • 專注業(yè)務(wù)創(chuàng)新:開(kāi)發(fā)者無(wú)需花費(fèi)時(shí)間刻意精簡(jiǎn)優(yōu)化鏡像大小或嚴(yán)格區(qū)分 Serverless 和 Serverfull 應(yīng)用鏡像的構(gòu)建方式,FC 負(fù)責(zé)按照應(yīng)用實(shí)際使用數(shù)據(jù)拉取和解壓。
  • 加速免費(fèi),使用門檻低:鏡像加速開(kāi)啟不產(chǎn)生額外費(fèi)用,也不需要開(kāi)發(fā)者額外購(gòu)買或升級(jí)任何其他服務(wù)。事實(shí)上由于鏡像拉取時(shí)間變短,相應(yīng)的請(qǐng)求費(fèi)用也隨之降低。
  • 極速?gòu)椥浴⒖s容到 0、事件觸發(fā):FaaS 結(jié)合容器鏡像已經(jīng)極大簡(jiǎn)化了應(yīng)用遷移至 Serverless,加速功能進(jìn)一步解鎖了實(shí)時(shí)、準(zhǔn)實(shí)時(shí)工作負(fù)載,曾經(jīng)需要分鐘級(jí)別的容器啟動(dòng)現(xiàn)在可以幾秒內(nèi)快速啟動(dòng),真正實(shí)現(xiàn)縮容到0。
  • 鏡像拉取為什么慢?

    一個(gè) OCI V1 容器鏡像包含多個(gè)層(layer),每層都是一個(gè)壓縮打包的文件系統(tǒng)(文件夾),通常以 tar.gz 格式存儲(chǔ)在遠(yuǎn)端服務(wù)(如對(duì)象、文件存儲(chǔ))。拉取鏡像時(shí)步驟如下:

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

    加速原理

    函數(shù)計(jì)算將阿里集團(tuán)成熟的鏡像加速技術(shù)應(yīng)用在公共云服務(wù)中,加速技術(shù)圍繞兩個(gè)核心思路:
    ? 按需加載:僅讀取應(yīng)用真實(shí)需要的數(shù)據(jù),極大減少數(shù)據(jù)傳輸量
    ? 更高效的存儲(chǔ)和算法:相同大小的數(shù)據(jù),更快地解壓

    按需加載

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

    高效解壓

    除了按需加載帶來(lái)的下載步驟延時(shí)節(jié)省,鏡像加速技術(shù)在數(shù)據(jù)解壓步驟也同樣做了大量?jī)?yōu)化。下圖可以看出即使在加載 70% 以上全量數(shù)據(jù)的情況下,優(yōu)化效果仍然超過(guò) 60%。

    未來(lái)規(guī)劃

    函數(shù)計(jì)算正式發(fā)布了容器鏡像加速,通過(guò)按需讀取和更高效的解壓技術(shù)在不同場(chǎng)景下加速 50%-80%,即使 GB 級(jí)別的鏡像也可以在幾秒內(nèi)完成端到端啟動(dòng)。加速功能結(jié)合函數(shù)計(jì)算極致彈性和事件觸發(fā)的特點(diǎn),解鎖了更多對(duì)實(shí)時(shí)要求高的工作負(fù)載。容器應(yīng)用可以更容易地享受 Serverless 特性,真正做到縮容到0以及快速大規(guī)模擴(kuò)容。FC 在未來(lái)會(huì)持續(xù)優(yōu)化冷啟動(dòng)各個(gè)環(huán)節(jié)提供極致彈性,承擔(dān)更多用戶責(zé)任,使開(kāi)發(fā)者專注業(yè)務(wù)創(chuàng)新。

    附錄:實(shí)驗(yàn)場(chǎng)景數(shù)據(jù)

    Benchmark場(chǎng)景鏡像壓縮大小解壓后大小
    python-flaskWeb 應(yīng)用46MB118MB
    ecommerce-nodejs電商, nodejs express130MB371MB
    ml-small-import/;ml-large-import機(jī)器學(xué)習(xí),使用 numpy, pandas, pystan 等庫(kù)728MB2.392GB
    ai-cat-or-dog機(jī)器學(xué)習(xí),人工智能,推理預(yù)測(cè) tensorflow, keras 等庫(kù)790MB1.824GB
    puppeteer-pdfHeadless chrome,網(wǎng)頁(yè)轉(zhuǎn) PDF, 使用 puppeteer, nodejs express332MB894MB
    cypress-chrome前端 UI 自動(dòng)化,cypress, headless chrome980MB2.608GB

    參考

    ? 函數(shù)計(jì)算支持容器鏡像-加速應(yīng)用 Serverless 進(jìn)程
    ? New for AWS Lambda – Container Image Support
    ? 函數(shù)計(jì)算鏡像拉取加速文檔
    ? 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?

    版權(quán)聲明:本文內(nèi)容由阿里云實(shí)名注冊(cè)用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開(kāi)發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請(qǐng)查看《阿里云開(kāi)發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開(kāi)發(fā)者社區(qū)知識(shí)產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫(xiě)侵權(quán)投訴表單進(jìn)行舉報(bào),一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。

    總結(jié)

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

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。