当前位置:首页 期刊杂志

业务支撑应急切换管理系统的构建

时间:2024-08-31

邵桂伟 王敏秋 李 磊

(1.合肥学院 数学与物理系,安徽 合肥 230601;2.一汽轿车股份有限公司 质量保证部市场质量分析与促进室,吉林 长春 130012)

0 引言

业务支撑系统对健壮性、稳定性和持续性运行的要求非常高,大部分业务支撑系统或其子系统都配备了应急系统[1-4],以备在生产系统发生故障的情况下来临时替代工作。从生产系统切换到应急系统需要满足一定的条件,并需要一个切换过程。及时地发现系统故障并由系统自动快速切换到应急系统,可以将故障的影响面减少到最小。但是如果不能及时发现故障并实现应急系统快速切换,即使配备的应急系统再强大也无济于事。

目前,应急管理系统在不同行业中有所应用。很多行业的生产系统中设置了应急模块[5-10],通过实际应用及反馈发现这些模块的响应速度比较慢,不能在很短的时间内对突发情况进行响应并处理;有的应急模块仅仅能起到警报作用,不能对突发情况进行处理,同时警报后,原有的生产系统处于暂停状态,直到警报处理完成或者人为操作才能恢复至正常工作状态。这些问题在一定程度上影响了工作效率和服务质量。因此,如何由系统自动判定是否满足应急系统切换条件,如何实现快速切换,甚至是无缝切换,这是亟待解决的问题。

1 应急管理系统的必要性

通过对历史故障案例[11-12]分析表明,不难发现绝大部分重大故障都是由于中间件、数据库的不可用或性能下降导致,当然,导致不可用或性能下降的原因可能是网络问题、主机硬件问题、存储问题或应用程序性能等,但表象大都是中间件或数据库的不可用问题,要么是拒绝访问,要么是访问速度特别慢。出现这些问题时,可能需要将正式的生产系统切换至应急系统,以保证生产业务不间断,不影响用户感知。

本研究开发的应急切换管理系统[13]拟解决业务支撑系统中应急系统的快速切换,在最短的时间内将系统切换至应急系统,将故障的影响面降至最低;同时,收集中间件和数据库的可用性和性能数据,对系统的性能趋势进行分析预警,防患于未然。

2 实现方案及关键技术

2.1 系统功能架构

业务支撑应急切换管理系统由五大模块组成,分别为任务管理模块、监控对象管理模块、切换条件管理模块、应急系统开关管理模块、系统主动探测模块,系统功能模块图如图1所示。其中各模块功能如下:

图1 系统功能模块图

切换条件管理模块:配置每个应急系统的切换条件,一般是被监控对象组、可用性、响应时间的组合。例如应急系统A满足以下任意一个条件则需进行应急系统切换:(1)中间件B不可用;(2)中间件B连续三次响应时间超过10秒;(3)数据库C不可用;(4)数据库C连续三次查询响应时间小于10秒。

应急系统开关管理模块:保存各个应急系统开关,通过开关打开或关闭实现向应急系统发送切换指令,实现应急系统的切换过程。

系统主动探测模块:实现对监控对象的主动探测功能。例如通过调用指定的服务实现对中间件的探测,通过查询指定表的数据实现对数据库的探测等。

2.2 系统实现方案

2.2.1 系统建设

业务支撑应急切换管理系统规模小,运行时需要的系统资源较少,可以部署在生产环境网络的任意一台主机上而不影响原有主机上的应用,只要管理系统管理的开关信息可以被各个生产系统和应急系统访问即可,例如开关信息可以存放到指定的数据库上,或者通过SOCKET通信或FTP文件方式推送到各生产系统或应急系统;各生产系统或应急系统通过轮询应急开关实现应急系统切换。

业务支撑应急切换管理系统的核心模块是系统主动探测模块,如何设计对象探测逻辑和探测过程是本系统成败的关键。假设对某数据库进行主动探测,当连续N轮探测不可用时,需要切换到应急系统;连续M轮探测可用时,需要将应急系统切换至生产系统。

系统的处理步骤如下:

(1)初始化成功计数器为M+1,失败计数器为0;

(2)检测数据库判断是否可用,若可用,成功计数器值增1,失败计数器值清0;否则失败计数器值增1;

(3)判断成功计数器的值,若为M,则转步骤5;

(4)判断失败计数器的值,若值为N,则转步骤6;

(5)关闭应急开关,切回生产系统,跳转至步骤2;

(6)打开应急开关,切换到应急系统,成功计数器清0,跳转至步骤2。

数据库主动探测[11]可采用TNSPING命令和连接数据库进行SQL语句查询两种方法相结合使用,探测的效率和准确率都比较高;中间件主动探测则可采用调用服务的方式进行探测。将各类探测对象的结果数据汇总,按照一定的逻辑判定,即可实现由系统自动完成应急系统的切换过程。系统探测处理流程图如图2所示。

2.2.2 技术实现

本系统采用C语言结合shell脚本实现。利用C语言强大的系统调用和对信号量处理的方便性,以及C语言较高的程序执行效率,来实现应急切换管理系统的主动探测模块;利用shell脚本移植的方便性和开发的简单性来实现对主动探测逻辑的封装。

(1)主动探测模块实现的中间件、数据库的可用性探测,由C语言实现。使用C语言的时钟设置功能和信号量传送机制,规避在对中间件、数据库的探测过程中的无限等待或等待超时、等待返回时间过长问题,实现在任意指定的时间内如果被探测对象无任何返回,则主动探测程序自身中断探测并抛出超时信息。

(2)Shell脚本具有移植方便性,在各类UNIX系统间移植基本无需改动。对数据库主动探测逻辑封装示例如图3所示:

