摘要: 12月13-14日,由雲棲社區與阿里巴巴技術協會共同主辦的《2017阿里巴巴雙11技術十二講》順利結束,集中爲你們分享了2017雙11背後的黑科技。本文是《雙11的智能化網絡實踐》演講整理,主要講解了阿里巴巴在網絡智能領域經過數據手段極致地優化運營場景,在穩定性、成本、效率方面提高網絡運營競爭力的技術。web
12月13-14日,由雲棲社區與阿里巴巴技術協會共同主辦的《2017阿里巴巴雙11技術十二講》順利結束,集中爲你們分享了2017雙11背後的黑科技。本文是《雙11的智能化網絡實踐》演講整理,主要講解了阿里巴巴在網絡智能化技術中,大量級網絡下網絡變動、調度優化技術的大幅度提高,故障快速發現、定位、恢復方面和資源優化利用方面的技術突破,在網絡智能領域經過數據手段極致地優化運營場景,在穩定性、成本、效率方面提高網絡運營競爭力。內容以下。算法
分享嘉賓:服務器
后羿(周寶方),阿里巴巴資深技術專家,參與8年雙11大戰,主導阿里「去IOE」戰略落地,目前在推進阿里基礎設施智能化。網絡
后羿:首先給你們呈現的是阿里巴巴在雙11中主要依賴的網絡相關技術。在今年雙11中咱們在穩定性、高性能網關、去堆疊以及25G、骨幹網流量調度平臺、流量的精準評估、QOS優化和成本優化方面都取得了突破性的進展。
助力雙11的重要網絡技術
在穩定性的強化方面,在過去一年,阿里巴巴藉助智能化手段,在故障的快速發現、自動修復、自動變動、快速診斷的能力上都有很大的強化,使之輕鬆應對雙11流量高峯時的突發穩定性問題;在優化高性能網關方面,ANAT吞吐量性能16倍的提高和LVS性能8倍的提高使阿里巴巴輕鬆應對ANAT轉發網關的壓力;4.2架構支持去堆疊能力,提升了架構可靠性;25G技術在5.0網絡架構開始規模化使用,在存儲計算分離和在線混布場景中也開始落地;骨幹網流量調度平臺作到了保底帶寬、延遲的優化等方面都有好的用戶體驗。架構
在過去一段時間內,阿里雲水立方作到了基於應用維度、按時間維度、任意角度的靈活運營流量精準評估能力。利用水立方預測雙11業務流量和容量的分配,在端到端QOS優化方面,阿里巴巴在存儲計算分離,在線離線存儲混布場景,及交易、支付等對用戶體驗要求較高場景中得到了更好的用戶體驗,保證相關的請求能獲得優先的傳輸。在成本優化方面,AGN2.0骨幹網升級取得了很大的進展,自研光模塊和AOC的全面落地都使得總體成本獲得很好的優化。負載均衡
阿里巴巴是一個擁有百萬級物理和虛擬網絡設備、承載多樣業務的遍及全球的統一的物理網絡。不一樣的供應商在不一樣時期、不一樣版本、不一樣架構的管理都是不一樣的,咱們須要付出更多的精力駕馭一個複雜的網絡結構。面對大量級的物理和虛擬網絡設備時,如何用一套優化的工程方法去進行分析數據;如何基於這些數據在後期作快速故障發現和定位;不一樣形態的業務對網絡有不同的需求,如何在兼顧資源利用率同時達到用戶體驗很好的平衡;在面臨業務波動頻繁的狀況下,如何自證清白;在這些過程當中如何快速完成綜合處理……這些都是阿里巴巴須要解決的客觀的工程難題。運維
上圖呈現的是咱們在2015年以後在網絡穩定性提高方面的具體數據。從這張圖中能夠看出,咱們在15年到17年期間,穩定性獲得了很好的優化。2017年P1 P2故障數對比2015年整年收斂了83%;P1 P2的故障數在十分鐘內的恢復率對比2016年也獲得了很好的改善。2016年在10分鐘內的故障恢復率爲38%,而在2017年則達到了72%。須要強調的一點是,阿里巴巴網絡設備大幅度增加,而網絡工程師和網絡運維人員並沒有大幅度增加。這主要得益於過去兩年咱們在智能化上的投入。機器學習
如何改進處理故障過程工具
咱們將網絡運營中的故障簡單的劃分紅變動類故障和非變動類故障:
對於變動類故障,藉助自動化變動這類自動化工具來解決變動帶來的穩定性隱患,經過快速迭代、快速優化過程讓故障快速收斂。
對於非變動類故障,在故障發生前,經過加大巡檢力度,實時探測當前線上的配置是否存在漏洞,並將巡檢結果呈現給運營工程師,運營工程師會系統化的逐步修復這些漏洞。
咱們也在構建科學預測方法,用網絡故障庫的形式逐步構建全網網絡故障特徵工程。利用特徵庫預測故障存在的可能,作到防範於未然。在故障發生後,作到快速發現、快速診斷,當咱們已經能夠很好的定性一個特徵故障時,快速對其進行修復。性能
快速發現模塊主要是用來提高精準探測能力,診斷模塊用於提高端到端故障診斷速度。同時,咱們也在積極構建總體網絡故障特徵庫。經過分析歷史網絡故障體現的量化特徵,精確描述故障的形態和量化特色,幫助咱們預知將來網絡的潛在的故障。巡檢系統在過去一年已經穩定上線,自動化變動系統幫助咱們很好的駕馭每一天面臨的大量的變動需求。這些就是咱們在解決網絡穩定性方面的總體思路。
當咱們已經能夠發現故障、定性故障時,經過監控系統和修復系統的快速聯動完成自修復,從而達成閉環,這就是阿里巴巴網絡故障的自恢復。下圖展現了網絡自恢復過程及其自動完成信息的對接和中間邏輯的判斷。
網絡自恢復至關於快速發現和修復兩個模塊的自聯動的過程。當故障已經發生時,如何作到「發現即被修復」?
網絡自恢復主要有如下五部分構成:
端口/鏈路類異常自動隔離。
板卡類異常自動隔離。
運營商流量智能調度容災切換。
堆疊分裂類異常自動恢復。
防火牆異常的自動切換。
後續會逐步加入更多的場景。隨着場景的增多,到目前咱們已經有60%以上的風險隱患實現了自動化的處理,大大下降了故障問題處理的時長,實現了真正的故障快速恢復,這也證實咱們全面進入了自動化調度的時代。網絡故障處理全面進入自動化處理和智能化調度時代,60%以上的風險隱患已經實現了自動化處理,大大下降了問題處理時長,實現故障的快速恢復。
自恢復是一種怎樣的體驗?當監控系統探知到一個具體故障正在發生時,就會調用修復模塊來完成故障修復,並在發現故障和修復完成故障後推送一條信息告知用戶狀況。這個過程幾乎不須要人爲的干預。咱們但願藉助一個大腦全面評估當下穩定性的狀況,精準確認問題後經過調度工具平臺完成修復過程。這也是一個推進智能化的過程。
智能調度與自動隔離
如何解決好運營商的割接以及網絡的抖動的問題避免用戶體驗的降低和故障的發生是咱們花很大時間研究的課題。經過對網絡質量的全面感知,告訴業務系統哪裏正在出現網絡質量惡化和變更,這意味着咱們須要作一些工做來改善總體用戶體驗。在實際操做過程當中,有不少細節須要咱們考慮。運營商自動切換的過程基本都能在不需人工干預的狀況下快速完成。
從圖中能夠看出,自從上線了自動化場景後,BGP出口自動化切換的成功率是100%,每自動化切換一次都意味着系統幫助咱們規避了一塊兒故障。
在自動隔離場景中,因爲網絡設備在運行過程當中常常會出現故障,在快速修復以前前,隔離是在網絡工程師解決問題的首要工做。從圖中能夠看出,自動隔離功能上線後,90%以上的隔離操做能自動完成,並且成功率高達95%,這樣不只省去了不少的人工還規避了不少潛在故障。
基於北斗系統的「快速發現」
北斗故障識別智能引擎有在線日誌實時分析、異常流量實時探測、告警收斂三大模塊幫助精準定位和發現。在線上咱們天天要處理萬億級的數據信息,經過算法識別出大概1億條的基礎事件,進一步識別後咱們造成23萬左右的復瑣事件,對復瑣事件收斂造成300條左右的事件,其中有進30條左右被轉化爲工單。工單通常是經過人工干預或無人值守自動化方式消化工單。
北斗故障識別智能引擎的工做流程主要分爲四步:
利用龐大的數據採集系統,將N多維度數據實時從設備服務器中採集彙總;
在實時計算平臺中利用各類機器學習算法和領域規則來完成基於場景的綜合分析;
經過各類告警規則生成復瑣事件;
對復瑣事件進一步收斂。
在線日誌實時分析。咱們已經對海量實時日誌有97%以上的識別率,天天處理數億條平面日誌,從日誌中經過文本分析和積累,加上人工打標,覆蓋了全部廠商日誌型號。剩餘3%也有經驗豐富的網絡工程師幫助咱們進一步打標,完善知識庫。這是日誌分析的大概運做原理。
異常流量實時探測。爲何咱們須要專門的模塊來作異常流量的識別?由於某些數據不能經過傳統方式確認其是否異常,如延遲、日誌量、網絡流量,這個數據在某個時段是正常的,但在另外一個時段裏是異常的。流量異常識別模塊解決了如何構建一種智能決策算法,根據時間點和場景動態調整對應基線的問題。
告警收斂。當收斂出幾十萬條異常事件後,如何進一步肯定異常的來源?咱們將網絡的拓撲加入在圖計算引擎中。在對應一個時間窗口內,點亮全部產生告警信息的事件對應的拓撲圖結構上。當連續一段拓撲被點亮後,把它當作一個故障聯通子圖,利用智能化算法對對應節點打分。經過rank值來肯定出現故障設備源頭。
自動變動的做用
自動化變動已經成爲一個很是基礎的能力,它和內部不少工具模塊和業務平臺完成對接,使數據獲得了打通,下降故障率的同時提升效率。
爲何要有自動變動模塊?
在運營百萬級網絡設備的狀況下,天天會面臨很是多相似打補、OsS升級、路由變化、IP擴容、回收等的變動需求。
在過去,這些變動操做高達85%的部分都是由人工來完成的。有些業務的操做須要規避白天時間,不少工程師因爲長期在晚上進行高危變動操做,得不到好的休息,工做容易出錯致使性循環,帶來難以控制的風險。
因爲變動工做的線下操做,不少能夠變成經驗的東西沒有很好的在線上沉澱,而線下監測環節又比較薄弱。
歷史上一邊工程師在操做變動,一邊故障在蔓延的事不只一次出現。如何作到變動的同時進行監測,實時感覺變動現場網絡態勢感知是很是重要的。
一些高危的變動須要引入審覈機制,這些都是咱們以前面臨的現實問題。
咱們是如何解決上述問題的呢?總的來講就是運用通用的方法,更多的引用智能的手段,減小人工介入。一塊塊簡單的樂高積木能夠拼湊出如房子、飛機等很是複雜的形象。樂高積木的例子啓示咱們對須要展開的變動操做進行原子化的抽象,而後運用狀態機組合成各式複雜的變動。在變動的同時,實時採集對應設備線上的告警信息,這些信息能告訴咱們當下的變動是怎樣一種狀況。變動進行過程當中是否有大量告警信息急速蔓延,決定着咱們當下是否須要回滾,是否須要作現場決策和支持。
從圖中能夠看出,在2017年自動化變動上線後,變動引發的故障率有很大的下降,50%以上的變動實現了自動化,人員的誤操做機率降爲0。可想而知,變動的優化效率獲得了很大的提高。
網絡端到端智能快速診斷系統「庖丁」
在實際中咱們常常會面臨這樣一個問題,某個地方丟包比較高或者兩個點之間應用出現了嚴重的超時,到底是怎麼引發的?若是用人工的方式進行定位,首先要解決如何瞭解兩個點之間端到端網絡拓撲是怎樣一種結構。拓撲上如今有故障在發生嗎?若是有,這些故障設備究竟產生了哪些日誌、過程當中是否有變動在進行?若是已經知道是哪些設備爲可疑對象,可能接下來對設備進一步下發命令、對數據作深刻診斷,整個過程大概須要1-2小時。
而庖丁能夠同時進行網絡拓撲發現、告警信息自動聚合分析、日誌信息自動獲取、命令工具自動下發這四項工做,把整個複雜問題的定位時長從1-2個小時縮減爲3分鐘,給各種場景帶來極大的診斷效率提高。針對已經肯定的兩個點的IP,咱們自動定義出所對應的IP拓撲是怎樣一種結構;對相應拓撲鏈路上的全部日誌進行實時提取、標註關鍵詞;對可疑設備的告警進行自動化聚合收斂、過濾無效信息;主動對可疑設備進行可疑探測、作二次分析。這些過程幾乎是一鍵完成。
庖丁運做的可視化呈現如圖。對可疑故障鏈路進行標紅處理,經過庖丁可視化界面,輕鬆判斷故障的發生緣由。
在故障發現、探測的最終結果能夠對具體的用戶呈現,也能夠經過API形式對業務系統進行主動的信息推送。這意味着上層業務網絡查詢更加開放,經過對庖丁的一次查詢能夠得知某個業務波動是不是屬於網絡帶來的問題。
基於NetO作流量最優化的分配
經過最優化流量分配來榨乾多餘帶寬成本,同時知足最優路徑選擇、帶寬擴容、穩定性方面的現實需求。
技術層面。咱們但願每次網絡路徑都是最優的。傳統網絡基本基於Metric機制肯定最短路徑。對於阿里這張具備多樣鏈路的網絡,交易鏈路對網絡的延遲極其敏感,大數據須要很大的帶寬,須要更多可達路徑幫助快速進行數據的傳輸。
帶寬擴容角度。在面臨很是頻繁的帶寬擴容需求狀況下,實際的定時鏈路存在不少延時差別,兩個點之間的路徑帶寬差別也很明顯,咱們須要站在運營的角度構建某種方法,既能充分利用閒置的帶寬,又能在調配流量過程當中很好的兼顧時延和成本。
穩定性方面。並行的鏈路在出現單點故障時,須要對其進行隔離,隔離後如何觸發高可用路由決策。這些都是NetO須要解決的問題。NetO基於SDN採用了SR-TE技術,幫助咱們在全局狀況下拿到全網流量信息、路由狀態信息,用這些信息幫助咱們按場景進行路徑轉發。
NetO總體智能決策層模塊——闊海
闊海有兩大核心職能:
最大化業務目標。不一樣的場景有不一樣的需求,咱們但願NetO能夠根據各類限制條件對每一個場景綜合分析,定製最優解決方案。
以無擁塞方式達成最優分配方案。這要求咱們最少的步驟解決問題,每一步對應的命令須要設備的支持。闊海幫助咱們作到最大化利用鏈路上限,在每次流量調整中,即不觸及帶寬上限又能完成最優化調整,實現最小步驟的遷移。
闊海有兩種驅動方式,一是週期性運行;二是經過突事件觸發,如拓撲發生變化、流量發生變化等。闊海一個數據平臺,須要用各個維度的實時數據來進行現狀態勢感知,經過數據背後業務含義幫助咱們制定最優化分配方案。這些方案徹底能夠按不一樣需求對成本、時延、帶寬利用率組合定製場景。
闊海有很是好的可靠性來幫助它作負載均衡。每次計算出的最優化結果能夠經過兩種方式來呈現:
經過仿真在web頁面來呈現,告訴運營決策人員最優化結果會達成怎樣的效果,讓對應運營人員作現狀評估。
直接用最優化結果進行設備命令的下發,完成一次優化調度。
這裏給你們舉三種常見的場景,黑色線條表明物理鏈路,其餘顏色線條表明邏輯鏈路。
故障狀態下的負載均衡。從第一個場景的圖中能夠看到三條鏈路在初始狀態下進行數據的通訊。通訊鏈路出現單點故障時, NetO會把藍色鏈路的流量動態的分配到其餘兩條鏈路上去。
針對高費用鏈路的解決措施。從實際角度出發,每條鏈路意味着不一樣的資費,爲了節省成本,提升資源利用率,咱們徹底能夠採起靈活的策略來運行。以下圖所示,咱們在運行過程當中發現其中一條鏈路的成本偏高,這時NetO會自動觸發一次調用,把流量分配到相對來講成本較低的鏈路上,這個過程基本不須要人工的干預。
大數據場景優化傳輸時間。好比咱們須要發送一個單位的數據,在初始狀態下,以圖中紅綠兩條鏈路發送數據時,因爲帶寬較小,須要兩個時間週期完成數據的傳輸。NetO在總體鏈路上找到另一條冗餘帶寬(藍色鏈路),並提示系統把這個鏈路利用起來,這個調度過程觸發了流量的再次優化分配。本來須要兩個時間單位傳輸的數據在這條鏈路上一個時間單位就能完成。
以上就是阿里巴巴在雙11中的網絡智能化技術及在成本優化、流量智能化調度等方面相關實踐的介紹。網絡智能永遠是一個在路上的過程,咱們還在不斷努力演進它。在將來一段時間內,咱們會進一步在無人值守、成本優化和穩定性方面加大投入,給你們呈現更好的東西,帶來更好的用戶體驗。