諾亞(Noah) 自適應流控解決方案 基於自動控制算法,解決了人工限流配置疏漏或過期的痛點,大幅提高應用抵抗流量衝擊的能力。在剛過去的雙11中,諾亞(Noah)保障了大量業務應用系統,有超過 15K 的容器大規模部署;穩定性上最高可提高 20 倍於業務負載流量的上限 QPS ;最高可提高 100% 的資源利用率;同時優化了體驗與效率。提高淘系(及更多BU)的穩定性底盤,成爲應用穩定性保障的核心能力,推進了業界在大型分佈式在線業務系統的高可用/穩定性保障的進展。算法
隨着業務的不斷髮展,應用數量、拓撲依賴與複雜性都在持續增加,流量模型的有效預測也變得更加困難。系統與流量的不肯定性都會致使系統容量評估疏漏或評估過期。這些狀況在雙十一、春晚等大型複雜活動中會更加的突顯。後端
流量會受到業務的影響而發生強變化的,這種變化是不肯定的且在頻繁發生的。架構
應對這種不肯定性須要基礎架構有可靠的、自適應的方式,可以運維
實時接受與感知變化機器學習
做出保護響應來抵禦變化,自適應的、柔性的實施系統/架構異步
而後是彈性,針對基礎資源作實時調節分佈式
這樣才能具有有效的抵抗力、適應力,活着是前提,有了這個前提,纔有機會將基礎資源驅動起來(彈性),而業務無需耗費心力去關注這種不肯定性帶來的業務可用性風險。性能
業界在討論高可用時,主要說的是資源失效的對應方式,好比經過應用集羣、主備、熱切換等應對單機失效;經過單元化架構、異地多活等應對單機房/地域失效。學習
從上面對資源失效的問題與對策能夠看出,高可用所要解決的核心問題是保證服務不掛,準確的說是要大大下降服務掛掉的機率。測試
到了今天咱們的應用架構,咱們的可用性痛點問題是什麼呢?對於你本身開發的應用,或聽到某某服務掛了時,你會擔憂或者想到什麼?在可用性方面,相信更多的回答會是『服務壓跨了』,典型的是問題場景是『大流量、突發流量』下,好比:直播場景中主播一聲吼,後端流量飆升;社交媒體場景中明星官宣結婚,帶來熱點流量暴漲;電商運營場景中,秒殺活動大流量脈衝;互動玩法場景中持續不斷髮布互動活動,一個新的活動致使系統總體可支撐的QPS可能降低不少。這些場景與問題在平常應用開發和服務保障過程當中,應該是深有痛點吧 :)
在應用架構上,業界對面向流量的可用性,不如像面向資源同樣獲得充分的關注、有着豐富成熟的思路和普遍有效的實踐,咱們有意於改變 面向流量的可用性 這個主題的現狀,更多的直面問題、探索思路、實踐推動。
面向流量的可用性現有的應對方式是靜態限流。
傳統的針對 QPS 限制的靜態限流方法的問題:
依賴 請求模型的準確評估,即測試流量的請求大小與實際需保持一致。
熱點流量,如熱點用戶被頻繁訪問/爆冷商品等。運營致使用戶動線走了較重的邏輯分支。
依賴 來的流量的準確預估。
但咱們要認可,流量必定沒法準確被評估,系統會被摸死(即拒絕操做致使的過載)。
依賴 測試以後系統自身和其下游依賴的邏輯不變,性能需保持一致。
可是業務老是在演進,除非全網封網,不然限流閾值一上線就已通過時了。
依賴 各臺機器性能徹底一致且穩定不變。
機器型號不一樣,處理能力是不可能作到徹底一致的。
虛擬化/容器化之間有影響,你沒法控制你的鄰居會作什麼。
依賴 事先人工準確執行了評估過程
但人老是靠不住的,只要人工來執行就必定會疏漏、出錯。
另外對於長尾應用/非核心應用,支持力度沒有保障,人力資源老是有限的。
傳統方法沒法解決人工評估過期致使的流量與容量不一致的問題,咱們須要一種可以實時評估系統容量,並就地對流量進行控制的解決方案。
面對系統穩定性問題,諾亞(Noah) 自適應流控解決方案採用不一樣於業界傳統的針對QPS限制的靜態限流方法,首次以自動控制算法爲核心手段,提供自適應流控解決方案,解決了限流配置過期的痛點,大幅提高應用抵抗流量衝擊的能力,極度簡化了相關配置工做,同時在系統資源利用率、用戶體驗、運維效率等方面均有大幅優化提高。
在絕大部分狀況下,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%(去除爲了穩定性/不肯定性而留的資源冗餘)
全鏈路壓測/性能壓測更順暢。無需人工限流閾值設置,避免人工評估錯誤致使系統被壓垮後須要大量調整時間。
自適應流控的實際控制效果:在流量飆升/大流量壓力時,CPU穩定控制在閾值,且服務RT正常
目前諾亞(Noah) 自適應流控解決方案保障了大量業務應用系統,提高穩定性、提高資源利用率、優化體驗與效率,提高淘系(及更多BU)的穩定性底盤,成爲應用穩定性保障的核心能力,推進了業界在大型分佈式在線業務系統的高可用/穩定性保障的進展。
對將來更體系化建設的幾點展望:
自適應線程資源隔離
自適應服務比例
自適應服務熔斷
與接入層協同,讓入口流量與應用的處理容量自適應匹配
肯定性地保障面向流量的高可用
流量控制與處理資源控制(伸縮容)協同
不管是流量的控制仍是資源的控制,都是爲了讓處理流量與資源容量匹配
One More Thing
淘系技術部依託淘系豐富的業務形態和海量的用戶,咱們持續以技術驅動產品和商業創新,不斷探索和衍生顛覆型互聯網新技術,以更加智能、友好、普惠的科技深度重塑產業和用戶體驗,打造新商業。咱們不斷吸引用戶增加、機器學習、視覺算法、音視頻通訊、數字媒體、移動技術、端側智能等領域全球頂尖專業人才加入,讓科技引領面向將來的商業創新和進步。
請投遞簡歷至郵箱:ruoqi.zlj@taobao.com
瞭解更多職位詳情:2684億成交!每秒訂單峯值54.4W!這樣的團隊你想加入嗎?
本文做者:哲良、八風、澤彬
本文爲雲棲社區原創內容,未經容許不得轉載。