天天看點

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

阿裡巴巴資深技術專家後羿

後羿:大家好,首先給大家呈現的是阿裡巴巴在雙11中主要依賴的網絡相關技術。在今年雙11中我們在穩定性、高性能網關、去堆疊以及25G、骨幹網流量排程平台、流量的精準評估、QOS優化和成本優化方面都取得了突破性的進展。

助力雙11的重要網絡技術

在穩定性的強化方面,在過去一年,阿裡巴巴借助智能化手段,在故障的快速發現、自動修複、自動變更、快速診斷的能力上都有很大的強化,使之輕松應對雙11流量高峰時的突發穩定性問題;在優化高性能網關方面,ANAT吞吐量性能16倍的提升和LVS性能8倍的提升使阿裡巴巴輕松應對ANAT轉發網關的壓力;4.2架構支援去堆疊能力,提高了架構可靠性;25G技術在5.0網絡架構開始規模化使用,在存儲計算分離和線上混布場景中也開始落地;骨幹網流量排程平台做到了保底帶寬、延遲的優化等方面都有好的使用者體驗。

在過去一段時間内,阿裡雲水立方做到了基于應用次元、按時間次元、任意角度的靈活營運流量精準評估能力。利用水立方預測雙11業務流量和容量的配置設定,在端到端QOS優化方面,阿裡巴巴在存儲計算分離,線上離線存儲混布場景,及交易、支付等對使用者體驗要求較高場景中獲得了更好的使用者體驗,保證相關的請求能得到優先的傳輸。在成本優化方面,AGN2.0骨幹網更新取得了很大的進展,自研光子產品和AOC的全面落地都使得整體成本得到很好的優化。

阿裡巴巴是一個擁有百萬級實體和虛拟網絡裝置、承載多樣業務的遍布全球的統一的實體網絡。不同的供應商在不同時期、不同版本、不同架構的管理都是不同的,我們需要付出更多的精力駕馭一個複雜的網絡結構。面對大量級的實體和虛拟網絡裝置時,如何用一套優化的工程方法去進行分析資料;如何基于這些資料在後期做快速故障發現和定位;不同形态的業務對網絡有不一樣的需求,如何在兼顧資源使用率同時達到使用者體驗很好的平衡;在面臨業務波動頻繁的情況下,如何自證清白;在這些過程中如何快速完成綜合處理……這些都是阿裡巴巴需要解決的客觀的工程難題。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

上圖呈現的是我們在2015年之後在網絡穩定性提升方面的具體資料。從這張圖中可以看出,我們在15年到17年期間,穩定性得到了很好的優化。2017年P1 P2故障數對比2015年全年收斂了83%;P1 P2的故障數在十分鐘内的恢複率對比2016年也得到了很好的改善。2016年在10分鐘内的故障恢複率為38%,而在2017年則達到了72%。需要強調的一點是,阿裡巴巴網絡裝置大幅度增長,而網絡工程師和網絡運維人員并無大幅度增長。這主要得益于過去兩年我們在智能化上的投入。

如何改進處理故障過程?

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

我們将網絡營運中的故障簡單的劃分成變更類故障和非變更類故障:

對于變更類故障,借助自動化變更這類自動化工具來解決變更帶來的穩定性隐患,通過快速疊代、快速優化過程讓故障快速收斂。

對于非變更類故障,在故障發生前,通過加大巡檢力度,實時探測目前線上的配置是否存在漏洞,并将巡檢結果呈現給營運工程師,營運工程師會系統化的逐漸修複這些漏洞。

我們也在建構科學預測方法,用網絡故障庫的形式逐漸建構全網網絡故障特征工程。利用特征庫預測故障存在的可能,做到防範于未然。在故障發生後,做到快速發現、快速診斷,當我們已經可以很好的定性一個特征故障時,快速對其進行修複。

快速發現子產品主要是用來提升精準探測能力,診斷子產品用于提升端到端故障診斷速度。同時,我們也在積極建構整體網絡故障特征庫。通過分析曆史網絡故障展現的量化特征,精确描述故障的形态和量化特點,幫助我們預知未來網絡的潛在的故障。巡檢系統在過去一年已經穩定上線,自動化變更系統幫助我們很好的駕馭每一天面臨的大量的變更需求。這些就是我們在解決網絡穩定性方面的整體思路。

