1. 程式人生 > >DEVOPS 運維開發系列八:高效管控網際網路頻寬和公網IP地址資源的新姿勢

DEVOPS 運維開發系列八:高效管控網際網路頻寬和公網IP地址資源的新姿勢

事件背景

無論我們使用IDC資料中心、私有云或公有云,網際網路頻寬無疑都是我們會使用到的一類重要資源。一般來說,每段頻寬資源還會附帶提供若干公網IP地址資源,當然了“朱門(美國)酒肉臭,路有凍死骨”呀!咱們國內在使用公網IP時是按個算的,有錢人家是按段算的,曾見過有人在美國拉了一條網際網路寬頻,直接給了一個C段的地址。
既然咱自己的日子不富裕,就更需要把能用的資源儘量管好了,不能丟、不能忘,還得儘可能得複用(NAT埠轉發)!
當然了,另一個原因就是,當然我們的業務系統分佈在國內外十幾處或幾十處IDC或雲資料中心的時候,只能通過資訊化、自動化地技術手段,才能達到高效管理資源資訊、資源使用資訊的目的。
我們下面的就是一個高效管理和控制網際網路頻寬使用資訊,公網IP資源使用資訊,以及NAT埠轉發使用資訊的例子。

需求分析

網際網路頻寬顯然是和特定的一段公網IP資源有直接的關聯關係的。我們在歸納頻寬的管理需求和公網IP的管理需求時,很重要的一個方面就是要能充分得體現出頻寬資源和公網IP資源,甚至於公網IP資源與埠資源間的關聯關係。

網際網路頻寬管理

從實踐中我們歸納下一段網際網路頻寬,至少會包含以下相對重要的屬性資訊。
屬性設計:

  • 名稱【點選後進入公網IP地址資源的列表頁】
  • 運營商
  • 電路編號
  • 頻寬
  • 所屬機房
  • 閘道器
  • 掩碼
  • 起始IP
  • 終止IP
  • DNS
  • 開通時間
  • 狀態【使用中/已下線】
  • 檢視維護日誌
  • 備註

公網IP地址資源管理

雖然我們設計了公網IP地址資源這樣的一個數據表,但該表中資料將主要是由程式自動填充進來。如果有必要的話,管理人員可以手工維護一些備註說明資訊。在刪除一段頻寬記錄時,也會由後臺程式自動地把與之相關的公網IP地址記錄從該表中刪除。
公網IP地址屬性設計:

  • IP地址【根據頻寬定義時的起止IP地址自動計算出】
  • 所屬的網際網路頻寬【外鏈關鍵至頻寬表】
  • 埠資訊【這不是一個屬性,只是要提供一個按鈕,點選後執行檢視該公網IP相關的NAT埠配置資訊列表】
  • 狀態【使用中/空閒,根據獲取到的防火牆配置資訊做自動地識別和狀態展示】
  • 備註

檢視變更日誌

一項資源的配置管理,很重要的一個方面就是資源的生命週期管理。我們希望任何時候都能掌握到這項資源是什麼時間建立、發生過哪些變更以及資源狀態的資訊,即便是資源的下線、銷燬的事件記錄,我們一樣需要保留下來備用。
因此,我們在設計網際網路頻寬管理需求時,為此設計了一個記錄配置變更事件的操作日誌的功能需求。

功能開發

庫表建模

BindWidth表,維護網際網路頻寬資訊
bindwidth table
PublicIPAddress表,維護公網IP資源資訊
public ip address table

功能函式

簡單地講,就是需要為網際網路頻寬資料實現一套增、刪、改、查的功能。
bindwidth view func

在實現bindwidth_add()函式時,執行一個自動填寫公網IP資源表資料的子函式。同時通過呼叫SaltStack Api從使用這段頻寬的防火牆裝置配置資料中檢測出公網IP地址是否活躍的狀態。
get public ip status

WEB頁面展示

網際網路頻寬的列表頁

bindwidth list page

  • 頻寬的增、刪、改操作都放在列表頁中;
  • 點選某一段頻寬的名稱時,會開啟該段頻寬對應的公網IP資源列表頁面,如下圖所示;

檢視公網IP資源的列表頁

public ip address list page

  • 使用綠燈圖標表示當前IP地址的狀態為:使用中;相應的,灰色燈圖標表示該地址暫時沒有被使用;
  • 點選“檢視埠”按鈕時,開啟檢視NAT埠配置資訊的列表頁,顯示某公網IP相關的NAT埠配置資訊,如下圖所示;

檢視NAT埠配置資訊的列表頁

nat list page1
nat list page2

檢視網際網路頻寬的配置變更日誌

在網際網路頻寬的列表頁中,我們點選某一個頻寬記錄的“變更日誌”按鈕,可以瀏覽該資源的一個完整生命週期內的變更事件記錄。
bindwidth change log

[完]