本发明涉及数据处理技术,具体的讲是一种大型机系统的运行维护方法、装置及系统。
背景技术:
在大型机系统的应用产品开发、测试和生产运行过程中,运行维护人员往往面对着几十套,甚至上百套各种环境(例如:开发环境、测试环境、生产环境等)的运行维护工作,而这些工作往往是一些重复性的流程化的日常操作,比如,应用系统数据库的数据变更,通常有查询、备份、执行、检查、完成通知等步骤。这些工作通常需要在多个环境运行,非常繁琐。
目前主流的运行维护方法有两种:1)人工模式;2)工具模式。人工模式,顾名思义,就是通过纯靠手工一个个环境去实施运维任务,且任务是一个个需要人工提交的作业流,监控运行状态,查看运行结果。这种操作方式,工作量巨大,且全靠手工,存在较大的人为操作风险,且效率低下。工具模式,就是将某一类操作,抽象提炼,通过脚本语言形成工具。这样一来,可以降低人为操作风险,提高工作效率。
现有的运行维护手段还存在较多不足:首先,还是需要登录到一个个环境去执行;其次,工具是针对某个具体任务,不具备扩展性和通用性,任务种类多样时,需要开发出各类工具,开发工作量较大;然后,不同的环境是不同的运行维护人员,为了解决同样的问题,他们会去各自开发功能类似的工具,没有一个平台可以很好的共享知识与经验,复用与优化现有工具。
并且,现有技术中,为保证运行维护的正确性,需要开发人员提供详细的操作说明,且要求运行维护人员具备一定的技术基础。而且,不同的运行维护人员的知识与经验没有一个平台共享,他们开发出来解决问题的运行维护工具,不便复用与提炼优化。
技术实现要素:
为了简化操作人员的技术要求,简化运维操作,提高效率,降低风险,便于管控。本发明实施例提供了一种大型机系统的运行维护方法,方法包括:
接收用户输入的运维操作的任务信息;所述任务信息包括:与待进行的运维操作的各操作步骤对应的子任务基本项信息;
根据所述子任务基本项信息确定待进行的运维操作的任务项目列表;
根据所述任务信息和预先建立的任务基本项规则轮询所述任务项目列表中的子任务基本项以进行运维操作;所述任务基本项规则定义运行对应的程序实现子任务基本项功能。
本发明实施例中,所述的任务信息还包括:待进行的运维操作的产品信息、用户信息、项目信息、环境信息以及流程控制信息。
本发明实施例中,所述的子任务基本项信息包括:子任务基本项名称、子任务基本项说明以及参数选择信息。
本发明实施例中,所述的任务基本项规则涉及的参数包括:子任务基本项名称、实现子任务基本项功能的程序名称、程序所在路径、输入参数以及输出参数。
同时,本发明还提供一种大型机系统的运行维护装置,装置包括:
信息接收模块,用于接收用户输入的运维操作的任务信息;所述任务信息包括:与待进行的运维操作的各操作步骤对应的子任务基本项信息;
列表确定模块,用于根据所述子任务基本项信息确定待进行的运维操作的任务项目列表;
运维模块,用于根据所述任务信息和预先建立的任务基本项规则轮询所述任务项目列表中的子任务基本项以进行运维操作;所述任务基本项规则定义运行对应的程序实现子任务基本项功能。
本发明实施例中,所述的大型机系统的运行维护装置还包括:
存储模块,用于存储所述任务基本项规则。
同时,本发明还提供一种大型机系统的运行维护系统,系统包括:运维终端和运维服务器;其中,
所述的运维终端包括:
信息接收模块,用于接收用户输入的运维操作的任务信息;所述任务信息包括:与待进行的运维操作的各操作步骤对应的子任务基本项信息;
列表确定模块,用于根据所述子任务基本项信息确定待进行的运维操作的任务项目列表;
所述运维服务器包括:
运维模块,用于根据所述任务信息和预先建立的任务基本项规则轮询所述任务项目列表中的子任务基本项以进行运维操作;所述任务基本项规则定义运行对应的程序实现子任务基本项功能。
本发明实施例中,运维服务器还包括:存储模块,用于存储所述任务基本项规则。
本发明提供了一个工具复用平台,可以将集结了不同的运维人员的知识与经验的工具进行展示,且方便其他人复用。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种大型机系统的运行维护方法的流程图;
图2为本发明公开的一种大型机系统的运行维护装置的框图;
图3为本发明公开的运行维护系统的示意图;
图4为本发明实施例中任务执行模块执行运维任务的流程图;
图5为本发明实施例中的前端结构框图;
图6为本实施例中前端运行框架框图;
图7为本发明实施例中的后台框架框图;
图8为本实施例中主控模块的控制逻辑流程图;
图9为本实施例中的ftp获取版本组件的界面图;
图10为本实施例中版本部署任务框图;
图11为本实施例中前后台事件驱动架构框图;
图12为本实施例任务执行的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种大型机系统的运行维护方法,如图1所示,该方法包括:
步骤s101,接收用户输入的运维操作的任务信息;任务信息包括:与待进行的运维操作的各操作步骤对应的子任务基本项信息;
步骤s102,根据子任务基本项信息确定待进行的运维操作的任务项目列表;
步骤s103,根据任务信息和预先建立的任务基本项规则轮询任务项目列表中的子任务基本项以进行运维操作;所述任务基本项规则定义运行对应的程序实现子任务基本项功能。
本发明实施例中,所述的任务信息还包括:待进行的运维操作的产品信息、用户信息、项目信息、环境信息以及流程控制信息。
本发明实施例中,所述的子任务基本项信息包括:子任务基本项名称、子任务基本项说明以及参数选择信息。
本发明实施例中,所述的任务基本项规则涉及的参数包括:子任务基本项名称、实现子任务基本项功能的程序名称、程序所在路径、输入参数以及输出参数。
同时,本发明还提供一种大型机系统的运行维护装置,如图2所示,包括:
信息接收模块201,用于接收用户输入的运维操作的任务信息;所述任务信息包括:与待进行的运维操作的各操作步骤对应的子任务基本项信息;
列表确定模块202,用于根据子任务基本项信息确定待进行的运维操作的任务项目列表;
运维模块203,用于根据任务信息和预先建立的任务基本项规则轮询任务项目列表中的子任务基本项以进行运维操作;任务基本项规则定义运行对应的程序实现子任务基本项功能。
本发明实施例中,所述的大型机系统的运行维护装置还包括:
存储模块204,用于存储所述任务基本项规则。
同时,本发明还提供一种大型机系统的运行维护系统,如图3所示,为实施例公开的运行维护系统的示意图,系统包括:运维终端301和运维服务器302;其中,
所述的运维终端包括:
信息接收模块,用于接收用户输入的运维操作的任务信息;所述任务信息包括:与待进行的运维操作的各操作步骤对应的子任务基本项信息;
列表确定模块,用于根据所述子任务基本项信息确定待进行的运维操作的任务项目列表;
所述运维服务器包括:
运维模块,用于根据所述任务信息和预先建立的任务基本项规则轮询所述任务项目列表中的子任务基本项以进行运维操作;所述任务基本项规则定义运行对应的程序实现子任务基本项功能。
本发明实施例中,运维服务器还包括:存储模块,用于存储所述任务基本项规则。
本发明是一种管理集中、服务分散的运行维护系统,搭建了一个前端模块,前端将一个个日常运维操作抽象成一个个子任务组成的项目,将项目中的子任务按照消息协议抽象成一条条任务消息,并按照项目配置的环境信息将消息发送至对应的后台环境,后台环境接收到消息后,写入任务表,后台主控程序会轮询任务表,执行任务指定的程序,并在完成后更新任务表,主控程序轮询时发现有完成的任务,则按照消息协议组装返回消息返给前端,当所有任务按照既定顺序完成后,整个运维操作也就完成了。本发明的实施方式中,运维人员在一个交互式界面就可以完成所有环境的日常运维操作,而不用登陆到各个环境执行对应的操作;而且这些项目可以一次配置,重复使用,不用运维人员按照操作手册重复操作;再者,组成项目的子任务都是从日常运维操作中提炼出来的基本操作,运维人员只要按照要求配置好参数即可运行,不需要具备主机的技术基础。
下面结合具体的实施例对本发明技术方案做进一步详细说明。
在一个it产品的开发、测试、生产系统的运营中,经常会有很多的运行维护操作,而且这些运维操作是有规律的重复性工作,比如,数据库表的数据变更,该运维操作一般分为三个步骤进行:1)准备待变更表的备份作业,备份数据库表;2)准备数据变更作业,执行数据变更;3)准备检查作业,检查更新结果。这种数据变更,每次执行的流程基本一致,只不过每次变更的表不一样,变更表的sql语句不一样,但是对于运维人员来说,每次都要从头到尾准备一遍,而且维护人员很多且技术能力不一样,不能保证每次执行的正确性与合规性。
本发明实施例中,将运维操作中有规律的操作进行分析提炼,还是以数据变更为例,本发明实施例中,将数据表的备份抽象成一个备份基本项,表名是这个基本项的输入参数;将执行数据变更sql的作业抽象成为一个数据库表更新基本项,数据库更新的sql就是输入参数;将检查更新结果的操作也抽象成检查基本项。然后,约定一个规则,比如“基本项名称|实现这个功能的程序名|程序所在路径|输入参数|输出结果”,这个规则就是本发明一实施例中制定的一个消息协议,具体的消息就是任务消息。协议是双方约定的规则,后台按照这个规则运行对应的程序就可以实现该基本项功能。建立一个项目叫数据变更项目,由上面三个基本项组成,当有数据变更时,启动项目,并按格式要求输入表名、sql,运行该项目,每个步骤实际运行时,就产生了一个任务,三个任务顺序执行完,则完成了一个数据变更需求。这个项目可重复执行,既规范了操作,又降低了效率。而且,这些提炼出来的基本项还可以作为其他项目的组成项,比如,备份基本项可以作为表结构变更的备份步骤。
本发明实施例中,上述的基本项和实现这个基本项功能的程序可以是有映射关系的,在基本项定义的时候就明确这种映射关系。这个基本项被定义到具体项目中作为一个步骤,在实际运行时就是一个个待执行的任务,这个任务执行的程序就是基本项定义的程序。
本发明提供了一个工具复用平台,可以将集结了不同的运维人员的知识与经验的工具进行展示,且方便其他人复用。本发明能够简化操作人员的技术要求,简化运维操作,提高效率,降低风险,便于管控。
本发明实施例中,前端采用java、html语言,基于spring、springmvc、mybatis、bootstrap、jquery等开源框架进行开发,服务器采用tomcat,数据库采用mysql。
后台则是采用cobol、rexx、jcl等语言,运行在z/os系统下,数据库采用db2。前后台通信使用文件传输协议(ftp),其序列化协议则是一套基于文本的自定义协议。
要完成本发明,要完成的基本工作包括:
前端架构设计:从性能、可用性、伸缩性、扩展性、安全这五个要素方面综合考虑,设计前端的整体架构,包括开发语言、开发框架、数据库设计等。
前端应用设计:前端应用应该能够支持多环境、不用应用产品的运维要求,且运维操作可灵活配置,可复用。运维操作属于软件产品顺利运作的基石,因此,运行操作可以进行用户分层、权限控制,并且运行操作可追溯、可审计。
事件驱动架构设计:设计合适的前后台通信方式,使得前后台解耦,弱化前后台之间的彼此影响,增强各自的独立存在能力,可以无限降低存在的耦合度,但不能根除,否则就失去了彼此的关联,失去了存在的意义。简单来说,如果前端宕机了,后台也能完成相应的任务,便于应对各种用户需求。
后台架构设计:后台模块运行在大型机平台上,选择合适的开发语言与中间件完成搭建后台框架。
后台应用设计:本发明实施例的后台应用主要包括两块内容:a)任务执行模块,负责运维任务的执行;b)基本操作,从日常运维工作中,提炼出可复用的参数化基本操作并选择合适的语言实现。
如图4所示,为本实施例中任务执行模块执行运维任务的流程图,本实施例中任务有三个状态:e,r,w;其中,e为end,任务结束状态;r为run,任务正在运行;w为wait,任务等待运行。
本实施例的系统包含前端、后台两大模块。前端作为集中的控制平台,包括交互式界面、产品管理、用户管理、基本项管理、项目管理、环境管理、流程控制等模块。
产品管理,主要用于配置不同产品,实现产品层面的分层,包括产品名称、产品描述。
用户管理,主要用于配置不同用户,包括用户名称、用户说明、用于级别、所属产品,用于级别又包括普通用户、高级用户、管理员。
基本项管理,基本项对应后台提炼出来的通用组件,后续在项目管理中以步骤为维度进行组合实现某种运维任务。包括基本项名称、基本项说明、参数选择。
项目管理,主要用于配置项目所涉及到的所有作业。包括项目名称、项目说明、项目步骤。项目步骤又包括项目名称等。
环境管理,主要用于配置真正可执行的部署项目。包括环境名称、环境说明、绑定产品、绑定项目、绑定工具参数。实现了产品、参数、项目的复用。
流程控制,以上功能都只是用于配置,真正把作业提交给主机是在流程控制模块,通过选择不同的环境进行不同的项目,通过流程控制模块完成项目下的各个步骤按要求执行。
整个前端是一个有机的组合,各个模块之间相互联系与制约实现既定任务,如图5所示为本实施例中前端运行结构框图。
本实施例的后台是分布式的,可以是不同的主机系统,后台主要包括提供任务控制调度的主控模块和提供基础应用服务的通用组件等(见图6)。
本实施例中主控模块,负责接收前端上送的任务,然后解释为后台具体的通用组件,调度执行相应并返回执行结果给前端。
如图8所示,为本实施例中主控模块的控制逻辑流程图。
本实施例中通用组件,是从日常运维任务中总结提炼出来的原子任务,具有可复用性,比如,ftp获取版本组件,图9所示为本实施例中的ftp获取版本组件的界面图。通过各种通用组件的有机组合,可以实现具体的运维任务,比如,简单的版本部署任务,见图10。
本实施例中,前后台之间采用事件驱动架构。所有运维操作集中到前端执行,通过事件驱动架构,将任务发送到分布式的后台执行,每一个后台即一个环境,如图11所示为本实施例中前后台事件驱动架构框图。
本实施例功能的实现,可以分为两块:基础设置与任务执行。
基础设置按照从零开始使用的流程,分为以下步骤:
1.用户设置:通过用户管理模块进行用户设置,默认只有一个管理员用户,为便于分层管理,对于某个具体使用方来说,先要设定一个产品用户;
2.产品设置:通过管理员用户建立某一个具体产品;
3.环境设置:通过管理员或产品用户建立某一个产品下的某一个具体环境;
4.基本项设置:根据后台提供的通用组件的参数信息,在前端建立与之对应的基本项。
5.项目设置:按照运维任务需求,选取合适的基本项进行有机组合,最终组成可实现任务目标的项目。
6.任务实例:建立一个可重复执行的实例,关联一个对应的项目。通过输入不同的参数,该实例可完成某一个产品下的某一个环境的具体任务。
完成以上设置,就可以执行具体任务了,图12为本实施例任务执行的流程图,任务执行具体步骤如下:
步骤1,运行某个具体任务时,因为任务是属于某个环境下的,所以,自动获取产品信息、环境信息等任务基本信息,然后,输入具体要执行的任务信息,比如,版本部署任务,就输入要部署的版本号等信息;
步骤2,任务执行的实际上是关联的某一个项目,这个项目是有着执行顺序的一堆步骤,这些步骤就是一个个基本项,按照执行顺序逐个执行各个基本项;
步骤3,将待执行的基本项的各项参数加上任务基本信息组织成任务信息,并发送至后台;
步骤4,监控后台返回队列,如成功返回则继续下一步骤,如失败返回或返回超时,则结束任务;
步骤5,重复执行步骤2-步骤4,直至所有步骤执行完成或出错退出。
本实施例提供的运维装置与方法,可以实现:
1)集中式运维,免去了多点运维的麻烦;
2)组件式服务,可以按需组合形成多样的任务;
3)工具可复用,减少重复工作;
4)自动化运维,提高工作效率;
5)参数化执行,降低操作风险;
6)工具共享平台,运维人员可将自己在运维过程中积累的工具,提炼出来,在平台上创立基本项和项目,便于知识共享与软件复用。
同时,本发明还公开一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述计算机程序时实现本实施例所公开的运行维护方法。
本发明还公开一种计算机可读存储介质,计算机可读存储介质存储有执行的本实施例所公开的运行维护方法计算机程序。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。