分布式網路配置管理架構

2021-08-20 10:26:01 字數 1937 閱讀 8550

該方案基於b/s(browser/server)架構設計,一共由五部分組成:

web 端負責配置資訊的輸入和展示,例如各種隧道,介面,路由,鏈路頻寬的配置資訊管理。

服務端負責接收使用者的配置請求,並將任務下發到目標裝置上。

訊息佇列負責將配置訊息下發給目標裝置,並將目標裝置返回的結果傳遞給服務端。選用訊息佇列的原因是,當前網路環境複雜,網路傳輸的可靠性不高,如果採用長連線的方式,很可能導致配置資訊不可達,造成目標裝置和服務端的配置不一致。

資料庫負責儲存配置資訊,及配置狀態。為了保證資料庫的高可用,採用了主從方式。

在目標伺服器上,裝有agent端,負責獲取來自訊息佇列的配置指令,並執行,執行以後,將執行結果返回給訊息對列。該agent可以支援雲主機集群和物理裝置集群。為了防止單點故障,使用zookeeper管理agent集群,在一台裝置出現故障,不能繼續服務時,選舉新的agent,為整個集群繼續提供服務。

接下來介紹下整個集群的工作流程:

使用者首先在web控制台上配置目標裝置;

服務端將配置資訊儲存在資料庫中,並設定狀態為待下發;

服務端輪詢資料庫,檢視是否有待下發的任務;

將待下發的任務下發給訊息佇列,然後訊息佇列將任務傳遞給由zookeeper 管理的集群;

集群中的agent接收到任務後,執行相應操作,並返回執行狀態/結果;

服務端收到底層agent反饋的訊息後,更新資料庫;

前端web查詢資料庫,將最新狀態展示給使用者。

現網的情況異常複雜,所以異常處理必不可少。

解決目標伺服器集群單點故障的問題。如果某台裝置宕機,zookeeper立即選舉新的agent,agent會向服務端反饋,從而觸發配置轉移。以專線配置為例,假設a,b 為一條隧道的兩端,配置轉移的過程是:如果a出現異常,將a裝置的配置全部一次性轉移到新裝置a1上,並將b端和原有a端有對應關係的配置更新。

通過資料庫的主從架構,來解決資料庫單點故障的問題。

解決目標裝置不支援某些指令的問題。如果訊息下發到底層以後,目標裝置上的條件不允許,不支援該操作,agent會將資訊反饋到服務端,並提示給使用者。

解決由於某些原因造成底層配置和服務端不一致的問題。有兩種方式:

1) 通過後台程式定期(時間間隔可配置,例如10s)收集底層目標裝置所有需要關注的配置資訊(需要關注的範圍是使用者在前端對該裝置所做的所有配置),收集上來之後,和資料庫中該裝置的配置作對比,所有配置以資料庫為準,資料庫中沒有,底層存在的,執行刪除操作,資料庫中有而底層沒有的,執行配置操作。

2) 可以通過web端的強制對齊配置按鈕,強制同步資料庫和目標裝置的配置,流程同第一種。

為了更加直觀的介紹本工具,下面通過乙個例子進行展示,

以在兩個不同資料中心的裝置上配置專線為例:

第一步,配置網路裝置。在頁面配置資料中心中物理裝置的公網ip位址,介面名稱等資訊。每個資料中心可以配置多個物理裝置。

第二步,配置專線。在兩個資料中心間搭建專線,實際上是在兩台物理裝置上搭建專線。選擇資料中心,自定義兩端的ip位址及掩碼,如有設定頻寬的需求,則指定專線頻寬。

第三步,任務下發。系統會將配置指令下發到兩台裝置上,底層agent接收到指令後,按照指令內容配置專線。數秒後,即可以看到專線狀態變為執行中。

其他類似配置,例如建立虛擬介面,配置介面ip,新增路由等,都可以通過類似方式實現。

物理裝置的配置管理指令繁多,操作複雜,耗費了運維人員不小的精力。希望通過本工具,能夠幫助運維人員將紛繁複雜的網路配置簡化成在web端即可進行控制和檢查的操作,使運維人員從機械勞動中解放出來,更加專注於業務本身。

分布式配置管理

antelope 專案描述 基於 zookeeper 的分布式配置管理平台,實現對業務系統的環境變數進行統一的配置與管理。專案特點 1.資料結構為 key value,採用發布 訂閱模式,服務端主動推送資料變更。2.採用 spring xml 配置進行應用整合,使用方便,無 侵入。3.採用 spi ...

分布式配置管理平台 Disconf介紹

disconf專注於各種分布式系統配置管理的通用元件 通用平台,提供統一的配置管理服務。一 功能特點 配置異構系統管理 極簡的使用方式 註解式程式設計 或 xml無 侵入模式 我們追求的是極簡的 使用者程式設計體驗良好的程式設計方式。目前支援兩種開發模式 基於xml配置或者基於註解,即可完成複雜的配...

分布式網路架構

mysql中介軟體 atlas是由 qihoo 360,web平台部基礎架構團隊開發維護的乙個基於mysql協議的資料中間層專案。它是在mysql proxy 0.8.2版本的基礎上,對其進行了優化,增加了一些新的功能特性。360內部使用atlas執行的mysql業務,每天承載的讀寫請求數達幾十億條...