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

點擊下載《不同的 雙11 技術:阿里巴巴經濟體雲原生實踐》
ban.jpghtml

本文節選自《不同的 雙11 技術:阿里巴巴經濟體雲原生實踐》一書,點擊上方圖片便可下載!
做者
謝於寧(予棲) 阿里雲容器服務高級開發工程師
羅晶(瑤靖) 阿里雲容器服務高級產品經理
鄧雋  阿里雲容器服務技術專家segmentfault

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

1.png

(圖爲 2019 年天貓 雙11 成交額)緩存

容器鏡像服務做爲阿里巴巴經濟體雲原生領域的重要基礎設施之一,早在 雙11 備戰期間就已面臨大規模分發需求。爲了更好地支持這一需求,產品提早進行規劃及迭代更新,全面提高了大規模分發場景下的性能、可觀測性和穩定性。在新的 雙11 來臨前,容器鏡像服務新增了數 PB 的鏡像數據,月均鏡像拉取達數億次。同時產品提供了雲原生應用交付鏈等功能,全面覆蓋阿里巴巴經濟體及雲上用戶在雲原生時代的使用需求。安全

本文將介紹容器鏡像服務如何經過提高產品能力來應對雲原生應用萬節點分發場景下的新發展和新挑戰。網絡

新發展和新挑戰

隨着雲原生技術的迅速普及,Kubernetes 已經成爲事實上應用容器化平臺的標準,成爲了雲原生領域的「一等公民」。併發

Kubernetes 以一種聲明式的容器編排與管理體系,讓軟件交付變得愈來愈標準化。Kubernetes 提供了統一模式的 API,能以 YAML 格式的文件定義 Kubernetes 集羣內的資源。這一些 YAML 格式的資源定義使得 Kubernetes 能輕鬆被上下游系統所集成,完成一系列本來須要用非標準化腳本、人工來完成的操做。同時社區根據應用交付場景及需求,在原生 YAML 格式的資源定義文件以外衍生出了更多系列的雲原生應用交付標準,例如 Helm Chart、Opeartor、Open Application Model 等。less

2.png

(圖爲雲原生應用交付標準演進)
除了雲原生應用交付標準推陳出新,用戶對交付方式也提出了更高的要求。愈來愈多的用戶指望能以流程化、自動化、更安全的方式交付雲原生應用,所以單純的萬節點分發場景已經演化成萬節點分鐘級多環節協同分發。再加上全球化業務發展,這意味着在分鐘級時間內完成各個環節以後,還需再完成全球化分發,這對支撐雲生應用分發的平臺提出了更高的要求。微服務

新實踐

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

  • 優化容器鏡像大小,下降鏡像傳輸成本優化

    • 製做基礎鏡像,將使用頻繁的應用或環境製做成基礎鏡像複用,儘量減小鏡像的層數,控制每次變動層數
    • 採用多階段鏡像構建,將鏡像製做過程當中的中間產物與最終產物分離,造成最精簡的應用鏡像
  • 優化服務端處理性能,提升請求響應速率

    • 服務端經過識別熱點鏡像,採用熱點數據緩存等多種方式應對大規模鏡像 Manifest 併發拉取
  • 優化客戶端容器鏡像層下載方式,減小鏡像傳輸時間

    • 客戶端使用蜻蜓下載容器鏡像, 基於 P2P 方式大幅減小鏡像 Layer 下載時間

3.png

(圖爲鏡像大規模分發的優化策略)
爲了讓擁有一樣需求的企業客戶可以享受到如上一致的分發能力和體驗,容器鏡像服務產品在 2019 年 3 月正式推出了容器鏡像服務企業版(ACR Enterprise Edition)。容器鏡像服務企業版提供了企業級雲原生資產託管能力以及雲原生應用全球化同步、大規模分發能力,適合有着高安全需求、多地域業務部署、擁有大規模集羣節點的企業級容器客戶。除此以外,容器鏡像服務企業版還在雲原生資產託管交付分發等幾個方面進一步提高雲原生應用萬節點分鐘級分發協同體驗。

