1. 簡介
雲端應用程式由單體式架構轉向鬆散耦合嘅微服務,為資源管理帶嚟極大複雜性。開發者必須決定為每個微服務分配幾多計算資源(例如容器副本、虛擬機)。呢個決定對開發者嘅營運成本同應用程式用戶體驗到嘅端到端延遲都有關鍵影響。傳統自動擴展方法,例如水平Pod自動擴展(HPA),係基於CPU使用率等本地指標獨立擴展每個微服務。然而,呢種方法並唔理想,因為佢忽略咗應用程式工作流程中微服務之間嘅相互依賴性。COLA(集體自動擴展器)被提出作為解決方案,佢以全局目標為所有微服務集體分配資源:喺確保應用程式端到端延遲低於指定目標嘅同時,將金錢成本降到最低。
2. 獨立自動擴展嘅問題
目前業界標準嘅自動擴展以分散式、每個微服務獨立嘅方式運作。每個服務喺自身資源使用率(CPU、記憶體)超過閾值時觸發擴展操作(增加/移除虛擬機或Pod)。根本缺陷在於呢種局部視角未能考慮應用程式嘅全局性能。如果鏈中嘅另一個服務仍然係瓶頸,改善一個微服務嘅延遲對整體用戶感知延遲嘅影響可能微乎其微。呢種情況導致資源分配效率低下——過度配置某啲服務,同時對關鍵瓶頸配置不足——結果係成本更高,但未能達到預期嘅延遲服務水平目標(SLO)。
3. COLA:集體自動擴展方法
COLA將自動擴展問題重新定義為一個約束優化問題。佢用一個具有應用程式微服務拓撲同性能全局可見性嘅單一集中式控制器,取代多個獨立嘅自動擴展器。
3.1. 核心優化框架
目標被形式化為:
- 目標: 最小化總計算成本。
- 約束: 應用程式端到端平均或尾部延遲 ≤ 目標延遲。
- 決策變數: 分配畀每個微服務 $i$ 嘅虛擬機(或副本)數量,記為 $n_i$。
呢係一個複雜嘅非線性優化問題,因為 $n_i$ 同端到端延遲之間嘅關係唔係直接嘅,而且取決於工作負載模式同服務間通訊。
3.2. 離線搜尋過程
由於配置同性能穩定所需時間,在線解決呢個優化問題唔切實際。因此,COLA採用咗一個離線搜尋過程:
- 工作負載應用: 對應用程式施加一個代表性工作負載。
- 瓶頸識別: 識別最擁塞嘅微服務(負載下CPU使用率增加最大)。
- 透過多臂老虎機問題分配資源: 對於瓶頸服務,使用多臂老虎機公式確定最佳虛擬機數量。「獎勵」函數平衡延遲改善同成本增加。
- 迭代: 對下一個最擁塞嘅微服務重複步驟2-3,直到滿足全局延遲目標。
- 策略生成: 結果係一個擴展策略(從工作負載特徵到資源分配嘅映射),可以部署在線使用。
COLA可以喺已知工作負載之間進行插值,如果遇到未見過嘅工作負載模式,則會回退到默認自動擴展器。
4. 技術細節與數學公式
核心優化問題可以抽象表示為:
$$\min_{\{n_i\}} \sum_{i=1}^{M} C_i(n_i)$$ $$\text{subject to: } L_{e2e}(\{n_i\}, \lambda) \leq L_{target}$$ $$n_i \in \mathbb{Z}^+$$ 其中:
- $M$:微服務數量。
- $n_i$:微服務 $i$ 嘅資源單位(例如虛擬機)數量。
- $C_i(n_i)$:微服務 $i$ 擁有 $n_i$ 單位時嘅成本函數。
- $L_{e2e}$:端到端延遲函數,依賴於所有 $n_i$ 同工作負載強度 $\lambda$。
- $L_{target}$:期望嘅延遲SLO。
5. 實驗結果與評估
COLA喺Google Kubernetes Engine(GKE)上針對多個基準自動擴展器(基於使用率同基於機器學習)進行咗嚴格評估。
5.1. 實驗設置
- 應用程式: 5個開源微服務應用程式(例如Simple WebServer、BookInfo、Online Boutique)。
- 平台: GKE Standard(用戶管理節點)同GKE Autopilot(供應商管理基礎設施)。
- 基準: 標準HPA(基於CPU)、先進嘅基於機器學習嘅自動擴展器。
- 工作負載: 63種唔同嘅工作負載模式。
- 目標: 滿足指定嘅中位數或尾部(例如p95)延遲SLO。
5.2. 關鍵性能指標
SLO達成率
53/63
COLA達到延遲目標嘅工作負載數量。
平均成本降低
19.3%
與下一個最便宜嘅自動擴展器相比。
最具成本效益策略
48/53
喺53個成功嘅工作負載中,COLA喺48個中係最便宜嘅。
小型應用最優性
~90%
對於可以進行窮舉搜尋嘅較小應用程式,COLA喺約90%嘅情況下搵到最優配置。
5.3. 結果總結
結果顯示COLA具有顯著優勢。佢持續喺其他方法失敗嘅情況下達成期望嘅延遲SLO,並且成本大幅降低。成本節省非常顯著,以至於運行COLA離線搜尋嘅「訓練成本」喺幾日嘅運營內就回本。喺GKE Autopilot上,COLA嘅優勢更加明顯,因為佢有效咁駕馭供應商管理嘅抽象層以最小化成本。
圖表描述(想像): 柱狀圖可能會喺Y軸顯示「每個成功請求嘅成本」或「總集群成本」,X軸顯示唔同嘅自動擴展器(COLA、HPA、ML-A)。COLA嘅柱會明顯較低。第二張圖可能顯示「延遲SLO違規率」,COLA嘅柱接近零,而其他則顯示較高嘅違規率。
6. 分析框架與案例示例
分析師視角:四步解構
核心洞察: 呢篇論文嘅根本突破唔係一個花哨嘅新算法,而係一個關鍵嘅視角轉變:將整個微服務應用程式視為一個要優化嘅單一系統,而唔係獨立部件嘅集合。呢個類似於CycleGAN(Zhu等人,2017)等模型帶嚟嘅電腦視覺轉變,該模型通過考慮整個轉換域嘅循環一致性,超越咗配對圖像翻譯。COLA將類似嘅「全局一致性」原則應用於資源管理。
邏輯流程: 論證非常簡單有力:1) 局部最優(每個服務擴展)加總成全局低效。2) 因此,使用全局目標(成本)同全局約束(端到端延遲)。3) 既然在線解決太慢,就透過搜尋離線解決並部署策略。優雅之處在於使用老虎機問題令搜尋瓶頸嘅最優分配變得高效,呢種技術得到系統優化強化學習廣泛研究(例如UC Berkeley RISELab嘅工作)嘅支持。
優點與缺陷: 優點: 實證結果出色——19.3%嘅成本降低係董事會級別嘅數字。離線方法務實,避免運行時不穩定。框架與平台無關。 缺陷: 致命弱點係依賴代表性離線工作負載。喺快速演變嘅應用程式或「黑天鵝」流量事件下,預先計算嘅策略可能過時或造成災難。論文回退到默認自動擴展器係對呢個穩健性問題嘅權宜之計,而非根治方法。此外,搜尋複雜度可能隨微服務數量增加而急劇惡化,可能限制其喺極大型複雜應用中嘅使用。
可行建議: 對於雲端架構師,信息好清晰:唔好再孤立咁設定CPU閾值。投資建立或採用全局性能可觀測性同集中式決策引擎。從混合方法開始:使用COLA嘅理念定義關鍵服務鏈並喺嗰度應用集體擴展,同時將唔太關鍵、獨立嘅服務留喺傳統HPA上。如所示,投資回報率可以好快。雲端供應商應該留意;像GKE Autopilot咁嘅工具需要呢類智能編排層,才能真正實現「託管」基礎設施嘅承諾。
7. 應用前景與未來方向
COLA背後嘅原則具有廣泛適用性,超越基本虛擬機擴展:
- 多資源與異構擴展: 未來版本可以集體決定虛擬機大小(記憶體優化 vs. 計算優化)、GPU分配,甚至跨可用區或雲端供應商嘅放置,以實現成本同韌性。
- 與服務網格集成: 將COLA同服務網格(如Istio)結合,將提供更豐富嘅遙測數據(請求級別追蹤、依賴圖),甚至能夠直接控制流量路由同熔斷機制,作為優化嘅一部分。
- 在線適應與元學習: 主要嘅研究前沿係克服離線限制。元學習嘅技術可以令COLA基於實時反饋快速在線適應其策略,或者喺低流量期間安全探索新配置。
- 綠色計算目標: 優化目標可以擴展到最小化碳足跡或能源消耗,通過整合Cloud Carbon Footprint項目等來源嘅數據,與可持續計算計劃保持一致。
- 策略市場: 對於常見應用模式(例如電子商務、媒體串流),預先優化嘅COLA策略可以共享或出售,減少個別訓練運行嘅需要。
8. 參考文獻
- Sachidananda, V., & Sivaraman, A. (2022). COLA: Collective Autoscaling for Cloud Microservices. arXiv preprint arXiv:2112.14845v3.
- Zhu, J., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. Proceedings of the IEEE International Conference on Computer Vision (ICCV).
- Burns, B., Grant, B., Oppenheimer, D., Brewer, E., & Wilkes, J. (2016). Borg, Omega, and Kubernetes. Queue, 14(1), 70–93.
- Hoffman, M., Shahriari, B., & Aslanides, J. (2020). Addressing Function Approximation Error in Actor-Critic Methods. Proceedings of the 37th International Conference on Machine Learning (ICML). (Example of advanced RL relevant for online adaptation).
- Cloud Carbon Footprint. (n.d.). An open source tool to measure and visualize the carbon footprint of cloud usage. Retrieved from https://www.cloudcarbonfootprint.org/.
- Verma, A., Pedrosa, L., Korupolu, M., Oppenheimer, D., Tune, E., & Wilkes, J. (2015). Large-scale cluster management at Google with Borg. Proceedings of the European Conference on Computer Systems (EuroSys).