01 | 背景介紹
國內(nèi)某大型金融機(jī)構(gòu)通過自建的行業(yè)云為各機(jī)構(gòu)、服務(wù)商和開發(fā)者提供自主可控、安全可信的金融級(jí)云平臺(tái)產(chǎn)品和服務(wù)。在全產(chǎn)業(yè)加速數(shù)字化轉(zhuǎn)型的關(guān)鍵階段,A金融機(jī)構(gòu)為了更好的支持產(chǎn)品創(chuàng)新和業(yè)務(wù)拓展,更快地響應(yīng)客戶和市場(chǎng)的需求,不斷夯實(shí)金融云平臺(tái)技術(shù)底座,保障金融業(yè)務(wù)安全、穩(wěn)定運(yùn)行。
A金融機(jī)構(gòu)本身有著豐富的監(jiān)控手段和強(qiáng)大的技術(shù)能力,在越來越多的金融機(jī)構(gòu)、服務(wù)商將業(yè)務(wù)遷往行業(yè)云后,云上業(yè)務(wù)交互的網(wǎng)絡(luò)訪問關(guān)系復(fù)雜度越來越高,動(dòng)態(tài)性越來越強(qiáng),針對(duì)傳統(tǒng)網(wǎng)絡(luò)監(jiān)控的工具和手段無法移植到云環(huán)境中,使云的運(yùn)營者和云租戶都面臨在新型基礎(chǔ)設(shè)施平臺(tái)下網(wǎng)絡(luò)安全及運(yùn)維難度的嚴(yán)峻考驗(yàn)。在準(zhǔn)備對(duì)云內(nèi)網(wǎng)絡(luò)進(jìn)行系統(tǒng)性的監(jiān)控分析之前,技術(shù)團(tuán)隊(duì)就開始了細(xì)致的需求分析與技術(shù)選型。
02 | 技術(shù)選型
▌ 流量采集方案的選擇
傳統(tǒng)NPM主要應(yīng)用在物理網(wǎng)絡(luò)鏈路上采用鏈路分光、交換機(jī)鏡像(Port Mirroring)等旁路方式對(duì)數(shù)據(jù)包進(jìn)行采集分析,是通過配置交換機(jī)或路由器,將一個(gè)或多個(gè)源端口的數(shù)據(jù)流量轉(zhuǎn)發(fā)到某一個(gè)指定端口來實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的監(jiān)聽。這種流量采集的方案并不能滿足云內(nèi)網(wǎng)絡(luò)流量的采集需求。如果考慮采用虛擬交換機(jī)鏡像通過vSwitch或者OVS配置端口鏡像及混雜模式,確實(shí)能夠獲取一部分虛擬網(wǎng)絡(luò)流量,但是因?yàn)镺VS等虛擬交換機(jī)性能瓶頸、流量管理等方面原因又不能廣泛應(yīng)用。另外,隨著云原生技術(shù)的引入,部署在容器、微服務(wù)上的應(yīng)用加劇了網(wǎng)絡(luò)的復(fù)雜性,但對(duì)容器網(wǎng)絡(luò)、服務(wù)間的流量暫無合適應(yīng)對(duì)的方案。
DeepFlow流量采集(Trident)方案,適用于各種類型資源池網(wǎng)絡(luò),分別支持部署到云平臺(tái)TCE計(jì)算節(jié)點(diǎn)、TKE容器節(jié)點(diǎn)、和裸金屬服務(wù)器上,以實(shí)現(xiàn)多種虛擬網(wǎng)絡(luò)流量的按需采集,其采集性能為tcpdump的10倍,計(jì)算資源消耗可低至運(yùn)行環(huán)境總資源量的1%,輸出遙測(cè)數(shù)據(jù)時(shí)的帶寬消耗可低至業(yè)務(wù)流量的0.01%。
▌ 網(wǎng)絡(luò)分析維度的差異
比起傳統(tǒng)物理網(wǎng)絡(luò)分析以IP為基本視角查看流量數(shù)據(jù)的維度,云網(wǎng)絡(luò)分析需要更加貼合云內(nèi)資源屬性的維度查看流量路徑及指標(biāo),以應(yīng)對(duì)云內(nèi)動(dòng)態(tài)變化的業(yè)務(wù)部署范圍及資源。
▌ 云內(nèi)網(wǎng)絡(luò)鏈路分析的特點(diǎn)
傳統(tǒng)物理網(wǎng)絡(luò)流量分析,是以物理網(wǎng)絡(luò)拓?fù)錇榛A(chǔ),分析物理網(wǎng)絡(luò)上設(shè)備鏈路及網(wǎng)絡(luò)接口的性能指標(biāo)等數(shù)據(jù),網(wǎng)絡(luò)路徑固定,路徑拓?fù)湔宫F(xiàn)方式按照物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)展示即可。
在云網(wǎng)絡(luò)環(huán)境中,邏輯更加抽象,網(wǎng)絡(luò)路徑更加動(dòng)態(tài)復(fù)雜。例如容器業(yè)務(wù)pod之間產(chǎn)生交互,所涉及網(wǎng)絡(luò)節(jié)點(diǎn)包括源端pod接口、源端虛擬機(jī)接口、源端宿主機(jī)接口、vSwitch、網(wǎng)關(guān)宿主機(jī)、網(wǎng)關(guān)虛擬機(jī)、目的端宿主機(jī)、目的端虛擬機(jī)接口、目的端vSwitch、目的端虛擬機(jī)接口、目的端pod接口等,性能分析及故障排查路徑復(fù)雜。
另外在騰訊云網(wǎng)絡(luò)內(nèi)的通信場(chǎng)景更加復(fù)雜,根據(jù)不同資源間通信邏輯有具體的通信規(guī)則,相關(guān)涉及的網(wǎng)關(guān)類型眾多例如:VPCGW、PVGW、NATGW、JNSGW、PCGW、NATGW、MCGW等,各類虛擬網(wǎng)元在各類云內(nèi)網(wǎng)絡(luò)通信場(chǎng)景中,都起到重要作用,也給云內(nèi)網(wǎng)絡(luò)問題的排查提出了更多的挑戰(zhàn)。
03 | 能力定位
面對(duì)云網(wǎng)絡(luò)的“黑盒”,在不干擾生產(chǎn)環(huán)境的前提下需要一套能夠完成流量的全網(wǎng)采集、全景分析和按需分發(fā)的數(shù)據(jù)平臺(tái),建立刻畫云網(wǎng)絡(luò)的全景視圖和運(yùn)維、運(yùn)營、安全管理機(jī)制。幫助A行業(yè)云中心提高運(yùn)維效率,優(yōu)化資源使用率,提升安全性,從而提升行業(yè)云整體服務(wù)的SLA水平。
針對(duì)云網(wǎng)流量規(guī)模大、動(dòng)態(tài)性強(qiáng)、關(guān)聯(lián)關(guān)系多、網(wǎng)絡(luò)路徑復(fù)雜等特殊性,既能夠滿足對(duì)于目前云內(nèi)資源和網(wǎng)絡(luò)的無侵?jǐn)_,又能實(shí)現(xiàn)大規(guī)模流量管理;既能不過多消耗業(yè)務(wù)帶寬資源,又能監(jiān)控到全局的云內(nèi)各類資源各種視角的網(wǎng)絡(luò)流量交互視圖??蛻艚oDeepFlow的能力定位是一套能夠面向云數(shù)據(jù)中心,解決云內(nèi)網(wǎng)絡(luò)監(jiān)控分析難題的網(wǎng)絡(luò)流量分析產(chǎn)品。
04 | 一套面向混合云的全景監(jiān)控平臺(tái)
▌ “四兩可撥千斤”—全棧流量采集器
相比于部署在物理網(wǎng)絡(luò)用于流量分析的重型裝備,云杉流量采集器像是《三體》中描述的質(zhì)子,極簡的部署,極微的體量,卻能捕捉到每個(gè)最小交互單元的流量數(shù)據(jù)包。
全棧流量采集器是DeepFlow平臺(tái)基于云資源池全棧分析理念推出的一款一體化流量采集組件。騰訊全棧專有云包括TKE容器集群與TCE云平臺(tái),從部署形式上全棧流量采集器包含有容器流量采集pod,CVM母機(jī)(宿主機(jī))流量采集軟件進(jìn)程,NFV流量專屬采集器,三種形態(tài)的流量采集器分別采集容器層、虛擬化層、物理服務(wù)器層、NFV層全部流量數(shù)據(jù),并由控制器統(tǒng)一進(jìn)行管理。
云內(nèi)流量分析對(duì)象是成千上萬的業(yè)務(wù)pod、虛擬機(jī),以及他們之間交互形成的又一個(gè)指數(shù)量級(jí)的網(wǎng)絡(luò)路徑,想要把這種體量的流量數(shù)據(jù)包發(fā)送出來再進(jìn)行集中處理計(jì)算顯然不是明智的選擇。這就給流量采集器提出了一個(gè)更加嚴(yán)苛的要求:以極小的資源消耗,保證強(qiáng)大的本地計(jì)算能力。DeepFlow流量采集器在騰訊全棧專有云中進(jìn)行了完美適配,經(jīng)過現(xiàn)場(chǎng)多輪測(cè)試結(jié)果可知:在規(guī)定資源占用的前提下(1C1G),單個(gè)流量采集器計(jì)算處理能力大于10Gbps,這無疑是客戶工程師心中的又一粒定心丸。
從覆蓋范圍上看,這種流量采集器部署實(shí)現(xiàn)了對(duì)整個(gè)A金融行業(yè)云兩地多區(qū)域的的全面覆蓋。這種規(guī)模是在傳統(tǒng)網(wǎng)絡(luò)流量監(jiān)控角度上難以想象的。采集流量范圍更加廣,管理流量的規(guī)模更加龐大,粒度更加精細(xì)化,才能夠適應(yīng)云數(shù)據(jù)中心當(dāng)下的監(jiān)控需求,是新架構(gòu)、新場(chǎng)景下對(duì)于網(wǎng)絡(luò)流量監(jiān)控的必然要求。
部署完成之后,客戶李工長舒一口氣說道:“有了DeepFlow,我們身上的壓力小了很多。沒想到小小的流量采集器有如此的能力,可謂是四兩撥千斤??!”
▌ “怎么才算懂云網(wǎng)” 云網(wǎng)知識(shí)圖譜
怎樣才能準(zhǔn)確的描述一個(gè)云內(nèi)的業(yè)務(wù)?成為了業(yè)務(wù)部門關(guān)心的第一個(gè)問題,難點(diǎn)之一在于如何關(guān)聯(lián)混合云下的流量數(shù)據(jù),從業(yè)務(wù)視角展現(xiàn)全棧(服務(wù)之間從客戶端、容器節(jié)點(diǎn)、宿主機(jī)、網(wǎng)關(guān)到服務(wù)端的全路徑)、全鏈路(業(yè)務(wù)系統(tǒng)的服務(wù)間依賴、資源組間依賴、業(yè)務(wù)間依賴、跨資源池調(diào)用、跨可用區(qū)調(diào)用、跨區(qū)域調(diào)用)的網(wǎng)絡(luò)性能數(shù)據(jù);難點(diǎn)之二在于云環(huán)境固有的規(guī)模性和彈性要求監(jiān)控系統(tǒng)的采集側(cè)、存儲(chǔ)側(cè)、控制側(cè)都需要隨云擴(kuò)展、隨云演進(jìn),以適應(yīng)十萬量級(jí)的云資源規(guī)模及容器、Serverless等新型資源池形態(tài);難點(diǎn)之三在于云資源的物理位置動(dòng)態(tài)性、IP地址動(dòng)態(tài)性和普遍存在的NAT地址翻譯,使得不再能夠通過物理位置或IP地址段切割、標(biāo)記一個(gè)業(yè)務(wù),需要構(gòu)建完整的云網(wǎng)絡(luò)知識(shí)圖譜。
想要解決上述的問題,我們需要了解哪些信息是能夠幫助我們快速理解云網(wǎng)絡(luò)下業(yè)務(wù)網(wǎng)絡(luò)邏輯的:
資源池的維度的信息包括:區(qū)域、可用區(qū)、私有云資源池、容器集群、租戶等。
● 計(jì)算資源維度的信息包括:宿主機(jī)、云服務(wù)器;
● 網(wǎng)絡(luò)服務(wù)維度的信息包括:安全組、NAT網(wǎng)關(guān)、負(fù)載均衡器;
● 存儲(chǔ)資源維度的信息包括:RDS、Redis;
容器應(yīng)用資源維度的信息包括:容器集群、命名空間、容器節(jié)點(diǎn)、Ingress、容器服務(wù)、工作負(fù)載(Deployment、StatefulSet、ReplicationController)、ReplicaSet、容器POD。
網(wǎng)絡(luò)策略配置信息:SDN網(wǎng)絡(luò)控制器上配置的各類各類通信場(chǎng)景下的網(wǎng)絡(luò)規(guī)則,如:LB、NAT、對(duì)等連接等網(wǎng)絡(luò)策略。
DeepFlow實(shí)現(xiàn)了上述資源信息的自動(dòng)同步,并將以上維度的資源信息與流量監(jiān)控?cái)?shù)據(jù)進(jìn)行自動(dòng)關(guān)聯(lián),既幫助我們快速刻畫出云內(nèi)網(wǎng)絡(luò)資源、云上業(yè)務(wù)應(yīng)用,又為進(jìn)一步的網(wǎng)絡(luò)診斷分析、故障定位、資源優(yōu)化等使用場(chǎng)景提供了先決條件。
▌ “運(yùn)維利劍” 全鏈路網(wǎng)絡(luò)性能分析
真實(shí)業(yè)務(wù)場(chǎng)景下,業(yè)務(wù)端點(diǎn)可能分布在云內(nèi)容器集群、虛擬機(jī)、云公共服務(wù)(Redis等)甚至在云外,通信路徑其實(shí)異常復(fù)雜,且不可見。比如:容器的環(huán)境下有大量的LB,LB所做的工作無外乎就是地址映射,包括源端地址、目的端地址的映射。在諸如Node-POD的Service、Ingress或外界有LB設(shè)備提供負(fù)載均衡等復(fù)雜的場(chǎng)景下SNAT和DNAT會(huì)多次發(fā)生,每一次發(fā)生地址轉(zhuǎn)換就意味著可能會(huì)產(chǎn)生網(wǎng)絡(luò)的性能問題。容器應(yīng)用訪問外部虛擬機(jī)、公共服務(wù)、甚至下云,通信路徑上首先是經(jīng)過容器內(nèi)部的地址映射,LB然后是根據(jù)不同通信場(chǎng)景選擇不同的虛擬網(wǎng)關(guān)或其他虛擬網(wǎng)元設(shè)備,然后可能會(huì)跨越物理服務(wù)器的機(jī)架,意味著跨越接入交換機(jī),也可能會(huì)跨越物理網(wǎng)元,比如物理防火墻,安全設(shè)備等。
看似簡單的通信鏈路,卻要?dú)v經(jīng)千山萬壑如果沒有一張繪制精細(xì)的地圖顯然會(huì)讓這一路徑充滿未知的危機(jī)。
為業(yè)務(wù)應(yīng)用提供“貼身保護(hù)”
通過云網(wǎng)知識(shí)圖譜的構(gòu)建,幫助我們了解了整個(gè)云環(huán)境的業(yè)務(wù)資源分布,在容器應(yīng)用部分,自動(dòng)按照service、工作負(fù)載的維度進(jìn)行展示,全自動(dòng)刻畫出容器應(yīng)用互訪關(guān)系,創(chuàng)新性的解決了容器業(yè)務(wù)網(wǎng)絡(luò)的實(shí)時(shí)監(jiān)控分析的難題。無論資源和業(yè)務(wù)如何動(dòng)態(tài)變化,監(jiān)控策略都能實(shí)時(shí)自動(dòng)跟隨。此外包括Service之間訪問的追蹤關(guān)系,在負(fù)載均衡器前后、Service前后IP的變化關(guān)系,真實(shí)源IP與SNAT和DNAT后的變化關(guān)系。這都是為了實(shí)現(xiàn)整個(gè)業(yè)務(wù)的監(jiān)控應(yīng)該去獲取的數(shù)據(jù)?;谄渌馁Y源屬性,通過資源之間服務(wù)依賴(服務(wù)端口通信梳理)發(fā)現(xiàn)能力,梳理資源之間的流量互訪關(guān)系,包括物理部分和虛擬部分進(jìn)行梳理。構(gòu)建一個(gè)云內(nèi)跨資源類型的、動(dòng)態(tài)分布的、規(guī)模龐大的業(yè)務(wù)網(wǎng)絡(luò)全景視圖。
按照業(yè)務(wù)網(wǎng)絡(luò)全景視圖進(jìn)行網(wǎng)絡(luò)性能分析,故障定位,有的放矢的處理來自于不同業(yè)務(wù)部門的反饋,清晰呈現(xiàn)出目標(biāo)業(yè)務(wù)端到端路徑逐跳的性能數(shù)據(jù)?;谶@個(gè)性能數(shù)據(jù),在不同的維度(資源組維度、POD維度、分析維度)做層層的鉆取來最終定位業(yè)務(wù)的性能問題,并進(jìn)行證據(jù)的留存。同時(shí),也可以通過虛擬網(wǎng)絡(luò)邏輯拓?fù)鋪頇z查資源的配置,校驗(yàn)端到端的連通性問題,最后可通過流日志回溯將診斷到的問題數(shù)據(jù)進(jìn)行收集,為業(yè)務(wù)故障提供診斷依據(jù)。
當(dāng)我們?cè)儆龅綐I(yè)務(wù)故障時(shí)不必慌,DeepFlow為全網(wǎng)業(yè)務(wù)提供“貼身保護(hù)”。
在傳輸路徑上“一招制敵”
業(yè)務(wù)維度網(wǎng)絡(luò)全景視圖像是一個(gè)“保鏢”,不管業(yè)務(wù)發(fā)展到哪里,規(guī)模到多大,它都為業(yè)務(wù)提供“貼身保護(hù)”。另外一個(gè)“利劍”則類似于“交警”,他們?cè)诿總€(gè)路口,保障網(wǎng)絡(luò)數(shù)據(jù)包順利的通過每一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)。
全棧混合云環(huán)境下的虛擬網(wǎng)絡(luò)全鏈路追蹤,可以展示在客戶端、客戶端容器節(jié)點(diǎn)、客戶端宿主機(jī)、客戶端網(wǎng)關(guān)宿主機(jī)、客戶端網(wǎng)關(guān)、服務(wù)端網(wǎng)關(guān)、服務(wù)端網(wǎng)關(guān)宿主機(jī)、服務(wù)端宿主機(jī)、服務(wù)端容器節(jié)點(diǎn)、服務(wù)端等關(guān)鍵位置的指標(biāo)數(shù)據(jù),以定位虛擬網(wǎng)絡(luò)端到端路徑上的時(shí)延、丟包、異常等等。
全?;旌显骗h(huán)境下的物理網(wǎng)絡(luò)全鏈路追蹤,展示端到端路徑在物理鏈路、物理網(wǎng)元的指標(biāo)量,以定位物理網(wǎng)絡(luò)端到端路徑上的時(shí)延、丟包、異常等。
針對(duì)復(fù)雜的云網(wǎng)絡(luò)環(huán)境,如騰訊專有云(TCE)中NFV網(wǎng)關(guān)區(qū)流量全路徑追蹤,通過任意四元組信息可以自動(dòng)追蹤一次或多次SNAT、DNAT、FULLNAT前后的流量拓?fù)浜椭鹛溌吠負(fù)?,展示資源之間的NAT流量關(guān)系,包括:容器服務(wù)及后端POD、NAT網(wǎng)關(guān)DNAT策略后端云服務(wù)器或IP、負(fù)載均衡器及后端云服務(wù)器或IP等。
經(jīng)過上述三類路徑上的端到端分析切片,網(wǎng)絡(luò)故障無處遁形,不用再去手動(dòng)計(jì)算復(fù)雜的網(wǎng)絡(luò)時(shí)序包的時(shí)延性能數(shù)據(jù),在全鏈路追蹤視圖中,網(wǎng)絡(luò)端到端路徑中哪里丟了包、哪里時(shí)延大、哪里成為了性能瓶頸,并自動(dòng)計(jì)算差值、百分比等,一目了然。
復(fù)雜路徑下故障排查不緊張,談笑間DeepFlow幫你“一招制敵”!
▌ 行業(yè)云增值服務(wù) 流量功能SaaS化
說起流量服務(wù)、流量分析,很多人甚至用了很多年SaaS服務(wù)的客戶都不會(huì)想到,這種流量分析、流量分發(fā)的能力居然也能用到公有云、行業(yè)云中。我們?cè)贏金融機(jī)構(gòu)行業(yè)云中,就建設(shè)了這樣的SaaS化服務(wù)能力。
在行業(yè)云中,各個(gè)租戶之間的VPC網(wǎng)絡(luò)是完全隔離的,云運(yùn)營團(tuán)隊(duì)想將云網(wǎng)分析、流量分發(fā)等能力以服務(wù)的形式提供給所有租戶使用,需要通過騰訊云TCE運(yùn)營端發(fā)布相關(guān)服務(wù)配置,進(jìn)行服務(wù)發(fā)布。云杉Deepflow平臺(tái)早已完成了與騰訊云TCE產(chǎn)品的深度結(jié)合,通過進(jìn)行一系列配置,例如:全局VPCGW策略配置、調(diào)用AddGlobalRoute、AddService相關(guān)接口、為DeepFlow平臺(tái)添加端口映射、添加平臺(tái)頁面鏈接至運(yùn)營平臺(tái)等操作,完成行業(yè)云中發(fā)布DeepFlow平臺(tái)服務(wù)。
租戶側(cè)可以按照自身需求,自助部署流量采集器軟件,采集和分發(fā)租戶區(qū)域內(nèi)的所需流量數(shù)據(jù)包,并從DeepFlow管理平臺(tái)進(jìn)行分發(fā)策略的管理。在此方案上,既保證了租戶資源隔離查看的權(quán)限,又能快,部署方使用。
自助式網(wǎng)絡(luò)流量數(shù)據(jù)服務(wù)滿足了行業(yè)云上租戶的各類流量需求,補(bǔ)充了行業(yè)云平臺(tái)的運(yùn)營服務(wù)能力,是針對(duì)行業(yè)云租戶流量管理的一次成功實(shí)踐。