轻松应对双11,百万级物理和虚拟网络设备的网络智能化实践
摘要: 12月13-14日,由云棲社區與阿里巴巴技術協會共同主辦的《2017阿里巴巴雙11技術十二講》順利結束,集中為大家分享了2017雙11背后的黑科技。本文是《雙11的智能化網絡實踐》演講整理,主要講解了阿里巴巴在網絡智能領域通過數據手段極致地優化運營場景,在穩定性、成本、效率方面提升網絡運營競爭力的技術。
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中的網絡智能化技術及在成本優化、流量智能化調度等方面相關實踐的介紹。網絡智能永遠是一個在路上的過程,我們還在不斷努力演進它。在未來一段時間內,我們會進一步在無人值守、成本優化和穩定性方面加大投入,給大家呈現更好的東西,帶來更好的用戶體驗。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的轻松应对双11,百万级物理和虚拟网络设备的网络智能化实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做安全操作系统,这位技术老兵是认真的!
- 下一篇: 用aliplayer如何实现视频的连续播