數據就是資源,就是財富,現如今,隨著數據的激增,越來越的互聯網企業(yè)意識到建設自己的數據中心對自身業(yè)務的發(fā)展是多么的重要,因此越來越多的企業(yè)建設數據中心。 京東在2017 年最大的一個變化就是,很多獨立的業(yè)務部署了自己的數據中心,京東大規(guī)模數據中心就是監(jiān)控之眼,監(jiān)控著京東的“一舉一動”。
網絡,相當于是互聯網服務的神經系統(tǒng)和循環(huán)系統(tǒng)。監(jiān)控,是網絡運維團隊了解網絡服務的眼睛。
隨著網絡規(guī)模的高速發(fā)展、運維技術與理念的演進,網絡監(jiān)控已不滿足于簡單地掌握網絡設備的運行狀態(tài)、流量、延時和丟包。
如何準確地表現出服務的可用性、快速發(fā)現問題和定位問題,提高手工運維和自動化運維效率是迫切的需求和挑戰(zhàn)。
本文分四個部分介紹京東網絡團隊在監(jiān)控方向的一些思考和實踐:
京東網絡現狀。
監(jiān)控設計思考。
京東監(jiān)控實踐。
網絡監(jiān)控展望。
我們可以從數據量表上來看京東的業(yè)務增長,下面是京東的一張覆蓋了 2014 年 618 到 2017 年 618 所有的出口和專線的數據流量的圖表。藍色是專線 DCI,紅色是互聯網的公網流量。
從上圖中,大家可以看到 2017 年 618 的 DCI 流量增長非常非常快;對比上一年,它已經翻了將近一倍,主要的原因是大數據和一些后臺的日志分析等系統(tǒng)占了很大比例的流量。
2017 年最大的一個變化就是很多獨立的業(yè)務部署了自己的數據中心,而以前京東的各個業(yè)務混雜到一起。
不同的業(yè)務出現了自己的數據中心,說明了不同的業(yè)務對網絡的一些硬件和結構、性能和品質有了不同要求。
而以前(特指在 2013 年和 2014 年期間)京東是僅僅來解決基本的通訊問題,比如:帶寬或者簡單基礎的硬件可靠性問題。
網絡架構的持續(xù)優(yōu)化
在網絡架構的持續(xù)優(yōu)化上實際有很多小的細節(jié)優(yōu)化,但是抽象出來的只有四個方面進行了持續(xù)的投入。
全國骨干網結構升級
對于全國骨干網來說,京東在很長一段時間內是部署在北方地區(qū)也就是北京,而 CDN 卻是部署在全國;中后期在廣州也部署了一些核心的節(jié)點,以及部分海外節(jié)點。
但是,當時并沒有形成一個整體全國性的傳輸網絡。今年,我們完成了改造的最重要的第一階段:啟動了在北京、上海、廣州三地雙平面的全國 100G 傳輸網絡平臺,目前處于建設初期。
互聯網接入層建設改造
互聯網接入層主要是自建 BGP,解決的是互聯網質量的業(yè)務體驗問題,而我們沒辦法簡單通過單線、第三方互聯網解決。
在方案的設計過程中還發(fā)生了一些細節(jié)的變化,比如說:城域網從原來的四核心改為雙核心結構,所有的數據中心都會雙接到這兩個核心上,這樣結構簡單、流量易于調度,在管理、自動化、可視等各個方面都有優(yōu)勢。
在未來我們想達到這樣一個理想效果,當南北運營商網絡出現大面積網絡異常的時候,我們在純粹路由的層面完成業(yè)務切換。
DCN 二層到三層的改造
我們最近一年半最痛苦的問題是網絡規(guī)模太大了,現在一個網絡里面至少 10 個 POD,有大量的服務器和 Docker,當前架構下設備的性能、穩(wěn)定性達到了上限。
網絡設備不能簡單地關注端口密度、帶寬容量、電源容量等,還要考慮 ARP、路由等各類表項資源,它們都是影響系統(tǒng)的重要因素。
在二層網絡里我們做一次網絡核心的故障處理,從故障狀態(tài)到可用狀態(tài)整個過程大概經歷了五六個小時以上而且是兩天完成,整個過程就像拆彈一樣,操作復雜且有極高風險。
所以我們后來在運維、基礎架構上列了幾個規(guī)矩:
網絡可以做到可以在 10 分鐘內完成應急案處理。
部分網絡損失不對網絡造成致命傷害。
結構要非常簡單,具備較好的可擴展性、可運維性。
提高網絡割接的可靠性
網絡主要有運維和建設兩個方向。過去一年半里,京東網絡團隊有 60% 以上的精力消耗到建設上,因為發(fā)展太快了。已發(fā)生的夜間割接,2016 年 300 多次、2017 上半年超過 300 次。
為了確保網絡操作的可靠性,我們建立了標準化的 SOP 操作文檔、技術方案審核、雙人操作等多種機制。并且,我們已在推動自動化工具逐步替代手工操作。
網絡環(huán)境愈發(fā)嚴峻
除上述的問題外,如今的網絡環(huán)境也愈發(fā)嚴峻。目前的網絡規(guī)模越來越大,變更次數越來越高,業(yè)務場景越來越復雜。比如:上面我們提到過的為業(yè)務特別樹立的一個獨立的數據中心,就會出現特有的故障。
另外網絡抖動問題會越發(fā)明顯,通常這抖動網絡上不易感知,而應用系統(tǒng)或用戶對抖動問題卻很敏感。
從做事情的角度,從提供良好服務的角度,我們應該分析到底原因是什么,該怎樣解決、誰來解決。
運維工作量和效率也是非常大的挑戰(zhàn),例如:業(yè)務方提出 500 臺服務器的從單網卡改為雙網卡的 Bond,同期發(fā)生幾起不易定位原因的故障需要分析排查,每件工作都是對運維力量的劇烈消耗。
當人員大量消耗在這些事務性工作上的時候就沒辦法做好架構優(yōu)化、改進的工作了。從團隊利用率上來說,我們的工作效率實際上是下降了的。
大家看上面這張圖,這是 2016 年部分時期的可用性統(tǒng)計指標。圖中有幾個結果很差的互聯網可用性,通常是有一些故障和問題導致的,這些問題大量的消耗了我們的運維資源,是我們最優(yōu)先要去解決的問題。
業(yè)務要求日益增高
之前業(yè)務要求相對簡單,帶寬不夠則盡量做成 1:1 收斂比,設備可靠性不夠則增加冗余,容量不夠則擴大規(guī)模。
現在業(yè)務對超大規(guī)模數據中心、超大路由表項、低延時、25G/40G 差異化接入都提出了更高的要求。
特別是網絡的穩(wěn)定性,網絡團隊需要更全面、精細的感知網絡,快速發(fā)現和定位問題,減少重復問題的發(fā)生,制定有效的應急預案,確保高水準的網絡可用性。
另外,業(yè)務希望獲得更多的網絡信息和數據,以幫助業(yè)務進行更好的部署、管理和調度。例如及時準確的主機 IP 網絡接入位置信息、流量和網絡質量信息等,需要網絡團隊開放更多的 API 和功能支持上層應用。
最后,網絡排障和問題分析,是各個業(yè)務團隊的常規(guī)需求,要么是網絡運維團隊協助排障,要么是開發(fā)出友好的工具提供給業(yè)務自助完成,顯然后者是良性發(fā)展的必然選擇。
監(jiān)控設計思考
明確監(jiān)控目標
明確監(jiān)控目標的幾個關鍵性步驟:
首先,“網絡是不是好的”,核心是定義“好”的標準。
其次,要準確感知到網絡異常,關鍵是做到對網絡核心監(jiān)控項準確監(jiān)控。
最后,要快速定性問題并觸發(fā)應對措施,核心是決策機制,確定嚴重程度、影響面。
定義網絡“好”的標準
什么是網絡“好”的標準?用戶覺得好才是真的好。
網絡工程師在面對問題時的本能是排查分析問題的原因、嘗試修復故障,往往眼里只有網絡設備、功能協議的運行情況,異常狀態(tài)和現象,而忽視了網絡服務的核心是滿足業(yè)務的聯通性需要。
當網絡規(guī)模到了一定程度之后,一兩條鏈路或幾臺設備的好與壞說明不了整體網絡服務是不是好的問題。
網絡團隊要站在更高的層面,脫離只關注白盒、只關注網絡設備的思維,從用戶視角看網絡服務情況。
找到感知網絡的有效方法
知道什么是好網絡,我們就要搞定感知網絡,就要模擬用戶的視角,做黑盒監(jiān)控。
京東網絡團隊在 2016 年下半年開始在黑盒監(jiān)控方向走的比較快,進行了大量的實踐和嘗試。黑盒監(jiān)控本質上還是白盒,但需要改變思維方式。
例如:交換機板卡重啟僅僅是導致網絡抖動的原因之一,用戶視角看到的是網絡抖動,在處理邏輯上要先定性網絡出現了抖動再定位是什么原因引起的。
另外,在做網絡核心項監(jiān)控時,要抓大放小,不要什么都想一步做好,把最常見的、最嚴重的故障優(yōu)先識別出來,首先解決核心問題。
網絡異常處理的預案與決策機制
網絡異常主要有兩類:
依靠網絡自身的健壯性,可以自愈或承受的,往往這種僅降低網絡的健康度、增加了不可用的風險;這類異常不是我們關注的重點。
明顯影響了網絡局部或全部服務的可用性,但又沒有導致網絡服務中斷或完全不可用,只能通過人工干預來執(zhí)行應急預案的異常事件;這種問題才是最關鍵的、需要及時處理的。
網絡監(jiān)控到底要做什么
這是一個簡單的總結,網絡監(jiān)控要干什么?隨著監(jiān)控的深入,我們發(fā)現想象的網絡質量跟我們主觀實際測到的確實不一樣。
監(jiān)控要看啥呢?故障可用性、健康度、交付質量,就是一個新的網絡建設完以后,這部署立刻部署上、完成驗收、操作的影響。我們做一個專線切換真的就是平滑的嗎?我們下線板卡沒有影響嗎?
但是因為沒有數據我們以為是好的、還有運行狀態(tài)。做好以上這些才是網絡監(jiān)控要做的事情。
(原標題:京東大規(guī)模數據中心網絡運維監(jiān)控之眼)