CDN系統在日常運營過程中,經常會進行變更,比如配置變更、系統升級等等,一臺機器上可能會部署較多的服務,或者存放較多的配置。每一個細小的變更可能影響到多個服務,甚至看似不相連的服務之間也會相互影響。然后由于線上環境非常復雜,要定位到具體的變更是非常困難的。需要到各個CDN相關的系統去查看當時是否有變更操作,甚至需要登錄到某些機器上去查詢是否有人員做了配置變更,或者誤操作等。定位問題是非常困難的。變更可視化系統的目的在于幫助線上運營人員快速查找線上發生的變更操作,并將操作可視化出來,方便運維人員進行分析,從而快速找到線上問題發生的根因,快速解決問題,提升運營效率。
整個系統的架構圖如下圖,由五大模塊組成:

查詢模塊:該模塊提供給運維人員填寫想要查詢變更的內容,可選擇一個查詢的時間點,可查詢的內容支持兩種場景查詢,一種是服務器場景查詢(可通過查詢vip獲取所有vip下的rip數據),可查詢該服務器上操作的所有變更,也可查詢所關心類型的變更,比如具體的分頻道變更、證書變更、全局配置變更、容器變更等,另外一種查詢場景是域名配置變更,可查詢該域名相關的所有變更,也可查詢所關心類型的變更,比如覆蓋變更記錄、域名配置變更、域名證書變更記錄、域名部署記錄、域名刷新記錄等。查詢模塊還可以以某種指標為基礎,比如服務器的帶寬,請求數,狀態碼或者域名的帶寬,請求數,狀態碼等作為基礎的繪制趨勢圖,方便查看在發生變更的時候,帶寬/請求數/狀態碼的一個變化。模塊展示如下圖所示。


中心控制模塊:該模塊收到查詢模塊的信息后,根據查詢的內容,調用不同的變更類型的查詢方法,查詢不同的支持系統的數據,比如對于服務器日志查詢、證書變更查詢、全局配置變更查詢、分頻道變更查詢,通過調用部署在服務器上的telegraf的接口查詢文件信息,比如對于容器變更通過查詢容器平臺暴露的接口查詢服務器的變更信息,比如對于域名配置變更,通過查詢配置平臺提供的接口獲取域名配置變更的信息。該模塊還會查詢基礎數據模塊,獲取帶寬,請求數,狀態碼等指標。該模塊也會自動查詢服務器的信息(包括對應的主機組、資源分組、節點信息、省份運營商等)和域名對應的(客戶信息,vip等級,所屬產品等),如果查詢的服務器IP是vip,那么該模塊會自動關聯出對應rip,查詢出rip對應的變更配置和指標數據。該模塊支持配置化擴展查詢變更信息,如果需要接入其他支撐系統查詢變更信息,只需要在數據字典中增加要接入的系統的接口信息即可。
支撐系統模塊:該模塊由公司其他變更系統組成,提供變更數據的查詢,包括日志平臺,容器平臺,配置平臺等系統。
基礎數據模塊:該模塊由監控系統采集的實時數據組成,包含帶寬數據,請求數數據,狀態碼數據等。
數據展示模塊:該模塊把控制中心查詢到的數據展示出來,對于服務器查詢,展示的數據主要包括主機組、資源分組、節點信息、省份運營商,以及指標數據,變更信息等,如下圖一所示。對于域名查詢,展示的數據主要包括客戶信息,vip等級,所屬產品,以及指標數據,變更信息等,如下圖二所示。鼠標移動到具體的變更信息上,點擊下方可以懸浮該信息的具體詳細內容,方便對比查看。如果查詢的是vip,那么會把相關的rip展示成一個個tab,可以選擇不同tab進行切換查看。

圖上向上的箭頭表示這個時刻有出現變更

圖上向上的箭頭表示這個時刻有出現變更。