3 系统实施及实验结果分析

3.1 系统实施

XX通信公司在集团公司的指导下,自2017年6月份开始启动了应急切换系统,实施主动业务探测,并于2017年9月份完成系统部署,目前已实现了PUK码查询、实时话费查询、客户信息查询、客户资料变更、强制停开机、换卡、换卡回滚、用户信息查询、用户资料变更、积分查询、缴费、缴费回滚、详单查询、账单查询、帐户信息查询、帐户资料变更共计16类重点业务的主动业务探测监控。手机支付应急接口系统和应急切换管理系统组网结构如图4所示。

省一级接口系统通过应急开关的状态来决定走正常缴费流程还是应急缴费流程。应急开关关闭,则走正常的缴费流程,调用手机支付缴费接口系统;应急开关打开,走手机支付缴费应急接口系统。应急切换管理系统对三个方面进行主动探测:手机支付缴费接口应用系统的可用性和性能、中间件服务器的可用性和性能、数据库服务器的可用性和性能。对于这探测的三个方面,在开关关闭情况下,任何一方面连续三次不可用或响应时间超过10秒则将应急开关打开,实现自动切换到应急系统;在开关打开情况下,三方面探测全部连续10次可用且响应时间均小于10秒,则将应急开关关闭,实现自动切回正常生产系统。主动探测流程从任务定制开始,到探测结束大致经历7个步骤,如图5所示。

图2 应急切换管理系统主动探测逻辑示意图

图3 数据库主动探测示例

图4 手机支付应急接口应用系统和应急切换管理系统组网结构

(1)首先定制探测任务,如一个查询任务等。任务定制完成后,需要配置任务的调度起始时间和每次调度的间隔时间;

(2)作业调度模块扫描到有待执行的任务后,将任务进行加载执行;

(3)任务执行过程中,调用业务探测接口模拟终端向被探测系统发起业务请求,与被探测系统进行交互完成业务办理过程;

(4)日志记录模块和探测数据记录模块在业务探测接口与被探测系统交互过程,对相关的日志和数据进行记录;

(5)当一个任务调用业务探测接口与被探测系统交互完毕后,日志记录模块和探测数据记录模块会将相关数据送给数据处理模块,进行数据格式化和筛选过滤,并将处理后的数据送给数据展示模块和告警模块;

(6)数据展示模块将功能可用性指标和性能指标以报表形式进行展示;

(7)告警模块根据探测结果数据决定是否进行告警,如果有业务探测失败,或者有业务耗时过长,则进行告警。

3.2 实验结果及分析

图5 主动探测过程图示

一轮主动探测任务结束后,会得到一组数据,该组数据包含了任务执行过程中是否出错的信息和任务执行的各个环节所消耗的时间信息;数据处理即是完成对此数据的分析和展示的过程。通过探测结果数据处理,可以得到两个指标,一个是此业务的功能指标,如图6所示,即功能是否正常;另一个是此业务的性能指标,如图7所示。

图6 主动业务探测功能指标

图7 主动业务探测性能指标

在性能指标(图7)中,系统记录每半个小时各个业务环节所消耗的时间,即此业务办理所消耗的时间。灰色区域数字代表探测的时间点,如0030,0点30分。黄色区域为具体的业务办理时间(单位:秒)。当系统探测到某些业务功能不可用时,或某些业务办理性能与上次相比下降明显,或与配置的阈值相差较大,则会触发警告。相关人员接收到警告,则进行对应维护处理。

自本系统上线至今,已累计进行故障预警12次,其中6次预警经排查后确认系统存在重大故障隐患,使得故障隐患得到及时排除,确保了系统的安全稳定运行,提升了业务支撑系统的服务质量。各类主动探测数据如表1所示。

表1 主动探测告警情况表

4 系统评价

研究开发的应急切换管理系统在系统功能方面具有独特优势:

(1)实现了应急系统的被动切换向主动切换的转变。管理系统实时主动探测被监控对象,记录主动探测过程中各种可用性和性能数据,并自动对记录的功能和性能数据进行分析,一旦发现异常即产生告警信息,并可自动切换至应急系统。

(2)实现了应急系统由人工慢速切换向系统自动快速切换方式的转变。业务支持应急切换管理系统利用主动探测功能,可在第一时间获取系统的各类数据,可在故障产生的第一时间内将生产系统切换到应急系统,甚至实现无缝切换。

(3)对现有系统零改造、零影响。业务支持应急切换管理系统对现有系统完全解耦,是相对独立的系统,无需对业务支撑系统进行任何改造;另一方面,管理系统对对象的探测不是压力测试,作为单用户操作不增加系统压力,对现有系统不产生任何影响,全流程自动化,无需人工干预。

对比于原有业务支撑系统的应急功能,本文开发的应急切换管理系统能够实现系统或设备故障的自动发现及告警;在出现问题时,可以自动切换到应急系统;能够预测预警系统或设备的性能或故障趋势,同时将故障带来的影响将至最低。该业务支撑应急切换管理系统规模小,运行时需要的系统资源较少,可以部署在生产环境网络的任意一台主机上而不影响原有主机上的应用。但同时要求管理系统管理的开关信息可以被各个生产系统和应急系统访问。

5 结语

论文在分析了传统的应急系统的弊端后,创新性的开发了一个实用的应急切换管理系统。该系统能够解决传统的应急系统滞后性问题,实现了系统或设备故障的自动发现及告警、应急系统的自动切换和倒回、系统或设备的性能或故障趋势预测预警,同时该系统实现成本低,可以有效缩短应急系统的切换时间,减少或消除因系统故障带来的负面影响并将此影响度将至最低。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!