驅動阿裏雲的高性能網絡引擎- 飛天洛神
大家都知道阿裏雲部件的系統都是以神仙命名的,比如說洛神、伏羲、盤古、女媧等等。而在11月15日的GNTC 雲專場峰會上,阿裏雲資深網絡技術專家宗誌剛先生首先分享了“驅動阿裏雲的高性能網絡引擎- 飛天洛神”主題演講。洛神是阿裏雲飛天系統的虛擬網絡系統核心,提供了阿裏雲豐富的網絡產品同時也是阿裏雲所有雲產品的網絡基礎設施。洛神也支撐了阿裏巴巴集團和螞蟻金服集團的業務。此分論壇深度探尋了洛神系統關鍵技術能力及未來應用方向。
以下為大家帶來宗誌剛專家精彩的演講摘要:
起名洛神的來由是因為在古代,河流是人們非常重要的一個交通方式,就好比網絡一樣是人類生活工作通訊重要的組成方式,所以阿裏雲網絡在剛剛成立的時候,就起了洛神這個名稱。洛神現在管理阿裏雲的基礎網絡系統已經非常的龐大,到目前為止已經有19個Region,20T的總出口帶寬以及超過200條的BGP線路,而且不斷在增長。另外阿裏雲推出了業界最豐富的網絡產品,從部署的位置來看可以分成四個組成部分:
雲上網絡(洛神):如VPC、NAT網關、負載均衡這些網源,以及要大力發展的IPv6的網絡
雲間網絡(織女):GEN雲企業網、GA全球加速
上雲網絡(嫦娥):高速通道、×××網關還有智能接入網關
阿裏雲的網絡架構跟以上的網絡產品是一一對應的,而洛神實際上是代表了雲上網絡。從以下企業上雲的路線以及企業的一個IT架構的變化來看一看雲對網絡的要求是哪一些。雲進化的路線圖分幾個階段:
第一階段,企業會將部分IT系統雲化,主要是提升用戶體驗,提升運維效率。
第二階段,企業會將基礎資源全面雲化,主要用於優化企業IT資源的利用率。
第三階段,企業會進行架構的微服務化改造,構建以中臺為核心的業務架構,共享企業之間的各業務模塊,快速構建自己的業務系統,主要用於提高IT的敏捷能力
對應阿裏雲的系統架構轉變,最開始的時候業務都是應用和數據一體化的單機部署方式,到後面應用和數據分層、多級分層部署,再到分布式的集群,以及到現在越來越應用廣泛的微服務化的改造,在這個過程中可以看到應用和應用之間,應用和數據之間彈性越來越高。
進入雲以後,企業的業務在雲上是可以看到網絡的,所以最基本的要求是網絡首先要提供各種網關類的服務,其次還需要提供跟業務相匹配的彈性能力、安全、可靠性以及高效的運維。
另外是阿裏雲認為未來企業在雲上的時候其實對基礎設施將不再可見,將看不到所謂的計算、存儲、網絡等等各種服務,只需要在雲上的生態系統裏面按需獲取自己所獲取的前臺、中臺稍微進行改造生成自己的生態系統。在這個階段阿裏雲認為最終的用戶將對網絡不可見,這正是洛神系統最終的使命。
阿裏雲網絡產品推進的時間點跟企業上雲的系統基本上保持一致的。最開始只是提供AVS、SLB這些單實例,到後面因為基礎實例上雲了之後需要雲上和雲下的高速通道,專線以及智能接入網關,到後面資源的力度越來越細,分布的範圍越來越廣,阿裏雲提供了比如說全球加速、雲企業網,通過企業架構在雲上不停的演進,阿裏雲網絡還將繼續推進各種滿足客戶服務,各種業務系統的網絡產品。
接下來介紹阿裏雲網絡洛神系統的關鍵技術。三個關鍵詞:彈性、可靠和智能。
彈性:有兩個重要數字,第一個是秒級的轉發性能的彈性擴展。洛神可以支持轉發帶寬從1兆到1個T在1秒以內可以彈性擴張。另外一個是容量的彈性能力,目前10萬太的單網絡內ECS規模。
而阿裏雲有這樣的彈性擴展能力,主要有兩個原因:
數據面:目前洛神系統包括X86、FPGA、ASIC,在轉發面可以支持多種方式,但不同的轉發技術及不同的轉發產品如何應用在不同的場景裏面?到目前為止大部分的網關網源類產品主要還是用X86軟轉發,但是後面會逐漸到智能網卡上面去。另外對於一些大帶寬,同時帶寬訴求不確定的應用場景,例如阿裏雲一些VRP客戶訪問存儲這一塊帶寬要求非常的高,而且也不確定。這樣的話阿裏雲會專門部署ASIC的芯片提升客戶的能力。通過這麽多的轉發技術洛神形成了龐大的轉發的資源池,用於快速提升轉發性能的訴求。
管控面:洛神管理著一個非常龐大的網絡系統,所以使用傳統的集中式單點的控制面肯定沒辦法滿足要求,所以整個洛神系統一方面控制面是區別層次化的,另外一方面很重要的是在下發轉發表面的時候采用的是緩沖的機制,例如虛擬機之內的表象生成,通過數據面通過緩存自發學習到表象,通過數據面學習到的表象而不是通過控制面一一下發的,這樣表現的深層效率、深層速度將遠遠超過集中式的這樣方式。通過這種方式可以快速的去讓計算節點上線或者是下線。
可靠性:去年阿裏雲所有的網絡實例故障是50毫秒,還不計算 vSwitch的網絡情況下得到的結果,這是一個很短的時間。
談到可靠,跨機房多活是最基本的要求,對於洛神來講它的關鍵節點包
括控制器,包括各種網關,一方面是集群化部署,另外一方面在每一個機房基本上都會部署,節點與節點之間,機房與機房之間會互相備份,當某一個故障洛神會在集群內倒換,如果超過了一定的值會在機房倒換,避免因為單一的一個點或者一個集群故障造成整個網絡的不可用。這個實際上是一個跨機房多活的方式。
跟大家介紹一下洛神的故障快速發現染色系統,這個系統會對特定的流
進行染色並且加以匹配,作用於阿裏雲虛擬網絡和物理網絡上面。在整個設備的運行過程中會對特定的業務,特定的流染色進行景象采樣,打時間搓等等,會進行數據的實時分析。通過數據的實時分析快速發現特定的流的故障,比如說丟包了,立即通知網絡管理人員恢復故障,這是我跟我們現在IT的思維基本上一致的,但是阿裏雲的洛神平臺主要是從客戶的業務出發。
智能性:其實智能與可靠性是密切相關的,因為通過智能監控、智能運維、智能故障恢復,可以有效降低故障的時間。
提到智能,就必須介紹阿裏雲基於大數據的智能運維平臺,在阿裏雲內部叫齊天系統,通過數據面、控制面的各種數據收集,例如流數據、統計數據等等用戶信息,收集到大數據的分析工具(JStorm)裏面去對數據進行分類,我們分為基礎數據、監控數據和診斷數據,對這些數據進行規則的匹配、運算,會將分析結果輸送到各個界面,比如說報警、API、機器人等等,對於一些故障會進行故障隔離恢復,思路是差不多的。
介紹幾個現在正在使用的場景案例:
變更的案例:大家都知道線上很多的問題都是因為網絡的變更導致的,怎麽樣降低變更時對業務的影響,阿裏雲一般會選取業務量最小的對客戶影響最小的時間點去進行變更。那怎麽選擇時間點以往會通過人工的方式,這樣的話一方面工作量大,另外一方面其實也不精準,對業務的影響是不可知的。阿裏雲的齊天平臺可以通過大數據的分析,精準描繪用戶網源的畫像,選擇業務量最小的時間點進行自動的變更。這樣的話大大降低了影響業務運行的概率。另外很多時候要選擇版本上線的時間進行恢復,很多的時候難以判斷哪一些機房跟網源。利用大數據分析和齊天系統可以判斷哪些先進行可以對業務的影響最小,這也是基於智能平臺去做的,所以在網絡變更的情況下可以達到對業務的影響很小,而且都是自動化完成的。
異常的檢測:齊天會對多種策略異常檢測,並且用到線上去,在實際的運行過程中判斷這些策略是否異常存在並首先告警,其次會進行快速的逃逸過程。整個過程其實並不容易,因為要對全局全景進行判斷,到底是屏蔽電路還是屏蔽結點還是整機房的倒換,要根據業務場景做綜合判斷才可以得出。實際上在阿裏雲的網絡上運行時候正是齊天系統可以綜合判斷及決策,什麽樣的故障逃逸對業務的影響是最小的。
看一下洛神的應用情況。截止當前整個阿裏雲的網絡規模已經非常的龐大,對於虛擬網源來講已經有百萬級的網絡設備,千萬級的網絡實例,並且監控著超過一千多個的網絡指標進行一些大數據的分析。當然對於運行壓力最大的肯定還是雙十一這樣的場景。今年雙十一的數據還沒有完全得到。峰值的交易筆數達到了32.5萬,單一的負載均衡實例帶寬達到了160G,而且現在所有的阿裏的業務都是運行在阿裏雲的洛神系統上的,已經都是VPC網絡上面的一個業務了。
最後總結洛神的使命,洛神有三代,第一經典網絡,主要是解決連通性的問題,第二代推出了VPC的網絡用於安全隔離,當前是第三代,打通了接入雲的解決方案,提供跟傳統企業網絡相同能力的能力,最後一個階段阿裏雲定義為Networkless,最終的網絡對最終用戶其實是不可見的,就像阿裏雲網絡的名稱— 洛神,其實他像神一樣你看不到他的存在,其實他也無處不在。
驅動阿裏雲的高性能網絡引擎- 飛天洛神