天天看點

淘寶如何保障業務穩定性——諾亞(Noah)自适應流控背景面向流量的「意義」關于高可用的重新思考傳統方案有什麼問題?諾亞(Noah)自适應流控諾亞後續的發展

淘寶如何保障業務穩定性——諾亞(Noah)自适應流控背景面向流量的「意義」關于高可用的重新思考傳統方案有什麼問題?諾亞(Noah)自适應流控諾亞後續的發展

作者|哲良、八風、澤彬

出品|阿裡巴巴新零售淘系技術部

諾亞(Noah) 自适應流控解決方案 基于自動控制算法,解決了人工限流配置疏漏或過時的痛點,大幅提升應用抵抗流量沖擊的能力。在剛過去的雙11中,諾亞(Noah)保障了大量業務應用系統,有超過 15K 的容器大規模部署;穩定性上最高可提升 20 倍于業務負載流量的上限 QPS ;最高可提升 100% 的資源使用率;同時優化了體驗與效率。提升淘系(及更多BU)的穩定性底盤,成為應用穩定性保障的核心能力,推動了業界在大型分布式線上業務系統的高可用/穩定性保障的進展。

背景

随着業務的不斷發展,應用數量、拓撲依賴與複雜性都在持續增長,流量模型的有效預測也變得更加困難。系統與流量的不确定性都會導緻系統容量評估疏漏或評估過時。這些情況在雙11、春晚等大型複雜活動中會更加的突顯。

面向流量的「意義」

流量會受到業務的影響而發生強變化的,這種變化是不确定的且在頻繁發生的。

應對這種不确定性需要基礎架構有可靠的、自适應的方式,能夠

實時接受與感覺變化

作出保護響應來抵禦變化,自适應的、柔性的實施系統/架構

然後是彈性,針對基礎資源做實時調節

這樣才能具備有效的抵抗力、适應力,活着是前提,有了這個前提,才有機會将基礎資源驅動起來(彈性),而業務無需耗費心力去關注這種不确定性帶來的業務可用性風險。

關于高可用的重新思考

業界在讨論高可用時,主要說的是資源失效的對應方式,比如通過應用叢集、主備、熱切換等應對單機失效;通過單元化架構、異地多活等應對單機房/地域失效。

淘寶如何保障業務穩定性——諾亞(Noah)自适應流控背景面向流量的「意義」關于高可用的重新思考傳統方案有什麼問題?諾亞(Noah)自适應流控諾亞後續的發展

從上面對資源失效的問題與對策可以看出,高可用所要解決的核心問題是保證服務不挂,準确的說是要大大降低服務挂掉的機率。

到了今天我們的應用架構,我們的可用性痛點問題是什麼呢?對于你自己開發的應用,或聽到某某服務挂了時,你會擔心或者想到什麼?在可用性方面,相信更多的回答會是『服務壓跨了』,典型的是問題場景是『大流量、突發流量』下,比如:直播場景中主播一聲吼,後端流量飙升;社交媒體場景中明星官宣結婚,帶來熱點流量暴漲;電商營運場景中,秒殺活動大流量脈沖;互動玩法場景中持續不斷釋出互動活動,一個新的活動導緻系統整體可支撐的QPS可能下降很多。這些場景與問題在日常應用開發和服務保障過程中,應該是深有痛點吧 :)

在應用架構上,業界對面向流量的可用性,不如像面向資源一樣得到充分的關注、有着豐富成熟的思路和廣泛有效的實踐,我們有意于改變 面向流量的可用性 這個主題的現狀,更多的直面問題、探索思路、實踐推進。

淘寶如何保障業務穩定性——諾亞(Noah)自适應流控背景面向流量的「意義」關于高可用的重新思考傳統方案有什麼問題?諾亞(Noah)自适應流控諾亞後續的發展

傳統方案有什麼問題?

面向流量的可用性現有的應對方式是靜态限流。

淘寶如何保障業務穩定性——諾亞(Noah)自适應流控背景面向流量的「意義」關于高可用的重新思考傳統方案有什麼問題?諾亞(Noah)自适應流控諾亞後續的發展

傳統的針對 QPS 限制的靜态限流方法的問題:

  • 流量/請求

依賴 請求模型的準确評估,即測試流量的請求大小與實際需保持一緻。

熱點流量,如熱點使用者被頻繁通路/爆冷商品等。營運導緻使用者動線走了較重的邏輯分支。

依賴 來的流量的準确預估。

但我們要承認,流量一定無法準确被評估,系統會被摸死(即拒絕操作導緻的過載)。

  • 業務代碼邏輯

依賴 測試之後系統自身和其下遊依賴的邏輯不變,性能需保持一緻。

但是業務總是在演進,除非全網封網,否則限流門檻值一上線就已經過時了。

  • 資源

依賴 各台機器性能完全一緻且穩定不變。

機器型号不同,處理能力是不可能做到完全一緻的。

虛拟化/容器化之間有影響,你無法控制你的鄰居會做什麼。

  • 流程

依賴 事先人工準确執行了評估過程

但人總是靠不住的,隻要人工來執行就一定會疏漏、出錯。

另外對于長尾應用/非核心應用,支援力度沒有保障,人力資源總是有限的。

傳統方法無法解決人工評估過時導緻的流量與容量不一緻的問題,我們需要一種能夠實時評估系統容量,并就地對流量進行控制的解決方案。

