天天看點

雲原生應用萬節點分鐘級分發協同實踐

作者:謝于甯、羅晶、鄧隽

引言

2019 年天貓雙11,阿裡巴巴核心系統首次實作 100% 上雲。面對全球最大的交易洪峰,阿裡雲扛住了每秒 54.4 萬筆的交易峰值,這是“雲原生”與“天貓全球狂歡節”的一次完美聯名。

雲原生應用萬節點分鐘級分發協同實踐

(圖為 2019 年天貓雙11 成交額)

容器鏡像服務作為阿裡巴巴經濟體雲原生領域的重要基礎設施之一,早在 雙11 備戰期間就已面臨大規模分發需求。為了更好地支援這一需求,産品提前進行規劃及疊代更新,全面提升了大規模分發場景下的性能、可觀測性和穩定性。在新的 雙11 來臨前,容器鏡像服務新增了數 PB 的鏡像資料,月均鏡像拉取達數億次。同時産品提供了雲原生應用傳遞鍊等功能,全面覆寫阿裡經濟體及雲上使用者在雲原生時代的使用需求。

本文将介紹容器鏡像服務如何通過提升産品能力來應對雲原生應用萬節點分發場景下的新發展和新挑戰。

新發展和新挑戰

随着雲原生技術的迅速普及,Kubernetes 已經成為事實上應用容器化平台的标準,成為了雲原生領域的“一等公民”。Kubernetes 以一種聲明式的容器編排與管理體系,讓軟體傳遞變得越來越标準化。Kubernetes 提供了統一模式的 API,能以 YAML 格式的檔案定義 Kubernetes 叢集内的資源。這一些 YAML 格式的資源定義使得 Kubernetes 能輕松被上下遊系統所內建,完成一系列原本需要用非标準化腳本、人工來完成的操作。同時社群根據應用傳遞場景及需求,在原生 YAML 格式的資源定義檔案之外衍生出了更多系列的雲原生應用傳遞标準,例如 Helm Chart、Opeartor、

Open Application Model

等。

雲原生應用萬節點分鐘級分發協同實踐

(圖為雲原生應用傳遞标準演進)

除了雲原生應用傳遞标準推陳出新,使用者對傳遞方式也提出了更高的要求。越來越多的使用者期望能以流程化、自動化、更安全的方式傳遞雲原生應用,是以單純的萬節點分發場景已經演化成萬節點分鐘級多環節協同分發。再加上全球化業務發展,這意味着在分鐘級時間内完成各個環節之後,還需再完成全球化分發,這對支撐雲生應用分發的平台提出了更高的要求。

新實踐

通過控制容器鏡像大小、采用 P2P 分發鏡像層、優化 Registry 服務端等方式,我們極大優化了大規模分發的性能,最終達成了萬節點分鐘級分發的目标:

  • 優化容器鏡像大小,降低鏡像傳輸成本
    • 制作基礎鏡像,将使用頻繁的應用或環境制作成基礎鏡像複用,盡可能減少鏡像的層數,控制每次變更層數
    • 采用多階段鏡像建構,将鏡像制作過程中的中間産物與最終産物分離,形成最精簡的應用鏡像
  • 優化服務端處理性能,提高請求響應速率
    • 服務端通過識别熱點鏡像,采用熱點資料緩存等多種方式應對大規模鏡像 Manifest 并發拉取
  • 優化用戶端容器鏡像層下載下傳方式,減少鏡像傳輸時間
    • 用戶端使用蜻蜓下載下傳容器鏡像, 基于 P2P 方式大幅減少鏡像 Layer 下載下傳時間
雲原生應用萬節點分鐘級分發協同實踐

(圖為鏡像大規模分發的優化政策)

為了讓擁有同樣需求的企業客戶能夠享受到如上一緻的分發能力和體驗,容器鏡像服務産品在 2019 年 3 月正式推出了容器鏡像服務企業版(ACR Enterprise Edition)。容器鏡像服務企業版提供了企業級雲原生資産托管能力以及雲原生應用全球化同步、大規模分發能力,适合有着高安全需求、多地域業務部署、擁有大規模叢集節點的企業級容器客戶。除此之外,容器鏡像服務企業版還在雲原生資産托管、傳遞、分發等幾個方面進一步提升雲原生應用萬節點分鐘級分發協同體驗。

雲原生應用托管

  • 在應用傳遞物層面,容器鏡像服務企業版目前支援容器鏡像、Helm Chart 兩類雲原生應用資産的全生命周期管理。
  • 在通路安全層面,産品提供了獨立網絡通路控制功能,可以細粒度控制公網及 VPC 網絡的通路政策,僅允許符合政策的來源方通路資産,進一步保障雲原生資産的通路安全。
  • 在通路體驗層面,産品提供容器叢集透明拉取插件,支援容器鏡像透明拉取,保障業務在彈性場景極速拉取鏡像不因憑證配置有誤導緻業務更新或擴容異常。
雲原生應用萬節點分鐘級分發協同實踐

(圖為容器鏡像服務企業版支援雲原生應用傳遞)

雲原生應用傳遞

