APP下载

基于W eb应用框架构建集约化统一维护平台

2013-05-15中国电信股份有限公司江苏省分公司企业信息化部肖宝林

江苏通信 2013年5期
关键词:脚本代码文档

中国电信股份有限公司江苏省分公司企业信息化部 李 彧 肖宝林

0 引言

近年来,随着IT规划的纵深演进、专业细分、系统进化、配套完备,信息化建设投资规模持续增长,电信运营商客户关系管理(CRM)专业领域所涵括的项目、系统、设备水涨船高。与此同时,IT(信息技术)系统运维支撑因缺乏行之有效的工具手段,或多或少存在故障难定位、质量难保证、数据难维护、知识难共享、新人上手难、自动化欠缺等方面的问题。

某省某电信运营商在省市一体集约化运营思想指导下,尝试集成一系列高性能的开源框架构建CRM专业领域核心生产系统——业务支撑系统(BSS)的统一维护平台。正如项目研发明确提供标准的集成开发环境(IDE),对应系统运维支撑也应明确提供标准的统一维护平台(UMP),从而能有助于实现运维支撑高度的集中化、自动化、标准化和专业化。

1 基于开源的平台架构

统一维护平台整合Web服务器Nginx、Web应用框架Rails、分布式文档数据库mongoDB(数据库),实施各层负载均衡(f5实现网络负载均衡、Web服务器和数据库均集群部署),支持多样化的客户端浏览器类型(谷歌、火狐),作为任务调度引擎的脚本运行器隔离维护终端直连生产数据库、可配置数据源及解析执行数据库连接访问,其体系架构如图1所示,相对于以往应用系统的传统的重量级架构而言,它集轻量级、先进性和前沿性于一体。

1.1 Web开发框架Rails

Rubyon Rails,简称Rails,是一个使用Ruby语言编写的Web应用开发框架,编码量更少但又完成超过其他任何语言和框架所做的工作[1]。Rails的核心是MVC(模型、视图、控制器)架构,能从用户界面剥离业务逻辑,易于使代码不做重复的事,明确指出使得不同类型的代码维护起来更容易的适用场合。

谈到Rails不能不提及Ruby。Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby体现了表达的一致性和简单性,其不仅是一门编程语言,更是表达想法的一种简练方式[1]。

由于使用Rails框架,统一维护平台所有的维护脚本使用简化的Ruby语言编写,支持中文命名,基本接近自然语言,大幅减少SQL(结构化查询语言)的使用,便于学习与维护。

1.2 分布式文档数据库mongo DB

一个NoSQL(非关系型数据库)提供了一个简洁、轻量级的数据存储和检索的机制,许多作者将之称为“notonly SQL”是由于数据存储一般不使用“SQL”方式存储数据[2]。NoSQL数据库往往高度优化检索和附加操作;除以松散的一致性存储记录外(如键值存储),其提供的功能往往很少。相对于较完全的SQL数据库而言,其通过降低实时灵活性来补偿某些数据模型使其可扩展性和性能得以显著提高。

mongoDB(源于“humongous”,字面意为堆积如山),是当前NoSQL数据库中较热门的一种,乃是一个高性能的、开源的、无模式的文档型数据库[3]。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,除具高性能外,还有易部署、易使用、存储数据非常方便等特点。

统一维护平台利用mongoDB搭建NoSQL数据库,并集群部署,用于存储维护脚本及脚本运行记录。

1.3 任务调度引擎

信息安全基线要求个人维护终端禁止直连生产数据库,因此维护终端访问生产库是通过扎口作为中介的任务调度引擎来实现的。调度引擎支持数据源的灵活可配置,解析脚本并在对应的正确的数据库中运行,其运行机制如图2所示。

2 平台主要特性

在设计之初,我们就确定了维护脚本最基本的几个特性:一、能以最少的代码做最多的事;二、很好的可读性与可维护性;三、尽量减少对数据库的依赖;四、具有全面超越SQL的功能与扩展性。从这几个特性出发,我们考察了多种语言,最终选择了Ruby作为脚本语言的基础。同时Rails所具有的强大灵活,使得统一维护平台呈现了别具一格的崭新特性。

2.1 基于Ruby的定制化维护脚本