當我們已經可以發現故障、定性故障時,通過監控系統和修複系統的快速關聯完成自修複,進而達成閉環,這就是阿裡巴巴網絡故障的自恢複。下圖展示了網絡自恢複過程及其自動完成資訊的對接和中間邏輯的判斷。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

網絡自恢複相當于快速發現和修複兩個子產品的自關聯的過程。當故障已經發生時,如何做到“發現即被修複”?

網絡自恢複主要有以下五部分構成:

端口/鍊路類異常自動隔離。

闆卡類異常自動隔離。

營運商流量智能排程容災切換。

堆疊分裂類異常自動恢複。

防火牆異常的自動切換。

後續會逐漸加入更多的場景。随着場景的增多,到目前我們已經有60%以上的風險隐患實作了自動化的處理,大大降低了故障問題處理的時長,實作了真正的故障快速恢複,這也證明我們全面進入了自動化排程的時代。網絡故障處理全面進入自動化處理和智能化排程時代,60%以上的風險隐患已經實作了自動化處理,大大降低了問題處理時長,實作故障的快速恢複。

自恢複是一種怎樣的體驗?當監控系統探知到一個具體故障正在發生時,就會調用修複子產品來完成故障修複,并在發現故障和修複完成故障後推送一條資訊告知使用者情況。這個過程幾乎不需要人為的幹預。我們希望借助一個大腦全面評估當下穩定性的情況,精準确認問題後通過排程工具平台完成修複過程。這也是一個推動智能化的過程。

如何解決好營運商的割接以及網絡的抖動的問題,避免使用者體驗的下降和故障的發生是我們花很大時間研究的課題。通過對網絡品質的全面感覺,告訴業務系統哪裡正在出現網絡品質惡化和變動,這意味着我們需要做一些工作來改善整體使用者體驗。在實際操作過程中,有很多細節需要我們考慮。營運商自動切換的過程基本都能在不需人工幹預的情況下快速完成。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

從圖中可以看出,自從上線了自動化場景後,BGP出口自動化切換的成功率是100%,每自動化切換一次都意味着系統幫助我們規避了一起故障。

在自動隔離場景中,由于網絡裝置在運作過程中經常會出現故障,在快速修複之前前,隔離是在網絡工程師解決問題的首要工作。從圖中可以看出,自動隔離功能上線後,90%以上的隔離操作能自動完成,而且成功率高達95%,這樣不僅省去了很多的人工還規避了很多潛在故障。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

北鬥故障識别智能引擎有線上日志實時分析、異常流量實時探測、告警收斂三大子產品幫助精準定位和發現。線上上我們每天要處理萬億級的資料資訊,通過算法識别出大概1億條的基礎事件,進一步識别後我們形成23萬左右的複雜事件,對複雜事件收斂形成300條左右的事件,其中有進30條左右被轉化為工單。工單一般是通過人工幹預或無人值守自動化方式消化工單。

北鬥故障識别智能引擎的工作流程主要分為四步:

利用龐大的資料采集系統,将N多元度資料實時從裝置伺服器中采集彙總;

在實時計算平台中利用各種機器學習算法和領域規則來完成基于場景的綜合分析;

通過各種告警規則生成複雜事件;

對複雜事件進一步收斂。

線上日志實時分析

我們已經對海量實時日志有97%以上的識别率,每天處理數億條平面日志,從日志中通過文本分析和積累,加上人工打标,覆寫了所有廠商日志型号。剩餘3%也有經驗豐富的網絡工程師幫助我們進一步打标,完善知識庫。這是日志分析的大概運作原理。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

異常流量實時探測

為什麼我們需要專門的子產品來做異常流量的識别?因為某些資料不能通過傳統方式确認其是否異常,如延遲、日志量、網絡流量,這個資料在某個時段是正常的,但在另一個時段裡是異常的。流量異常識别子產品解決了如何建構一種智能決策算法,根據時間點和場景動态調整對應基線的問題。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

