本发明涉及互联网运行维护技术领域,具体涉及一种运维可视化自动化作业平台及实现方法。
背景技术:
运维是负责互联网科技公司的业务生产系统的运行维护工作,而对于运维本身的核心价值就是系统运行的长期稳定,限制变更发生次数越少越好,而业界数据表明故障发生概率超过70%都是来自于业务系统本身的变更导致,所以管理变更是运维工作的重中之重。
因此要确保每次变更计划的整个生命周期都在运维掌控范围内,其包括:变更窗口、具体操作内容、变更环节的各个角色、过程和实时输出、状态反馈以及风险控制等。
互联网行业竞争发展迅猛,每家公司的系统几乎是天天都在迭代更新,周周发布到日日变更,运维人员的工作强度非常大,如果一直是在手工劳作,除效率低下外,团队内每一个人的经验和能力不同,处理手段也会有差异,不能形成标准更容易引发人为事故,给公司和个人带来不必要的损失。
技术实现要素:
本发涉及运维变更作业的管理和执行,更适合业务和应用层面维护人员使用,解决了现有技术存在的下列两个技术问题:
1、在变更实施的过程中运维可以掌控每一个环节的详细内容,并能依据风险判断作出人工干预,让整个周期的操作透明化,数据可视化。
2、将简单和重复的工作变成自动化流程作业。
本发明采用的技术方案是:
一种运维可视化自动化作业平台,包括任务处理模块和接口控制模块;
任务处理模块包括组件、任务和任务组;一个任务组包括至少一个任务,任务组控制组内的每一个任务的执行过程以及执行过程中的任务入口参数传递;一个任务包括至少一个顺序执行的组件,任务控制每个组件的执行,并将前一个组件的组件输出参数传递给下一个组件;
接口控制模块包括请求接收接口、执行接口、消息推送接口、日志接口和状态处理接口;请求接收接口获取任务组执行的名称和参数,创建任务组数据并生成任务组id,将任务组数据存储到存储db,并将任务组id推送到消息队列中;执行接口实时从消息队列中取出任务组id;状态处理接口与执行接口和消息推送接口连接,记录任务组执行过程中的执行状态变化;消息推送接口接收执行接口发送过来的执行日志,同时推送消息更新信息到消息队列中;日志接口取出消息队列中的日志,并实时推送到web控制台中。
一种运维可视化自动化作业平台实现方法,包括作业平台变更操作,作业平台变更操作包括任务处理模块操作和接口控制模块操作,任务处理模块包括组件、任务和任务组,接口控制模块包括请求接收接口、执行接口、消息推送接口、日志接口和状态处理接口;
任务处理模块操作具体步骤如下:
编写作业平台变更操作所需要的原子操作集;
组件封装n个变更所要执行的原子操作集,n至少为1;
任务将m个组件进行编排,m至少为1;
任务组执行任务,并将任务组执行的名称和参数发送到请求接收接口;
接口控制模块操作具体步骤如下:
请求接收接口获取任务组执行的名称和参数,并发送到执行接口;
执行接口执行、重试或者暂定原子操作,并发送到状态处理接口,同时将执行日志发送到消息推送接口;
状态处理接口记录任务组执行过程中的执行状态变化,并将状态信息推送到消息推送接口;
消息推送接口接收状态处理接口推送的状态信息和执行接口发送的执行日志,同时推送消息更新信息到消息队列中;
日志接口取出消息队列中的日志,并将任务状态进行实时展示。
进一步地,所述任务状态通过web控制台进行实时展示,一个任务组包括至少一个任务,一个任务包括至少一个组件,每一个组件在web控制台中有一个下拉按钮,通过web控制台查看任务的进度和需要执行的组件,通过下拉按钮查看组件执行的日志情况。
进一步地,所述原子操作集为指令或者脚本。
进一步地,任务将m个组件按顺序或者并发方式进行编排。
一种公司内部it服务管理自动化平台对接方法,包括以下步骤:
将公司服务管理中产生的变更编辑成任务组;
用户发起服务流程请求;
接口控制模块处理服务流程请求;
触发任务组;
完成服务作业任务推送消息;
完成服务流程。
一种监控中心故障监控自动化平台对接方法,包括以下步骤:
将常见故障编辑成任务组;
监控中心发出告警信息;
接口控制模块处理告警信息;
监控中心建立事件,自动触发任务组执行任务;
完成告警处理推送信息;
监控中心告警恢复。
一种运维云资源管理自动化平台对接方法,包括以下步骤:
将运维云资源管控和变更编辑成任务组;
请求运维云资源服务;
接口控制模块处理运维云资源服务请求;
通过运维云资源接口触发任务组;
完成运维云资源处理推送消息;
完成运维云资源服务。
本发明的有益效果如下:
1、解决就了运维变更管理的痛点,确保在变更实施的过程中运维可以掌控每一个环节的详细内容,并能依据风险判断作出人工干预,让整个周期的操作透明化,数据可视化。
2、通过标准操作规范变更保障每一个人的工作被快速替代,大大提供了运维变更管理的效率。
附图说明
图1是任务处理模块结构图。
图2是接口控制模块结构图。
图3是运维可视化作业平台变更流程图。
图4是服务管理自动化平台对接方法流程图。
图5是监控中心故障监控自动化平台对接方法流程图。
图6是运维云资源管理自动化平台对接方法流程图。
图7是作业平台可视化示意图。
图8是应用发布的任务具体过程示意图。
图9是日志执行情况示意图。
具体实施方式
下文中,结合附图和实施例对本发明作进一步阐述。
图1为本发明任务处理模块结构图,包括组件、任务、任务组三个功能模块。各个功能模块说明如下:
组件:用于封装特定的运维操作,比如一个脚本、或者一次接口调用,每个组件只负责一次单一的操作过程;组件的组成部分如下:
组件id,全局唯一;
组件所属任务id,全局唯一,用于关联任务;
组件状态:特定关键字
组件内容:执行所述组件的实体,如果组件是类型是调用脚本,则内容就是脚本本身;
组件输出参数:标记所述组件执行后需要导出的变量参数,用于后续组件执行;
组件执行模块:执行并通过管道方式存储执行日志,更新执行状态;
组件分类:在程序设计中,可以将组件划分如下几类(如表1所示,非必须,用户依据设计可自行扩展)。
表1组件分类
任务:用于创建组件执行流,一个任务包含多个顺序执行的组件,任务控制每个组件的执行,并且将前一个组件的执行结果(组件输出参数)传递给下一个组件,除此之外,任务还可以控制后续组件的执行、暂停等操作,当其中一个组件执行错误,组件状态会直接返回至任务。
任务的组成部分如下:
任务id,全局唯一,用于关联任务组及组件;
任务所属任务组,用于关联任务组;
组件索引:一组顺序排列的组件id,用于关联多个组件的执行;
任务入口参数:用于接收并发送任务中第一个调用组件所需要的参数;
任务执行模块:用于控制组件执行,更新任务状态。
任务组:将多个任务组织在一起构成一个任务组,任务组根据预设的执行策略,对任务进行分组执行,任务组控制组内的每一个任务的执行过程以及执行过程中的入口参数传递。
任务组的组成部分如下:
任务组id:全局唯一,用于关联任务;
任务索引:一组包含在所述任务组中的任务id列表;
任务组执行策略:控制任务并发执行策略;
任务组入口参数:用于接收并创建任务,任务组可根据获取到的参数,生成对应的任务。
任务组执行模块:用于控制任务执行,更新任务组状态。
图2是本发明接口控制模块结构图,包括请求接收接口2、状态处理接口7、执行接口4、消息推送接口5、日志接口6等模块。
接口控制模块包括请求接收接口2、执行接口4、消息推送接口5、日志接口6和状态处理接口7;请求接收接口2获取任务组执行的名称和参数,创建任务组数据并生成任务组id,将任务组数据存储到存储db8,并将任务组id推送到消息队列3中;执行接口4实时从消息队列3中取出任务组id;状态处理接口7与执行接口4和消息推送接口5连接,记录任务组执行过程中的执行状态变化;消息推送接口5接收执行接口4发送过来的执行日志,同时推送消息更新信息到消息队列3中;日志接口6取出消息队列3中的日志,并实时推送到web控制台1中。
图3是运维作业平台的变更流程图,从图中可知,运维作业平台变更操作包括任务处理模块操作和接口控制模块操作。
编写作业平台变更操作所需要的指令或者脚本等原子操作集;
任务将m个组件按顺序或者并发方式进行编排,m至少为1;
请求接收接口2获取任务组执行的名称和参数,并发送到执行接口4;
执行接口4执行、重试或者暂定原子操作,并发送到状态处理接口7,同时将执行日志发送到消息推送接口5;
状态处理接口7记录任务组执行过程中的执行状态变化,并将状态信息推送到消息推送接口5;
消息推送接口5接收状态处理接口7推送的状态信息和执行接口4发送的执行日志,同时推送消息更新信息到消息队列3中;
日志接口6取出消息队列3中的日志,并将任务状态进行实时展示。
接口控制模块和任务处理模块是本发明最重要的两个功能模块。
通过任务处理模块,技术维护人员可以把指令和脚本编写的能力在web控制台上完成和存储,并实现实现版本化管理,从而是每一位维护人员的命令和脚本透明化,即操作内容可被审计和复用,也使日常工作变成指令或者脚本集固化下来,这些脚本集通过任务设计被封装成组件直到任务组,通过控制任务组,实现不同操作之间的关联与衔接,并按预先设定的规则执行,使之可以被串联执行或者并发执行。这些任务组被多次验证和改进后,将会变成维护工作中的一项专题事务,可以被安排定期或者在某一条件被满足的情况下触发执行,在一定程度上实现半自动或者全自动操作的系统行为,减少人为干预,最终达成提升运维效率。
实施例一,公司内部it服务管理自动化平台对接方法。
规范化与公司内部平台对接,只要涉及到对公司业务系统会产生任何变更,包括对于业务数据的增删改查、程序的持续集成等都可以变成标准的作业任务组操作,任务组强大的策略功能可以使流程适应多种需求场景。对接公司内部的it服务管理平台如图4所示,步骤如下:
实施例二,监控中心故障监控自动化平台对接方法。
实施例三,运维云资源管理自动化平台对接方法。
同样的运维作业平台作为基础工具可以连接一切需要操作业务系统的场景,使之更标准、更合规、更高效。
实施例四,运维作业平台可视化。
任务组设计为提供了任务编排的能力结合web平台可以事先编辑好任务计划,通过web平台实现运维作业平台的可视化,具体如图7所示。
本发明优选通过python语言开发编写,并运行于linux系统,对于计算机硬件没有特殊要求。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。