BSS统一维护平台的维护脚本从本质上来说就是一段以Ruby语言为基础,以Rails框架为运行环境,以BSS等生产数据库为基本操作目标的代码文本。维护脚本整体上包含脚本属性、文档与代码3个部分。

脚本代码从整体上最多分为下列5个代码段:定义参数、定义方法、准备、执行、清理。这5个代码段除“执行”段外,其他代码段为可选。每个代码均以“代码段名称do”开始至对应的“end”结束。不同的代码有不同的用途,不能重复。脚本代码结构示意如下:

定义参数do

参数:id,:integer,name:“地区编号”

end

脚本的代码要求使用Ruby语言编写。与常规Ruby程序不同的是,脚本代码需遵循固定的格式,并具有许多附加限制。同时,平台提供了各类自定义的API(应用程序接口),并引入了许多扩展功能库,对底层功能进行了大量的封装。因此比普通Ruby程序具有更多贴近维护工作的功能。可视为平台专用的领域特定语言(DSL)。

2.2 清新简洁的平台特性

统一维护平台在采用Rails后,编写新的应用程序和增加新功能变得更加容易。新增功能开发效率高,在线部署不影响生产,其主要特性如表1所示。

?

3 应用效果分析

统一维护平台于2012年8月试点上线成功,接着利用2012年10月、11月两个月时间在全省推广,至2012年12月初,共完成205个手工维护脚本,迁移114个数据库后台定时任务,共运行123961次,成功处理120661笔异常。平台上线后,对维护工作的总体状况和维护人员的工作状态等方面带来了明显的提升。

3.1 提高运营维护工作质量

统一维护平台极大地提升了维护工作,具体表现如下:首先,提供了常见异常的统一处理入口。维护人员能快速处理各子系统的障碍,能更好地安排AB角(两个人一组,当一方因公外出,由另一方顶岗)及日常值班工作,有效地提高了新人的上手速度。其次,平台脚本远超过PL/SQL(过程化SQL)的表达能力,提供了更高层次的维护手段,全面促进了维护工作的自动化与标准化。再其次,通过平台对脚本安全性的检查和预防,极大地减少了维护过程中误操作的可能性。此外,还提供了完善的日志及数据备份方案,方便事后的审计与恢复。

3.2 提升维护人员状态士气

平台在全省推广上线后,维护人员通过熟悉磨合,掌握维护脚本的开发后,将本地日常处理故障异常的维护脚本和生产数据库后台定时任务迁移至平台,逐步从繁杂事务处理中解脱出来,工作积极性得到极大激发,在诸多方面有了较大改观,效果如表2所示。

?

4 展望

统一维护平台作为强有力的“后勤”,接管BSS大部分的运维支撑工作,达到并超过了早期技术验证的目标。现在已平稳运行数月。随着应用的深入,维护人员提出了更多的改进意见,各级管理人员也寄予较高期望。因此,统一维护平台的发展方向值得思考如下:建设成多系统综合维护平台,可为承接运营支撑系统(OSS)等的维护做准备;实现以平台成为基础的一线人员异常处理工具,如嵌入原系统、脚本可见性控制、时间段控制;提供外部系统集成能力,对外提供调用接口;增强维护文档的管理功能,增加提问与解答的互动机制,全省共享机制,对维护文档/脚本可以打分并发表评论等。

5 结论

某省某电信运营商基于开源Web开发框架Rails,构建BSS的集约化运营统一维护平台,平台上线后,BSS故障异常的维护效率得到提升,维护工作量化透明,初步实现了维护方案集中管理、维护知识库全省共享、维护质量可管控有保障,阻断个人维护终端直连生产数据库,保障系统数据安全,同时推动了故障管理、问题管理、知识管理等维护流程规范化。

[1]WhatisRails?.[EB/OL].[2013-05-28].http://guides.rubyonrails.org/getting_started.html.

[2]NoSQL.[EB/OL].[2013-05-28].http://en.wikipedia.org/wiki/NoSQL.

[3]MongoDB.[EB/OL].[2013-05-28].http://zh.wikipedia.org/zh/MongoDB.◆

猜你喜欢

脚本代码文档
酒驾
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
安奇奇与小cool 龙(第二回)
创世代码
创世代码
创世代码
创世代码
快乐假期
Word文档 高效分合有高招