函式計算映象加速 從分鐘到秒的跨越

2021-10-19 21:00:15 字數 3196 閱讀 5431

作者資訊:

shuai chang,阿里云云原生 serverless 團隊高階技術專家,主導了函式計算同容器技術生態融合以及 faas 雲原生可觀測。

體驗文件:

映象拉取加速文件:

傳統的映象拉取加速強調"開發者負責",如精簡映象,合理分配映象層,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:

fc 映象加速具備以下特點:

使用簡單:只需在函式上開啟映象加速,函式計算會自動製作加速映象和快取,轉換完成後(5分鐘以內),函式自動採用加速映象快取。

專注業務創新:開發者無需花費時間刻意精簡優化映象大小或嚴格區分 serverless 和 serverfull 應用映象的構建方式,fc 負責按照應用實際使用資料拉取和解壓。

加速免費,使用門檻低:映象加速開啟不產生額外費用,也不需要開發者額外購買或公升級任何其他服務。事實上由於映象拉取時間變短,相應的請求費用也隨之降低。

極速彈性、縮容到 0、事件觸發:faas 結合容器映象已經極大簡化了應用遷移至 serverless,加速功能進一步解鎖了實時、準實時工作負載,曾經需要分鐘級別的容器啟動現在可以幾秒內快速啟動,真正實現縮容到0。

乙個 oci v1 容器映象包含多個層(layer),每層都是乙個壓縮打包的檔案系統(資料夾),通常以 tar.gz 格式儲存在遠端服務(如物件、檔案儲存)。拉取映象時步驟如下:

每層順序解壓

將各個層合併(如 overlay)作為 rootfs 啟動容器

函式計算將阿里集團成熟的映象加速技術應用在公共雲服務中,加速技術圍繞兩個核心思路:

• 按需載入:僅讀取應用真實需要的資料,極大減少資料傳輸量

• 更高效的儲存和演算法:相同大小的資料,更快地解壓

benchmark 中包含映象資料載入率在 12% - 84% 之間,除了映象較小的 web 應用,大部分場景資料利用率低於 50%。以層(layer)作為資料分發單位的原始映象被轉換成支援細粒度按需讀取的資料格式,並存放在延遲和吞吐都更優的儲存中。

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

benchmark

場景映象壓縮大小

解壓後大小

python-flask

web 應用

46mb

118mb

ecommerce-nodejs

電商, nodejs express

130mb

371mb

ml-small-import/;ml-large-import

機器學習,使用 numpy, pandas, pystan 等庫

728mb

2.392gb

ai-cat-or-dog

機器學習,人工智慧,推理** tensorflow, keras 等庫

790mb

1.824gb

puppeteer-pdf

headless chrome,網頁轉 pdf, 使用 puppeteer, nodejs express

332mb

894mb

cypress-chrome

前端 ui 自動化,cypress, headless chrome

980mb

2.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

函式計算映象加速 從分鐘到秒的跨越

簡介 函式計算 fc 正式發布容器映象加速,通過按需讀取和更高效的解壓技術在不同場景下加速 50 80 即使 gb 級別的映象也可以在幾秒內完成端到端啟動。作者資訊 shuai chang,阿里云云原生 serverless 團隊高階技術專家,主導了函式計算同容器技術生態融合以及 faas 雲原生可...

Docker映象加速

在pull docker官方映象的時候會發現io timeout錯誤,原因是無法訪問docker.io 那有什麼辦法來解決這個問題嗎?我使用阿里雲的映象加速器來解決的,方法如下 1.訪問 阿里雲映象加速器 使用 賬號登入,然後就可以獲取專屬加速器位址 2.修改docker服務的啟動引數,使用syst...

Docker pull映象加速

問題 當pull映象時遇到的問題 net http tls handshake timeout。解決 1 通常我們pull映象時這樣用 docker pull tomcat 或docker pull daocloud.io library tomcat 6.0 jre7現在我們這樣pull就可以了 ...