雲原生應用託管

  • 在應用交付物層面,容器鏡像服務企業版目前支持容器鏡像Helm Chart 兩類雲原生應用資產的全生命週期管理;
  • 在訪問安全層面,產品提供了獨立網絡訪問控制功能,能夠細粒度控制公網及 VPC 網絡的訪問策略,僅容許符合策略的來源方訪問資產,進一步保障雲原生資產的訪問安全;
  • 在訪問體驗層面,產品提供容器集羣透明拉取插件,支持容器鏡像透明拉取,保障業務在彈性場景極速拉取鏡像,不因憑證配置有誤致使業務更新或擴容異常。

4.png

(圖爲容器鏡像服務企業版支持雲原生應用交付)

雲原生應用交付

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

5.png

(圖爲控制檯建立雲原生應用交付鏈)
雲原生應用交付環節,支持自動發起靜態安全掃描並自定義配置安全阻斷策略。一旦識別到靜態應用中存在高危漏洞後,可自動阻斷後續部署鏈路。用戶可基於漏洞報告中的修復建議,更新優化構建成新的鏡像版本,再次發起交付。

雲原生應用分發

雲原生應用分發環節,當前置環節完成無阻斷後,雲原生應用正式進入全球化分發及大規模分發環節。爲了保障萬節點分鐘級分發協同完成,容器鏡像服務聯合容器服務、彈性容器實例等雲產品提供了端到端的極致分發體驗。針對全球化分發,因爲基於細粒度同步策略調度、同步鏈路優化等優化手段,雲原生應用的全球同步效率相比手動同步提高了 7 倍

6.png

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

在 P2P 大規模分發方面,產品針對雲環境屢次優化基於 Dragonfly 的分發方案,最終經過多個創新技術解決了大規模文件下載以及跨網絡隔離等場景下各類文件分發難題,大幅提升大規模容器鏡像分發能力。平均鏡像大規模分發效率比普通方式提升數倍,適用於容器集羣單集羣節點數達 100 及以上的場景。

7.png

(圖爲基於 P2P 的分發流程示意)
除了 P2P 大規模分發手段外,爲了更好地知足特定場景下的大規模分發需求,產品還支持基於鏡像快照的大規模分發方式。基於鏡像快照的分發方式,可避免或減小鏡像層的下載,極大提升彈性容器實例建立速度。在容器集羣(ASK)及彈性容器實例(ECI)的聯合使用場景下,產品能夠支持 500 節點秒級鏡像拉取,實現業務突發場景下極速擴容。

新平臺

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

穩定性

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

  • 在依賴治理方面,平臺對雲原生應用交付鏈中的相關重點環節及外部依賴進行統一管理,提高交付鏈總體交付能力,幫助用戶識別熱點倉庫及追蹤交付鏈執行結果;
  • 在限流降級方面,平臺分析識別雲原生應用分發核心環節的主次業務功能,優先保障主要業務邏輯完成,次要業務邏輯可降級延後處理;
  • 在容量規劃方面,平臺根據上下游業務變化狀況,對資源進行按需擴容,確保雲原生應用正常交付完成。

8.png

(圖爲平臺的穩定性保障策略)

生態集成

基於平臺提供的豐富的集成能力,用戶還能夠將容器鏡像服務企業版做爲雲原生資產託管及分發的基礎設施,爲他們的用戶提供雲原生應用分發能力。

其中,容器鏡像服務企業版支撐阿里云云市場構建容器應用市場,支撐容器應用市場的容器商品託管及商業化分發,構建雲上雲原生生態閉環。ISV 服務商,例如 Intel、Fortinet、奧哲,將容器化商品以容器鏡像或者 Helm Chart 的形式在雲市場快速上架,實現標準化交付、商業化變現。市場客戶也能夠從容器應用市場獲取到優質的阿里雲官方及 ISV 容器鏡像,快速部署至容器服務容器集羣,享受到阿里雲豐富的雲原生生態。

9.png

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

寫在最後

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

10.png

本書亮點

  • 雙11 超大規模 K8s 集羣實踐中,遇到的問題及解決方法詳述
  • 雲原生化最佳組合:Kubernetes+容器+神龍,實現核心系統 100% 上雲的技術細節
  • 雙 11 Service Mesh 超大規模落地解決方案
阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,作最懂雲原生開發者的技術圈。」
相關文章
相關標籤/搜索