天天看點

【LC3開源峰會網絡技術系列之三】基于JStorm的網絡分析平台

國際知名開源社群Linux基金會主辦的開源大會LinuxCon + ContainerCon + CloudOpen China 2018(LC3)于6月25日在北京開幕。今年阿裡雲作為白金合作夥伴亮相本次中國開源盛會,這篇文章是網絡團隊分享系列第三篇。 摘要 :這篇文章介紹了阿裡雲網絡團隊在做網絡分析方向上的一些實踐,包括了如何基于實時計算搭建整個平台以及其中重點解決的幾個場景。 主講人 :呂彪 阿裡雲進階技術專家 主題

:JStorm based Network

Analysis Platform

分論壇 :Network & Orchestration
【LC3開源峰會網絡技術系列之三】基于JStorm的網絡分析平台

項目背景

随着阿裡雲的快速發展,目前其業務已經覆寫全球18個region,服務了超過100多萬的客戶。不僅如此,阿裡雲還支撐了像雙11這樣的活動,對它的彈性,排程,以及穩定性都有很大的挑戰。而在網絡業務發展的背後是越來越複雜網絡技術體系,比如SDN,現在整個阿裡雲網絡全部SDN化了,所有的雲網絡裝置都完全通過我們從業務到北向以及南向的API進行管理和配置,而網絡本身也劃分為Overlay和Underlay,Underlay這塊主要是實體的交換機,路由器,Overlay這塊為使用者提供了彈性,靈活的各種虛拟網絡功能;然後我們還有NFV, RDMA, SD-WAN等等。 整個網絡變得越來越複雜 。

【LC3開源峰會網絡技術系列之三】基于JStorm的網絡分析平台

讓網絡更加簡單

雖然我們有這麼複雜的技術體系,有這麼大規模的挑戰,我們還是希望我們的網絡能更穩定,更簡單,更好用的。我們希望每一次網絡的更新都是使用者無感的,當任何裝置出現問題時我們能提前使用者發現問題,并且能非常精确得定位到出問題的節點,最後,我們希望我們對網絡有非常豐富,多元度的了解,這對我們自己以及使用者在運維和營運這張網絡時非常有幫助。Network as a Service,我們希望我們的網絡能像簡單靈活的服務一樣,需要的時候就能連接配接上。

【LC3開源峰會網絡技術系列之三】基于JStorm的網絡分析平台

如何做到網絡的規模在這樣持續增長的情況下仍然能夠保持簡單,高效。自動化肯定是需要做的,但是在自動化的基礎上我們希望能讓系統承擔更多的事情,把更多決策閉環掉,并且在整個網絡生命周期中減少人的幹預,讓另一套系統而不是我們使用者和網絡運維人員去和控制器打交道。我們的使用者和網絡運維人員是如何做決策的呢,他們依賴的是資料。基于這些資料以及他們的判斷來形成決策,是以資料是組成這個閉環的最後一個環節。右圖裡就是我們目前的設想,基于各種網絡運作過程中生成的資料系統自動化的生成政策,這些政策送出給控制器形成對網絡的配置管理,網絡在過程中又會産生新的資料。在這個系統上我們完成從網絡更新,網絡監控,網絡畫像,網絡診斷,以及異常恢複等多個場景的閉環。

【LC3開源峰會網絡技術系列之三】基于JStorm的網絡分析平台

齊天 -基于JStorm的網絡分析平台

按照這個思路,我們設計并實作了一套網絡分析平台,我們給這套平台取了一個很好聽的名字,叫齊天,希望能從天空的角度去看我們整張網絡。

【LC3開源峰會網絡技術系列之三】基于JStorm的網絡分析平台

整個平台大緻可以分為三層,最底下這一層是資料源,包括了來自網絡裝置和業務服務采集出來的各種資料。往上是我們的實時資料分析層,從左往右看,第一個是我們的基礎資料分析,包括将DB資料清洗,ETL,通用的數學計算,基礎資料分析是右邊所有資料分析的前提,它将原始 的資料轉換為格式标準的資料

。第二個是我們的網絡監控分析,用于發現網絡當中的可疑異常。它分為三個部分,監控政策,網絡事件,和異常通知。分别消費基礎資料,初級網絡異常,以及融合網絡事件,最終産生可疑事件記錄和告警。第三個是我們的網絡診斷,用于發現問題時定位具體問題原因的。它能對每個資料封包進行處理和分析,并且計算出來封包的流量路徑,并找到這條路徑上出問題的網絡裝置以及具體問題的原因。第四個是我們的網絡排程,這一部分目前最重要一個用途還是在出現故障時流量排程政策來恢複故障

