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

[完]

猜你喜欢

转载自blog.csdn.net/watermelonbig/article/details/83312984