告警收斂

當收斂出幾十萬條異常事件後,如何進一步确定異常的來源?我們将網絡的拓撲加入在圖計算引擎中。在對應一個時間視窗内,點亮所有産生告警資訊的事件對應的拓撲圖結構上。當連續一段拓撲被點亮後,把它當做一個故障聯通子圖,利用智能化算法對對應節點打分。通過rank值來确定出現故障裝置源頭。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

自動化變更已經成為一個非常基礎的能力,它和内部很多工具子產品和業務平台完成對接,使資料得到了打通,降低故障率的同時提高效率。

為什麼要有自動變更子產品?

在營運百萬級網絡裝置的情況下,每天會面臨非常多類似打補、OsS更新、路由變化、IP擴容、回收等的變更需求。

在過去,這些變更操作高達85%的部分都是由人工來完成的。有些業務的操作需要規避白天時間,很多工程師由于長期在晚上進行高危變更操作,得不到好的休息,工作容易出錯導緻性循環,帶來難以控制的風險。

由于變更工作的線下操作,很多可以變成經驗的東西沒有很好的線上上沉澱,而線下監測環節又比較薄弱。

曆史上一邊工程師在操作變更,一邊故障在蔓延的事不僅一次出現。如何做到變更的同時進行監測,實時感受變更現場網絡态勢感覺是非常重要的。

一些高危的變更需要引入稽核機制,這些都是我們之前面臨的現實問題。

我們是如何解決上述問題的呢?

總的來說就是運用通用的方法,更多的引用智能的手段,減少人工介入。一塊塊簡單的樂高積木可以拼湊出如房子、飛機等非常複雜的形象。樂高積木的例子啟示我們對需要展開的變更操作進行原子化的抽象,然後運用狀态機組合成各式複雜的變更。在變更的同時,實時采集對應裝置線上的告警資訊,這些資訊能告訴我們當下的變更是怎樣一種情況。變更進行過程中是否有大量告警資訊急速蔓延,決定着我們當下是否需要復原,是否需要做現場決策和支援。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

從圖中可以看出,在2017年自動化變更上線後,變更引起的故障率有很大的降低,50%以上的變更實作了自動化,人員的誤操作機率降為0。可想而知,變更的優化效率得到了很大的提升。

在實際中我們經常會面臨這樣一個問題,某個地方丢包比較高或者兩個點之間應用出現了嚴重的逾時,究竟是怎麼引起的?如果用人工的方式進行定位,首先要解決如何了解兩個點之間端到端網絡拓撲是怎樣一種結構。拓撲上現在有故障在發生嗎?如果有,這些故障裝置究竟産生了哪些日志、過程中是否有變更在進行?如果已經知道是哪些裝置為可疑對象,可能接下來對裝置進一步下發指令、對資料做深入診斷,整個過程大概需要1-2小時。

而庖丁可以同時進行網絡拓撲發現、告警資訊自動聚合分析、日志資訊自動擷取、指令工具自動下發這四項工作,把整個複雜問題的定位時長從1-2個小時縮減為3分鐘,給各類場景帶來極大的診斷效率提升。針對已經确定的兩個點的IP,我們自動定義出所對應的IP拓撲是怎樣一種結構;對相應拓撲鍊路上的所有日志進行實時提取、标注關鍵詞;對可疑裝置的告警進行自動化聚合收斂、過濾無效資訊;主動對可疑裝置進行可疑探測、做二次分析。這些過程幾乎是一鍵完成。

庖丁運作的可視化呈現如圖。對可疑故障鍊路進行标紅處理,通過庖丁可視化界面,輕松判斷故障的發生原因。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

在故障發現、探測的最終結果可以對具體的使用者呈現,也可以通過API形式對業務系統進行主動的資訊推送。這意味着上層業務網絡查詢更加開放,通過對庖丁的一次查詢可以得知某個業務波動是否是屬于網絡帶來的問題。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

通過最優化流量配置設定來榨幹多餘帶寬成本,同時滿足最優路徑選擇、帶寬擴容、穩定性方面的現實需求。

