本申请提供了一种适用于私有云平台的运维任务流引擎的实现方法、设备及计算机可读介质,该方案提供了一套完整的对运维操作开发调用执行的框架定义规范以及框架执行调度工具,实现了在私有云平台中的自动化运行框架,以及快速拓展复用的运维开发规范。在框架侧保证了运维操作的步骤强制约束,并且在业务侧也方便了运维人员对于组合复杂运维场景的快速开发封装,提高了运维自动化的水平以及减少运维自动化开发的时间。动化开发的时间。动化开发的时间。
【技术实现步骤摘要】
运维任务流引擎的实现方法、设备及计算机可读介质
[0001]本申请涉及信息
,尤其涉及一种用于适用于私有云平台的运维任务流引擎的实现方法、设备及计算机可读介质。
技术介绍
[0002]私有云(Private Cloud)是为一个组织单独使用而构建的一种云计算服务形式。私有云可提供对数据、安全性和服务质量的有效控制。该组织拥有基础设施,并可以控制在此基础设施上部署自己的网络和应用服务。私有云环境下缺乏由公有云技术服务提供商提供的实时在线技术支持,需要根据私有云环境下搭配有运维任务流处理工具,传统的运维操作一般是将各种运维操作与场景封装在一个运维操作脚本中,或者提供一个用途单一的运维API(Application Program Interface,应用程序接口)。在业务运维需求重,运维开发人员缺乏的情况下,无法将已沉淀的运维标准操作快速复用,不能对客户业务实现较快的支持,并且运维场景下时常有中断意外发生,每一次操作到一半的时候可能中途有其他工作插入,通过传统脚本以及固定单一运维操作API的方式很难继续上一次的步骤,只能将环境中的变更回撤掉,重新触发一次新的运维操作任务,并且现场运维人员的变化有可能导致各种失误,给客户现场的云平台环境造成无法估量的损失。
[0003]现有的运维模式主要是通过一些具有明显运维特征的环境下编写的适合环境的运维脚本进行操作,或者通过一些对常用基础操作封装形成的API,结合运维人员个人业务素质去判断执行相关的运维操作。但是,现有的运维模式既不能保持当前运维操作环境的一些实时状态,也不能在中断之后由其他业务运维操作人员继续接手工作,并且固化的基础操作API很难在系统层面复用,只能在有丰富经验的运维人员个人层面复用,开发维护成本都很高。
技术实现思路
[0004]本申请的一个目的是提供一种适用于私有云平台的运维任务流引擎的实现方法、设备及计算机可读介质。
[0005]为实现上述目的,本申请提供了一种适用于私有云平台的运维任务流引擎的实现方法,其特征在于,所述方法包括:
[0006]定义运维任务,并定义所述运维任务包含的子任务;
[0007]在对运维任务进行调度控制时,根据传入的运维任务的名称加载运维任务流,所述运维任务流包括了对应的运维任务中所包含的子任务;
[0008]初始化所述运维任务流的上下文信息并根据所述运维任务流解析任务定义;
[0009]基于所述上下文信息和任务定义,调用预设的应用程序接口依次执行所述运维任务流中的子任务。
[0010]进一步地,定义运维任务,包括:
[0011]定义运维任务的名称以及所述运维任务的子任务列表,所述子任务列表中包括多
个按照预设顺序执行的子任务。
[0012]进一步地,定义所述运维任务包含的子任务,包括:
[0013]定义所述运维任务中包含的子任务的相关属性和方法,其中,所述相关属性和方法包括子任务名称、子任务状态、是否自动执行、是否能够跳过、子任务类型、子任务具体任务定义、父任务唯一标识码。
[0014]进一步地,基于所述上下文信息和任务定义,调用预设的应用程序接口依次执行所述运维任务流中的子任务,包括:
[0015]判断是否初始化过下一步的子任务;
[0016]若已初始化,则执行所述子任务,若未初始化,则初始化所述子任务;
[0017]检查执行的所述子任务是否已通过;
[0018]若执行的所述子任务已通过,判断是否还有下一步的子任务;
[0019]若无下一步的子任务,结束所述运维任务流,若还有下一步的子任务,等待预设的应用程序接口切换至下一步的子任务;
[0020]若执行的所述子任务未通过,判断是否有子任务等待执行;
[0021]若无子任务等待执行,修改子任务的任务状态为通过;若有子任务等待执行,则等待预设的应用程序接口触发执行所述子任务。
[0022]进一步地,所述子任务的任务状态包括等待中、执行中、通过和失败;
[0023]当预设的应用程序接口触发执行所述子任务时,所述子任务的任务状态由等待中更改为执行中;当子任务执行成功时,所述子任务的任务状态由执行中更改为通过;等子任务在执行过程中发生错误或者异常时,所述子任务的任务状态会更改为失败。
[0024]进一步地,所述运维任务的任务状态包括执行中、失败、成功和取消;
[0025]当运维任务完成初始化时,所述运维任务的任务状态为执行中;当运维任务包含的所有子任务的任务状态为通过时,所述运维任务的任务状态更改为成功;当运维任务包含的最后一个子任务完成,且有任一子任务的任务状态未失败时,所述运维任务的任务状态更改为失败;当获取到取消运维任务的指令时,所述运维任务的任务状态更改为取消。
[0026]进一步地,所述上下文信息持久化在底层数据库中。
[0027]进一步地,所述上下文信息持久化在底层数据库中,包括:
[0028]当上下文信息发生变化时,先写入缓存层中,由缓存层中的数据变化同步触发底层数据库的数据更新,将当前运维任务的上下文信息保存至底层数据库中。
[0029]基于本申请的另一方面,还提供了一种适用于私有云平台的运维任务流引擎的实现设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行所述适用于私有云平台的运维任务流引擎的实现方法。
[0030]本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现所述适用于私有云平台的运维任务流引擎的实现方法。
[0031]与现有技术相比,本申请提供了一种适用于私有云平台的运维任务流引擎的实现方案,该方案首先需要定义运维任务,并定义所述运维任务包含的子任务,在对运维任务进行调度控制时,根据传入的运维任务的名称加载运维任务流,所述运维任务流包括了对应
的运维任务中所包含的子任务,然后初始化所述运维任务流的上下文信息并根据所述运维任务流解析任务定义,进而基于所述上下文信息和任务定义,调用预设的应用程序接口依次执行所述运维任务流中的子任务。由此,该方案提供了一套完整的对运维操作开发调用执行的框架定义规范以及框架执行调度工具,实现了在私有云平台中的自动化运行框架,以及快速拓展复用的运维开发规范。在框架侧保证了运维操作的步骤强制约束,并且在业务侧也方便了运维人员对于组合复杂运维场景的快速开发封装,提高了运维自动化的水平以及减少运维自动化开发的时间。
附图说明
[0032]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0033]图1为本申请实施例提供的一种适用于私有云平台的运维任务流引擎的实现方法的整体流程示意图;
[0034]图2为本申请实施例中在运维任务流引擎的框架内上下文信息读写过程示意图;
[0035]图3为本申请本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种适用于私有云平台的运维任务流引擎的实现方法,其特征在于,所述方法包括:定义运维任务,并定义所述运维任务包含的子任务;在对运维任务进行调度控制时,根据传入的运维任务的名称加载运维任务流,所述运维任务流包括了对应的运维任务中所包含的子任务;初始化所述运维任务流的上下文信息并根据所述运维任务流解析任务定义;基于所述上下文信息和任务定义,调用预设的应用程序接口依次执行所述运维任务流中的子任务。2.根据权利要求1所述的方法,其特征在于,定义运维任务,包括:定义运维任务的名称以及所述运维任务的子任务列表,所述子任务列表中包括多个按照预设顺序执行的子任务。3.根据权利要求1所述的方法,其特征在于,定义所述运维任务包含的子任务,包括:定义所述运维任务中包含的子任务的相关属性和方法,其中,所述相关属性和方法包括子任务名称、子任务状态、是否自动执行、是否能够跳过、子任务类型、子任务具体任务定义、父任务唯一标识码。4.根据权利要求1所述的方法,其特征在于,基于所述上下文信息和任务定义,调用预设的应用程序接口依次执行所述运维任务流中的子任务,包括:判断是否初始化过下一步的子任务;若已初始化,则执行所述子任务,若未初始化,则初始化所述子任务;检查执行的所述子任务是否已通过;若执行的所述子任务已通过,判断是否还有下一步的子任务;若无下一步的子任务,结束所述运维任务流,若还有下一步的子任务,等待预设的应用程序接口切换至下一步的子任务;若执行的所述子任务未通过,判断是否有子任务等待执行;若无子任务等待执行,修改子任务的任务状态为通过;若有子任务等待执行,则等待预设的应用程序接口触发执行所述...
【专利技术属性】
技术研发人员:白杰文,
申请(专利权)人:上海云轴信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。