相关文章
友情链接

北京大学周昌令:用"工作流"的思维整合开源软件

  开源网管软件免费、开放源代码、方便定制,很大程度上推动了网络管理系统的发展。伴随着开源世界的蓬勃发展,各种各样的开源网管软件也层出不穷,其中有不少优秀实用的系统,如mrtg、rrdtool、Cacti、Nagios、Rancid等,得到了非常广泛的使用,有的甚至已经成为该类功能的代表作,商业网管软件也借鉴甚至直接使用其功能。不过这些开源网管软件通常是针对某类或某个单一问题产生的,功能专注,而现实的网管工作是一个非常复杂和综合的工作,涉及方方面面很多内容,常要求使用多种不同功能的开源网管软件。如何将这些网管软件有效的结合起来使用,提高工作效率、改进网络管理的效果、促进网络服务质量的提升,并不是一件容易的事情。

  整合各软件是个难题

  把众多功能不同的开源网管软件整合起来以促进网络管理工作,可能是很多网络维护和管理人员的一大梦想。理想中的一套综合网管系统除了要对网络设备和网络服务相关的内容进行维护和处理,包括记录配置变更情况、基本的网络单元管理等,还需要应对很多日常运维的事务性工作,例如系统监测、数据采集以及流量信息的挖掘等,同时还需要在面临特殊事件时能够提供信息支撑,例如面临突发的网络故障、安全事件、审计追踪等。此外,一个好的网管系统平台还应该可以为网络的规划、升级和更新提供参考依据。这样的目标,实际情况距离它还很远。

  传统的网络管理方案中,常常把网络管理涉及的内容划分为五大块:故障管理、性能管理、配置管理、计费管理和安全管理。偶尔也有把网络资产管理也归到网络管理的范畴的。对于商业网管软件而言,这些不同的功能模块通常对应网管系统的一个或多个组件。不同模块或组件之间往往可以通过商业网管软件私有的、一致的协议进行数据交流,从而实现协同工作。用户在使用这样的商业网管系统时会觉得各个模块形成了一个整体,相互关联,便于操作。

  与商业网管软件不一样的是,开源网管软件一般功能单一,通常仅包含一两个模块的功能,有时甚至只专注于实现特定的某个模块的特定功能,如rrdtool就只专注于对时间序列数据的存储和展示功能,Rancid则主要做配置管理。这样,在部署使用开源网管软件系统时,往往就需要结合使用多个系统。由于缺乏像商业软件中的标准或一致的数据交流协议,要整合不同的软件并不是一件容易的事情。不同的开源代码使用平台、开发语言、功能划分、接口定义以及设计理念都有所不同,不同的人开发的代码本身质量也参差不齐,让这些不同的开源代码同时工作起来并不容易,更不要说各种功能之间还要有效的结合起来,形成一个整体。如果还要涉及到功能整合或进行功能再开发时,还会碰到各种其他软件的配置和使用,如gcc、perl、shell等。这样的软件整合目标实际操作起来就很困难。

  现实情况往往就是把许多实现不同功能的网管系统堆砌在一起,形成了所谓的综合网管系统。商业的综合网管系统受人推荐的原因是它们往往自成体系,以及具有良好的软件售后服务;而这样构建的开源网管系统实际是一堆零散的工具,各自为政。做一个类比,商业网管软件就像小时候看过的动画片《变形金刚》里可以合体的机器人一样,每个部件完成一些功能,组合在一起则形成功能更加强大的整体;开源网管软件的集合则像武侠小说里的一群武林高手,各自身怀绝技,却又各自为政,很难形成整体阵营。实际工作中,部署了各种的网管系统后,一线的网管人员往往较少去使用它们,仅当出现问题需要时,才去看看。网管软件的使用率不高,有时候仅为演示而生,缺乏对实际工作的促进。这样的网络管理往往也是被动的,当问题或故障出现后,才会采取措施。

  用“工作流”进行整合

  面对这个问题,如果单纯从软件结合的角度考虑比较难于解决。软件是应需而生的,如果把网管软件的目标定位在提高网络服务的可用性、促进网络管理的效率、减轻一线网管人员工作负担的角度上,不同的网管软件就有了结合的基础。传统的网管系统通常是以设备为中心,围绕设备的管理维护进行工作,以设备正常工作为目标。这个想法本身并没有问题。不过,实际的网络维护和网络管理是由网络管理人员参与的工作,网络所提供的服务最终也是面向用户的。人是这项工作的主体。应该让网络管理这个过程也变得可管理。可以借用“工作流”的思路来帮助完成这种转变:有关网络管理的事件处理按照一定的流程进行,把对流程的处理也纳入网络管理系统的一部分。

 

图1 一个简单的工单流程模式

  举例来说:图1所示是一次典型的故障报修和处理流程。用户通过用户服务中心报告网络故障后,由用户服务人员与技术支持人员沟通,技术人员负责处理故障,如果故障是由设备问题引起的,则维护设备。过程中技术人员与用户服务人员进行必要的沟通,在故障处理过程和处理完成后,应间接或直接将处理结果反馈给用户。整个过程中,事件的处理按照一定的顺序进行。处理过程的不同步骤之间,通过传递消息实现步骤之间的流转。如果把传递消息的过程看做工单的流转,甚至可以简单地把网络管理的流程看成是工单流转的管理。流程的分支和转换可以对应为工单的流转,工单的流转遵从工作流的原则进行,有序可管。这样的一种方式既能促进不同网管人员的协作,还能积累经验和知识,供后期碰到类似情况查询参考。

图2 问题升级策略示例