技術層面。我們希望每次網絡路徑都是最優的。傳統網絡基本基于Metric機制确定最短路徑。對于阿裡這張具有多樣鍊路的網絡,交易鍊路對網絡的延遲極其敏感,大資料需要很大的帶寬,需要更多可達路徑幫助快速進行資料的傳輸。

帶寬擴容角度。在面臨非常頻繁的帶寬擴容需求情況下,實際的定時鍊路存在很多延時差異,兩個點之間的路徑帶寬差異也很明顯,我們需要站在營運的角度建構某種方法,既能充分利用閑置的帶寬,又能在調配流量過程中很好的兼顧時延和成本。

穩定性方面。并行的鍊路在出現單點故障時,需要對其進行隔離,隔離後如何觸發高可用路由決策。這些都是NetO需要解決的問題。NetO基于SDN采用了SR-TE技術,幫助我們在全局情況下拿到全網流量資訊、路由狀态資訊,用這些資訊幫助我們按場景進行路徑轉發。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

NetO整體智能決策層子產品——闊海

闊海有兩大核心職能:

最大化業務目标。不同的場景有不同的需求,我們希望NetO可以根據各種限制條件對每個場景綜合分析,定制最優解決方案。

以無擁塞方式達成最優配置設定方案。這要求我們最少的步驟解決問題,每一步對應的指令需要裝置的支援。闊海幫助我們做到最大化利用鍊路上限,在每次流量調整中,即不觸及帶寬上限又能完成最優化調整,實作最小步驟的遷移。

闊海有兩種驅動方式,一是周期性運作;二是通過突事件觸發,如拓撲發生變化、流量發生變化等。闊海一個資料平台,需要用各個次元的實時資料來進行現狀态勢感覺,通過資料背後業務含義幫助我們制定最優化配置設定方案。這些方案完全可以按不同需求對成本、時延、帶寬使用率組合定制場景。

闊海有非常好的可靠性來幫助它做負載均衡。每次計算出的最優化結果可以通過兩種方式來呈現:

通過仿真在web頁面來呈現,告訴營運決策人員最優化結果會達成怎樣的效果,讓對應營運人員做現狀評估。

直接用最優化結果進行裝置指令的下發,完成一次優化排程。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

這裡給大家舉三種常見的場景,黑色線條代表實體鍊路,其他顔色線條代表邏輯鍊路。

故障狀态下的負載均衡

從第一個場景的圖中可以看到三條鍊路在初始狀态下進行資料的通信。通信鍊路出現單點故障時, NetO會把藍色鍊路的流量動态的配置設定到其他兩條鍊路上去。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

針對高費用鍊路的解決措施

從實際角度出發,每條鍊路意味着不同的資費,為了節省成本,提高資源使用率,我們完全可以采取靈活的政策來運作。如下圖所示,我們在運作過程中發現其中一條鍊路的成本偏高,這時NetO會自動觸發一次調用,把流量配置設定到相對來說成本較低的鍊路上,這個過程基本不需要人工的幹預。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

大資料場景優化傳輸時間

比如我們需要發送一個機關的資料,在初始狀态下,以圖中紅綠兩條鍊路發送資料時,由于帶寬較小,需要兩個時間周期完成資料的傳輸。NetO在整體鍊路上找到另外一條備援帶寬(藍色鍊路),并提示系統把這個鍊路利用起來,這個排程過程觸發了流量的再次優化配置設定。原本需要兩個時間機關傳輸的資料在這條鍊路上一個時間機關就能完成。

阿裡雙11網絡技術揭秘:百萬級實體和虛拟網絡裝置的智能化之路

以上就是阿裡巴巴在雙11中的網絡智能化技術及在成本優化、流量智能化排程等方面相關實踐的介紹。網絡智能永遠是一個在路上的過程,我們還在不斷努力演進它。在未來一段時間内,我們會進一步在無人值守、成本優化和穩定性方面加大投入,給大家呈現更好的東西,帶來更好的使用者體驗。    

原文釋出時間為:2018-01-05

本文作者:後羿

繼續閱讀