焦點熱門:螞蟻集團云原生智能容量技術 KapacityStack 正式開源
時間:2023-06-25 05:45:58
Kapacity 金融級分布式架構 2023-06-21 19:18 發(fā)表于浙江
KapacityStack 基于螞蟻內部的超大規(guī)模生產業(yè)務實踐,旨在為用戶提供一套具備完善技術風險能力的、智能且開放的云原生容量技術,幫助用戶安全穩(wěn)定地實現(xiàn)極致降本增效,解決容量相關問題。
(相關資料圖)
主代碼倉庫的 GitHub 地址為:
/traas-stack/kapacity
背景介紹
數字經濟時代,社會各行各業(yè)對數據和算力的需求急速增長,但是算力需求的飆升和粗放利用卻造成了大量的資源消耗和碳排放,同時也給企業(yè)帶來了巨大的成本壓力。在國家“雙碳”戰(zhàn)略背景下,通過數字化創(chuàng)新技術手段提高資源使用效率、減少資源浪費和降低碳排放成為了業(yè)界共識。
螞蟻集團從 2019 年開始就對“綠色計算”技術進行探索,并基于“離在線混合部署、AI 彈性容量、云原生分時調度、綠色 AI”四大技術打造了綠色計算技術體系。
在 2022 年雙 11 期間,螞蟻集團通過“綠色計算”技術節(jié)省 萬度電,可供一盞普通節(jié)能燈使用 1 億 5 千萬個小時;減排 947 噸二氧化碳量,約等于 79000 棵樹的年碳吸存量。
近幾年來,我們在云原生架構的基礎上圍繞螞蟻“綠色計算”的 AI 彈性容量技術做了非常多的研究和建設,包含容量彈性、容量數據智能、容量穩(wěn)定性、容量運維與資源運營等,在長年累月的生產實踐中磨練出了很多優(yōu)秀的算法,也沉淀了大量技術風險的最佳實踐,目前已能安全穩(wěn)定地為螞蟻持續(xù)節(jié)省年均約 10w 核的算力成本。
此外,我們也積極地進行著這些技術的開放,支持了螞蟻商業(yè)化 SOFAStack 產品與支付寶小程序云等,滿足眾多合作伙伴的云原生容量需求。
今天,我們將這套內部技術加以濃縮凝練,以完全云原生化的方式構建了一套開放可擴展的智能容量技術體系,將其開源為了 KapacityStack 項目 (以下簡稱 Kapacity ) ,希望和業(yè)界分享并共同演進云原生容量相關技術。
重點技術特性
云最大的優(yōu)勢在于給用戶提供彈性的資源供給,在目前主流的云原生應用場景下,最常見可行的彈性手段就是對應用容器的副本數做動態(tài)擴縮容,其在社區(qū)上的代表性技術就是 Kubernetes 原生的 Pod 水平自動擴縮 (HPA) 能力,但該能力在實際大規(guī)模生產使用上的效果和實用度上卻并不理想,主要由以下幾個原因導致:
HPA 的自動擴縮容通過響應式的方式驅動,僅當應用負載已經超出設定水位時才會觸發(fā)擴容,此時容量風險已經出現(xiàn),只能起到應急的作用而非提前規(guī)避風險,尤其對于自身啟動時間較長的應用,幾乎起不到快速應對流量洪峰的作用。 HPA 通過簡單的指標折比來計算擴縮容目標副本數,只適用于應用副本數和相關指標呈嚴格線性相關的理想場景,但實際生產當中應用的各類指標和副本數之間存在錯綜復雜的關系,該算法很難得到符合容量水位要求的副本數。 容量彈性作為變更故障率較高的一類場景,HPA 除了支持限制擴縮容速率外沒有提供任何其他的風險防控手段,在穩(wěn)定性要求較高的生產環(huán)境中大規(guī)模落地是很難令人放心的。 HPA 作為 Kubernetes 內置能力,一方面自然有其開箱即用的好處,但另一方面也使其綁定在了具體的 K8s 版本上,自身的行為難以被用戶擴展或調整,難以滿足各類用戶在不同應用場景下的定制化需求。Kapacity 的第一個開源核心能力—— IHPA (全稱 Intelligent Horizontal Pod Autoscaler) 就是為了解決上述所有問題應運而生的。它具有下面的幾個重要技術特性:
容量彈性本質上是一個數據驅動決策的過程,而非簡單的擴縮容。IHPA 支持在不同場景因地制宜地使用不同的算法,除了簡單的定時與響應式算法,其還支持多種智能算法如預測式、突增式等,同時支持按自定義配置策略對算法進行組合生效,從而能夠適配更多業(yè)務場景、擴縮容的決策也更為精準。
以預測式算法為例,在生產上,應用的容量水位通常會受到多條外部流量,甚至是自身定時任務、機器性能等的影響,且副本數與容量水位之間的關系也未必是線性,這為基于應用容量的副本數預測帶來了很大的挑戰(zhàn)。
為此,IHPA 引入了螞蟻在內部大規(guī)模彈性生產實踐中打磨出的一套基于機器學習的預測式算法,該算法首先通過 Swish Net for Time Series Forecasting (SNTSF) 對潛在影響應用容量水位的多條流量進行時序預測,隨后通過 Linear-Residual Model 將這些組分流量和應用容量及其對應副本數進行綜合建模,最終推理得出應用未來的推薦副本數。
通過這種流量驅動容量的思想,該算法能夠很好地應對生產上多周期流量、趨勢變化流量、多條流量共同影響容量、容量與副本數呈非線性關系等復雜場景,通用性和準確性兼具。
不同于原生 HPA 只支持工作負載擴縮容,IHPA 支持在整個彈性過程中精細化地控制工作負載下每一個 Pod 的狀態(tài),通過靈活的 Pod 狀態(tài)轉換提升彈性效率并降低彈性風險。
目前,Kapacity 中定義了下面幾種 Pod 狀態(tài):
Online:Pod 正常對外提供服務的狀態(tài) (Running and Ready) ,也是新擴容 Pod 的默認狀態(tài)。 Cutoff:Pod 流量完全摘除的狀態(tài) (Running but Not Ready) 。在實踐上,支持優(yōu)先縮容到此狀態(tài),并輔以一段穩(wěn)定性觀察期,一旦發(fā)現(xiàn)問題能夠秒級回滾到 Online 狀態(tài)。 Standby:Pod 資源被換出,保持在低水位的狀態(tài)。相比于 Cutoff 狀態(tài),該狀態(tài)能夠實際釋放 Pod 所占用資源供其他應用使用,也支持分鐘級回滾到 Online 狀態(tài)。 Deleted:Pod 被真正刪除的狀態(tài)。實際到了該狀態(tài) Pod 本身就不存在了。另外,通過上述不同狀態(tài)的組合和轉換可以實現(xiàn)更多玩法,比如螞蟻內部的大規(guī)模分時調度技術、熱池技術等就是基于多級彈性的實踐。
IHPA 吸收了螞蟻多年大規(guī)模彈性生產實踐的經驗教訓,沉淀出了獨有的彈性變更穩(wěn)定性保障能力。
IHPA 在執(zhí)行擴縮容時支持采用自定義灰度分批的變更策略,最大程度地減小了彈性變更的爆炸半徑;同時還支持加入上文提到的 Cutoff/Standby 中間態(tài)實現(xiàn)多階段灰度,提升應急回滾速度,進一步降低彈性變更風險。
下面以使用 Cutoff 作為中間態(tài)的一次灰度縮容為例:某應用的工作負載原來有 6 個 Pod,期望縮容到 2 個,此時會按照用戶的灰度配置自動分批變更 Pod 為 Cutoff 狀態(tài),每次變更都會間隔一定時間進行穩(wěn)定性觀察。當待縮容 Pod 都切換為 Cutoff 狀態(tài)后會進入最終的額外穩(wěn)定性觀察期,如果最后沒有發(fā)現(xiàn)風險則再執(zhí)行真正的縮容,如果期間發(fā)現(xiàn)風險,則能夠快速回滾到 Online 狀態(tài)。
在彈性變更的過程中,有時候僅僅通過觀察彈性指標是否異常無法及時暴露出風險,因此,IHPA 支持用戶自定義的變更期穩(wěn)定性檢查,包括自定義指標異常判斷等,多維度地分析變更狀況,一旦發(fā)現(xiàn)異常支持自動采取應急熔斷措施,如變更暫停或變更回滾,真正做到彈性變更常態(tài)化無人值守。
Kapacity 在項目設計之初就極度關注模塊化與擴展性,比如整個 IHPA 能力就拆分為了管控、決策、執(zhí)行三大模塊,任一模塊都可以做替換或擴展,其中可擴展的部分包括但不限于:
可自定義生成應用水平畫像 (目標副本數) 的具體算法以及算法所依賴的指標、參數等 可擴展多級彈性支持的工作負載、自定義 Pod 狀態(tài)切換的邏輯等 可自定義變更期穩(wěn)定性檢查邏輯 可自定義 Pod 縮容的優(yōu)先級 (對于支持的工作負載) ……借助其高度可擴展定制的特性,用戶可以很輕松地將 Kapacity 和其他開源上下游方案或者內部自建系統(tǒng)結合使用,各取所需、各取所長,極大提升了項目的適用廣度。
現(xiàn)狀和未來
Kapacity 項目開源伊始,當前還處于早期的快速功能迭代階段,目前發(fā)布的 版本主要包含多級彈性、灰度變更等部分精細化彈性能力,以及基本的定時與響應式擴縮容算法。
在預計 6 月份發(fā)布的 版本中,我們會將上文提到的預測式智能彈性算法開放出來。
后續(xù)我們會繼續(xù)優(yōu)先補齊 IHPA 彈性的各項基礎能力,包括:
流量突增識別算法 穩(wěn)定性檢查和變更熔斷能力 更完善的自定義指標支持未來,我們也會陸續(xù)開源螞蟻在云原生容量領域沉淀的其他技術,以及更多高階能力,比如:
保活切換 (Standby 狀態(tài)) 和分時調度能力 基于智能算法的 Pod 資源規(guī)格 (CPU、內存等) 推薦與 VPA 能力 支持多維度成本與碳排放計算的可視化控制臺 ......歡迎大家關注我們持續(xù)更新的 RoadMap 了解更多詳細規(guī)劃。
/zh-cn/docs/roadmap
加入我們
我們致力于將 Kapacity 項目打造為一個開放包容、有創(chuàng)造力的社區(qū),后續(xù)的研發(fā)與討論等工作都會以開源的形式在社區(qū)透明進行。歡迎任何形式的參與,包括但不限于提問、代碼貢獻、技術討論等。非常期待收到大家的想法和反饋,一起參與到項目的建設中來,推動項目健康向前發(fā)展,打造最先進的云原生容量技術。
歡迎各種 issue、PR、Discussion,項目主倉庫的 GitHub 地址為:
/traas-stack/kapacity
相關稿件
焦點熱門:螞蟻集團云原生智能容量技術 KapacityStack 正式開源
巴媒列有資格參加2025世俱杯的32支球隊:曼城、皇馬、切爾西在內
醫(yī)藥生物行業(yè)2023中期策略:深挖國改、節(jié)奏復蘇、精選中藥、重視爆款、底部拐點
世界看熱訊:遠域懾阻 協(xié)同作戰(zhàn)!東部戰(zhàn)區(qū)空軍航空兵出擊
江南華南仍有大范圍強降水 華北黃淮等地高溫天氣持續(xù)-熱訊
環(huán)球時訊:分手之后,再相愛也很難再回頭的三大星座
廣東高考6月25日放榜!如何查詢成績&填報志愿?請收好這份指南
海通國際給予雙箭股份優(yōu)于大市評級,國內輸送帶龍頭企業(yè),產能擴張發(fā)揮規(guī)模優(yōu)勢
前沿資訊!急性支氣管炎的癥狀和治療方法有哪些圖片_急性支氣管炎的癥狀和治療方法有哪些
每日動態(tài)!英語輔導頻道藍鴿樂園(藍鴿英語學習網址是什么)
每日快報!守望先鋒為什么叫守望py(守望先鋒為什么叫屁股游戲 看看這些圖就知道了)