Serverless X OpenKruise 部署效率優化之道

簡介: 相信在不久的未來,SAE 的極致彈性,不管在彈性效率,彈性規模,仍是智能精準等方面都會大放異彩。node

1.png

做者 | 許成銘(競霄)緩存

Serverless 做爲雲計算的最佳實踐、雲原生髮展的方向和將來演進趨勢,其核心價值在於快速交付、智能彈性、更低成本。SAE(Serverless 應用引擎)做爲首款面向應用的 Serverless PaaS 平臺,實現了 Serverless 架構與微服務架構的完美結合,使存量應用也能夠零代碼改造享受 Serverless 賦予的技術紅利,目前正在加強多語言特性,向多負載類型多元化場景方向演進。做爲 Serverless 平臺,高效的應用部署效率無疑是產品的核心競爭力,也是彈性伸縮、智能託管的基礎。更快的部署效率,意味着更好的用戶體驗,更低的用戶成本,更極致的彈性能力。SAE 極致彈性項目,力求提高應用端到端啓動速度,保證用戶在突發場景下的快速擴容效率和系統穩定性 SLA 。安全

Serverless 應用引擎:https://www.aliyun.com/product/aliware/product/sae網絡

項目背景

SAE 底層使用 Kubernetes 架構,使用神龍裸金屬安全容器、 ECI 兩種資源池,用戶在 SAE 中運行的應用會映射到 Kubernetes 中相應的資源。架構

經過採集線上全量 K8s 事件,整個 Pod 的建立生命週期進行分節點、分階段的耗時統計分析,以神龍節點爲例,各階段比例如圖:less

2.png

從圖中能夠看出,整個 pod 的建立生命週期包括調度,拉取並建立 init 容器,拉取用戶業務鏡像,建立和啓動容器等。其耗時主要集中在調度和拉取用戶鏡像上。究其緣由在於 SAE 神龍節點調度鏈路總體耗時較長,而鏡像耗時主要在於拉取鏡像與解壓鏡像的時長,特別是在大容量鏡像部署的狀況下尤其突出。ide

實施方案

SAE 團隊從長期架構規劃,使用場景通用性等多個方面進行方案調研分析, 考慮採用原地升級的部署策略代替重建升級策略,避免部署過程當中重調度,減小總體耗時。微服務

所謂原地升級,即只更新 Pod 中某一個或多個容器版本、而不影響整個 Pod 對象、其他容器的升級,並且在升級過程當中保證 ip、node 不發生改變。在阿里巴巴內部,絕大部分電商應用在雲原生環境都統一使用原地升級的方式作發佈,這種原地升級的模式極大地提高了應用發佈的效率,節省了調度,分配網絡,掛載磁盤以及拉取鏡像的耗時。經過分析線上 SAE 用戶歷史部署記錄,發現只更新鏡像/程序包部署應用的佔大多數,也就是說原地升級能力很是適合在 SAE 產品中落地。性能

3.png

原地升級給 SAE 帶來的優點在於:ui

  • 避免重調度,避免 sidecar 容器重建,整個部署耗時只須要拉取和建立業務容器;
  • 無需調度,能夠預先在 Node 上緩存新鏡像,提升彈性效率;
  • 能夠保持 ip 不變,避免因 ip 變化致使依賴組件如註冊中心感知的延時;
  • 減小重建 pod 對調度器,註冊中心,業務上下游的壓力。

與此同時,OpenKruise 項目已經將原地升級能力經過 CloneSet / AdvanceStatefulSet 貢獻於開源。CloneSet 是 OpenKruise 中提供的核心 workload  之一,它主要面向無狀態應用,提供了更加高效、肯定可控的應用管理和部署能力,支持優雅原地升級、指定刪除、發佈順序可配置、並行/灰度發佈等豐富的策略,能夠知足更多樣化的應用場景。CloneSet 與原生 Kubernetes workload 功能對好比圖:

4.png

OpenKruise 項目:https://openkruise.io/

SAE 決定採用 CloneSet 做爲新的應用負載,一方面藉助其原地升級的能力提高應用總體部署效率,另外一方面也結合 OpenKruise 開源的力量,共同打造通用標準的無狀態應用負載的大規模使用實踐。針對於增量應用, SAE 會默認採用 CloneSet 進行用戶應用的部署,並結合最大不可用實例數和優雅升級時長來保證發佈的流量無損,而對於存量應用, SAE 將採用基於有限狀態機的滾動升級進行在線遷移操做。

方案上線後效果顯著,在一個月的時間內,已經有近千個應用使用 CloneSet 進行部署,且原地升級次數爲重建升級的兩倍,部署效率比原生 K8s 提高 42% ,結合鏡像緩存,用戶部署應用到容器啓動在秒級內完成。SAE 後續會對更多 OpenKruise 的高級能力產品化,同時結合用戶場景,不斷打磨穩定性與最佳實踐回饋於開源。

5.png

圖:原生 K8s 部署應用重建升級策略  VS  SAE 部署應用原生升級策略

將來展望

在追求部署效率的道路中,SAE 正在探索更多維度,更細粒度的解決方案。相信在不久的未來,SAE 的極致彈性,不管在彈性效率,彈性規模,仍是智能精準等方面都會大放異彩。

原文連接 本文爲阿里雲原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索