雲原生應用生産環節,使用者可以直接上傳托管容器鏡像、Helm Chart 等雲原生資産;也可以通過建構功能自動從源代碼(Github、阿裡雲 Code、GitLab 等來源)智能建構成容器鏡像。同時為了解決流程化、自動化、更安全的方式傳遞雲原生應用這一需求,容器鏡像服務企業版引入了雲原生應用傳遞鍊功能。雲原生應用傳遞鍊以雲原生應用托管為始,以雲原生應用分發為終,全鍊路可觀測、可追蹤、可自主設定。可以實作一次應用變更,全球化多場景自動傳遞,從流程層面極大地提升了雲原生應用萬節點分發的效率及安全性。

雲原生應用萬節點分鐘級分發協同實踐

(圖為控制台建立雲原生應用傳遞鍊)

雲原生應用傳遞環節,支援自動發起靜态安全掃描并自定義配置安全阻斷政策。一旦識别到靜态應用中存在高危漏洞後,可自動阻斷後續部署鍊路。使用者可基于漏洞報告中的修複建議,更新優化建構成新的鏡像版本,再次發起傳遞。

雲原生應用分發

雲原生應用分發環節,目前置環節完成無阻斷後,雲原生應用正式進入全球化分發及大規模分發環節。為了保障萬節點分鐘級分發協同完成,容器鏡像服務聯合容器服務、彈性容器執行個體等雲産品提供了端到端的極緻分發體驗。針對全球化分發,由于基于細粒度同步政策排程、同步鍊路優化等優化手段,雲原生應用的全球同步效率相比手動同步提升了 7 倍。

雲原生應用萬節點分鐘級分發協同實踐

(圖為雲原生應用的全球化分發)

在 P2P 大規模分發方面,産品針對雲環境多次優化基于 

Dragonfly

 的分發方案,最終通過多個創新技術解決了大規模檔案下載下傳以及跨網絡隔離等場景下各種檔案分發難題,大幅提高大規模容器鏡像分發能力。平均鏡像大規模分發效率比普通方式提高數倍,适用于容器叢集單叢集節點數達 100 及以上的場景。

雲原生應用萬節點分鐘級分發協同實踐

(圖為基于 P2P 的分發流程示意)

除了 P2P 大規模分發手段外,為了更好地滿足特定場景下的大規模分發需求,産品還支援基于鏡像快照的大規模分發方式。基于鏡像快照的分發方式,可避免或減少鏡像層的下載下傳,極大提高彈性容器執行個體建立速度。在容器叢集(

ASK

)及彈性容器執行個體(

ECI

)的聯合使用場景下,産品可以支援 500 節點秒級鏡像拉取,實作業務突發場景下極速擴容。

雲原生應用萬節點分鐘級分發協同實踐

(圖為基于鏡像快照的分發流程示意)

新平台

在功能及性能名額滿足雲原生應用萬節點分鐘級分發協同需求外,容器鏡像服務還對平台能力進行了提升和優化,保障了分發過程的可觀測性及穩定性。同時平台提供了內建能力,進一步延展雲原生應用分發的使用場景和價值。

穩定性

穩定性層面的具體提升及優化工作從監控報警、容錯容災、依賴治理、限流降級、容量規劃等幾個方面展開。

  • 在依賴治理方面,平台對雲原生應用傳遞鍊中的相關重點環節及外部依賴進行統一管理,提升傳遞鍊整體傳遞能力,幫助使用者識别熱點倉庫及追蹤傳遞鍊執行結果;
  • 在限流降級方面,平台分析識别雲原生應用分發核心環節的主次業務功能,優先保障主要業務邏輯完成,次要業務邏輯可降級延後處理;
  • 在容量規劃方面,平台根據上下遊業務變化情況,對資源進行按需擴容,確定雲原生應用正常傳遞完成。
雲原生應用萬節點分鐘級分發協同實踐

(圖為平台的穩定性保障政策)

生态內建

基于平台提供的豐富的內建能力,使用者還可以将容器鏡像服務企業版作為雲原生資産托管及分發的基礎設施,為他們的使用者提供雲原生應用分發能力。其中,容器鏡像服務企業版支撐阿裡雲雲市場建構容器應用市場,支撐容器應用市場的容器商品托管及商業化分發,建構雲上雲原生生态閉環。ISV 服務商,例如 Intel、Fortinet、奧哲,将容器化商品以容器鏡像或者 Helm Chart 的形式在雲市場快速上架,實作标準化傳遞、商業化變現。市場客戶也可以從容器應用市場擷取到優質的阿裡雲官方及 ISV 容器鏡像,快速部署至容器服務容器叢集,享受到阿裡雲豐富的雲原生生态。

雲原生應用萬節點分鐘級分發協同實踐

(圖為容器應用市場流程示意)

寫在最後

從支援阿裡巴巴 雙11 大規模分發需求,到全面覆寫阿裡經濟體及雲使用者的雲原生資産托管及分發需求,再到支撐建構雲上容器生态閉環,阿裡雲容器鏡像服務已成為了雲原生時代的核心基礎設施之一,釋放雲原生價值的重要加速器。容器鏡像服務也将持續為使用者帶來更加優異的雲原生應用分發功能、性能及體驗。

繼續閱讀