。最後一個是我們的網絡畫像,它用于我們網絡資源的規劃和排程,也用于我們産品成本和營收的核算 。整個實時分析層是基于JStorm引擎開發的,它并不是一個獨立的應用,而是衆多JStorm任務的集合。

最上面是我們資料分析的輸出,這裡我們有流式的資料輸出,也支援API的資料提取。這兩者主要是對接其他的系統,比如我們的SDN控制器會消費齊天産生的政策資料,用于管理和配置網絡裝置,但對于我們的研發,售後來說他們需要更直覺的資料呈現

。最後是我們開發的一個釘釘機器人,你可以問他最近某個叢集的告警情況,也可以問某個使用者執行個體的運作情況。這個機器人也有一個好聽的名字,叫大聖,是以和我們平台的名字連在一起就是齊天大聖。接下來我會自下而上的分别從資料來源,分析性能,實時監控,網絡診斷,智能排程以及多元度網絡畫像為大家深入介紹整個平台。

實時網絡監控

齊天的整個監控體系是基于JStorm的流計算引擎開發的。還是從資料流的角度來看一下整個系統怎麼處理的。最左邊仍然是網絡裝置,它采集到的原始資料經過一些基本的ETL以及聚合之後變成了包含多元度資訊以及網絡流量資訊流資料,這份資料會被我們的一個被稱為監控政策任務的JStorm Topology消費,監控政策任務會包含各種監控政策,每一種政策會從不同次元去識别異常。目前我們支援三種政策,名額波動,區間預測,以及事件統計。 說完了政策,那麼後面緊跟着的就是一個被稱為事件合并的JStorm任務。這個任務的作用是把政策任務産生的各種事件按使用者以及網絡拓撲的次元合并。 實時監控的最後一個環節是通知中心,這裡主要是根據不同類型,不同嚴重程度的網絡事件進行不同方式的通知,目前支援郵件,短信,應用消息等。每一個通知會非常清晰的描述出來問題的時間和影響範圍,幫助研發做判斷。

【LC3開源峰會網絡技術系列之三】基于JStorm的網絡分析平台

基于流計算的網絡診斷

接下來我們來看看齊天是如何基于流計算來做網絡診斷的。當使用者的流量出現異常的時候,曾經是通過抓包或者traceroute等工具去定位,但是這種方式一方面效率低,另一方面在Overlay網絡下很難達到效果。為此,我們的網絡裝置利用封包染色的方法,将染色後的封包采集到SLS日志中,再由JStorm任務來分析這些封包,最終可以定位出來導緻問題的裝置節點。

【LC3開源峰會網絡技術系列之三】基于JStorm的網絡分析平台

智能網絡排程

如何恢複出現問題的網絡就是我們下一個系統需要去解決的事情。目前的網絡問題主要以伺服器上虛拟機出現的網絡異常和我們的分布式虛拟網關異常為主,目前者出現問題時我們需要快速的定位出來可以遷移的目标伺服器,然後快速将虛拟機遷移過去,後者出現問題時我們需要快速定位出來可以引流的新的虛拟網關組,并把流量引導過去。虛拟機的遷移是一個綜合評估體系,作為網絡我們會提供可選的交換機及伺服器給虛拟機排程系統做決策。而虛拟網關的流量遷移是網絡内部閉環的邏輯

【LC3開源峰會網絡技術系列之三】基于JStorm的網絡分析平台

多元度網絡畫像

最後一塊是我們的多元度網絡畫像,它其實有兩部分組層,一部分是實時計算,這裡在JStorm上完成的,另一塊是離線計算,我們基于Max-Compute開發的一些離線分析任務進行最後的多元度網絡畫像。網絡畫像是我們進行網絡産品營運的重要手段。在這個平台裡,我們結合了産品的售賣,資源的消耗,實際的成本以及使用者畫像來幫助我們每個産品做營運上的決策。比如分析使用者的資源部署情況,了解我們和營運商直接的網絡成本使用情況等。

【LC3開源峰會網絡技術系列之三】基于JStorm的網絡分析平台

總結

以上是目前齊天平台所提供的服務,而接下來我們會在智能分析上進一步演進,讓我們更快的了解狀況,更精确得定位原因,更智能的排程流量。

這會讓阿裡雲網絡的變得更聰明,更高效,幫助我們實作讓我們網絡更簡單的使命。

繼續閱讀