天天看點

Serverless X OpenKruise 部署效率優化之道

Serverless 作為雲計算的最佳實踐、雲原生發展的方向和未來演進趨勢,其核心價值在于快速傳遞、智能彈性、更低成本。SAE(Serverless應用引擎, https://www.aliyun.com/product/aliware/product/sae )作為首款面向應用的Serverless PaaS 平台,實作了 Serverless 架構與微服務架構的完美結合,使存量應用也可以零代碼改造享受 Serverless 賦予的技術紅利,目前正在增強多語言特性,向多負載類型多元化場景方向演進。作為 Serverless 平台,高效的應用部署效率無疑是産品的核心競争力,也是彈性伸縮、智能托管的基礎。更快的部署效率,意味着更好的使用者體驗,更低的使用者成本,更極緻的彈性能力。SAE 極緻彈性項目,力求提升應用端到端啟動速度,保證使用者在突發場景下的快速擴容效率和系統穩定性 SLA 。

項目背景

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

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

Serverless X OpenKruise 部署效率優化之道

從圖中可以看出,整個 pod 的建立生命周期包括排程,拉取并建立 init 容器,拉取使用者業務鏡像,建立和啟動容器等。其耗時主要集中在排程和拉取使用者鏡像上。究其原因在于 SAE 神龍節點排程鍊路整體耗時較長,而鏡像耗時主要在于拉取鏡像與解壓鏡像的時長,特别是在大容量鏡像部署的情況下尤為突出。

實施方案

SAE 團隊從長期架構規劃,使用場景通用性等多個方面進行方案調研分析, 考慮采用原地更新的部署政策代替重建更新政策,避免部署過程中重排程,減少整體耗時。

所謂原地更新,即隻更新 Pod 中某一個或多個容器版本、而不影響整個 Pod 對象、其餘容器的更新,而且在更新過程中保證 ip、node 不發生改變。在阿裡巴巴内部,絕大部分電商應用在雲原生環境都統一使用原地更新的方式做釋出,這種原地更新的模式極大地提升了應用釋出的效率,節省了排程,配置設定網絡,挂載磁盤以及拉取鏡像的耗時。通過分析線上 SAE 使用者曆史部署記錄,發現隻更新鏡像/程式包部署應用的占大多數,也就是說原地更新能力非常适合在 SAE 産品中落地。

Serverless X OpenKruise 部署效率優化之道

原地更新給 SAE 帶來的優勢在于:

1、避免重排程,避免 sidecar 容器重建,整個部署耗時隻需要拉取和建立業務容器

2、無需排程,可以預先在 Node 上緩存新鏡像,提高彈性效率。

3、可以保持 ip 不變,避免因 ip 變化導緻依賴元件如注冊中心感覺的延時。

4、減少重建 pod 對排程器,注冊中心,業務上下遊的壓力。

與此同時,OpenKruise項目(

https://openkruise.io/)

已經将原地更新能力通過 CloneSet/AdvanceStatefulSet 貢獻于開源。CloneSet 是 OpenKruise 中提供的核心 workload 之一,它主要面向無狀态應用,提供了更加高效、确定可控的應用管理和部署能力,支援優雅原地更新、指定删除、釋出順序可配置、并行/灰階釋出等豐富的政策,可以滿足更多樣化的應用場景。CloneSet 與原生 kubernetes workload 功能對比如圖:

Serverless X OpenKruise 部署效率優化之道

SAE 決定采用 CloneSet 作為新的應用負載,一方面借助其原地更新的能力提升應用整體部署效率,另一方面也結合 OpenKruise 開源的力量,共同打造通用标準的無狀态應用負載的大規模使用實踐。針對于增量應用, SAE 會預設采用 CloneSet 進行使用者應用的部署,并結合最大不可用執行個體數和優雅更新時長來保證釋出的流量無損,而對于存量應用, SAE 将采用基于有限狀态機的滾動更新進行線上遷移操作。

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

Serverless X OpenKruise 部署效率優化之道

原生 K8s 部署應用重建更新政策 VS SAE部署應用原生更新政策

未來展望

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

Serverless X OpenKruise 部署效率優化之道

繼續閱讀