諾亞(Noah)自适應流控

面對系統穩定性問題,諾亞(Noah) 自适應流控解決方案采用不同于業界傳統的針對QPS限制的靜态限流方法,首次以自動控制算法為核心手段,提供自适應流控解決方案,解決了限流配置過時的痛點,大幅提升應用抵抗流量沖擊的能力,極度簡化了相關配置工作,同時在系統資源使用率、使用者體驗、運維效率等方面均有大幅優化提升。

淘寶如何保障業務穩定性——諾亞(Noah)自适應流控背景面向流量的「意義」關于高可用的重新思考傳統方案有什麼問題?諾亞(Noah)自适應流控諾亞後續的發展

諾亞(Noah)自适應流控解決方案

在絕大部分情況下,CPU使用率作為資源供給的主要信号是最為直接的。諾亞(Noah) 自适應流控解決方案即是以自動控制CPU資源為核心方法的,其具備了一下3點優勢:

在系統穩定性控制效果方面表現為精準和有效的控制,并具備很強的可解釋性。

沒有提前的人工評估,便沒有提前評估的過時與人工評估的疏漏和錯誤。

應用場景更為廣泛,不受異步場景限制,可同時使用于同步和異步場景。

諾亞(Noah) 自适應流控解決方案能夠實時自動評估 QPS ,在技術方案上使用自适應性來解決業務流量的不确定性。

業務落地

作為淘寶應用架構更新(代号Tango:Taobao Architecture Next GeneratiOn)在穩定性上的核心産品,諾亞(Noah)在剛剛過去的雙11大促過程中,保障大量業務應用系統,有超過15K的容器大規模部署(涉及淘寶、天貓、聚劃算、盒馬、貓超、優酷等等衆多業務)。提升系統穩定性、提升資源使用率、優化體驗與效率,提升了淘系(及更多BU)的穩定性底盤,成為應用穩定性保障的核心能力,推動了業界在大型分布式線上業務系統的高可用/穩定性保障的進展。

諾亞(Noah) 自适應流控解決方案目前已上線超過9個月,線上上實戰和全鍊路壓測中,諾亞保護了大促會場、直播、導購等等核心業務場景;應用系統在出現容量缺失30%或近20倍超大流量脈沖場景下仍保持穩定運作。

諾亞(Noah)自适應流控的效果收益:

  • 可用性提升

壓垮QPS上限,最高可提升 20倍 于業務負載流量。

在大流量壓力下降後,1秒 快速恢複服務。

大流量壓力下,僅需直接擴容機器 一步即可,無需緊急調整限流。

  • 使用者體驗的優化

應用在高負載情況下,服務成功率最高可提升 2.7倍,同時響應時間維持正常水準不劣化。

  • 成本的優化

資源使用率最高可提升 100%(去除為了穩定性/不确定性而留的資源備援)

  • 效率提升

全鍊路壓測/性能壓測更順暢。無需人工限流門檻值設定,避免人工評估錯誤導緻系統被壓垮後需要大量調整時間。

淘寶如何保障業務穩定性——諾亞(Noah)自适應流控背景面向流量的「意義」關于高可用的重新思考傳統方案有什麼問題?諾亞(Noah)自适應流控諾亞後續的發展

自适應流控的實際控制效果:在流量飙升/大流量壓力時,CPU穩定控制在門檻值,且服務RT正常

諾亞後續的發展

目前諾亞(Noah) 自适應流控解決方案保障了大量業務應用系統,提升穩定性、提升資源使用率、優化體驗與效率,提升淘系(及更多BU)的穩定性底盤,成為應用穩定性保障的核心能力,推動了業界在大型分布式線上業務系統的高可用/穩定性保障的進展。

對未來更體系化建設的幾點展望:

  • 自适應能力由限流拓展到隔離/熔斷等更多穩定性能力,如

自适應線程資源隔離

自适應服務比例

自适應服務熔斷

  • 由單機的自适應限流拓展到鍊路級,尤其是用戶端流量入口接入層

與接入層協同,讓入口流量與應用的處理容量自适應比對

确定性地保障面向流量的高可用

  • 自适應控制流量拓展到自适應伸縮容

流量控制與處理資源控制(伸縮容)協同

無論是流量的控制還是資源的控制,都是為了讓處理流量與資源容量比對

  • 保障系統不過載,提升穩定性與業務請求的成功率

One More Thing

淘系技術部依托淘系豐富的業務形态和海量的使用者,我們持續以技術驅動産品和商業創新,不斷探索和衍生颠覆型網際網路新技術,以更加智能、友好、普惠的科技深度重塑産業和使用者體驗,打造新商業。我們不斷吸引使用者增長、機器學習、視覺算法、音視訊通信、數字媒體、移動技術、端側智能等領域全球頂尖專業人才加入,讓科技引領面向未來的商業創新和進步。

請投遞履歷至郵箱:[email protected]

了解更多職位詳情:

2684億成交!每秒訂單峰值54.4W!這樣的團隊你想加入嗎?
淘寶如何保障業務穩定性——諾亞(Noah)自适應流控背景面向流量的「意義」關于高可用的重新思考傳統方案有什麼問題?諾亞(Noah)自适應流控諾亞後續的發展

繼續閱讀