基于作业调度的软件应用自动化发布方法与流程

文档序号:27816650发布日期:2021-12-04 12:51阅读:73来源:国知局
基于作业调度的软件应用自动化发布方法与流程

1.本发明涉及一种软件应用发布方法,尤其涉及一种基于作业调度的软件应用自动化发布方法。


背景技术:

2.在软件应用发布过程中通常会涉及到多个服务的发布部署,且服务与服务间存在串行与并行的发布依赖关系,以及在服务发布部署前或发布后,需要进行与服务发布相关的额外操作以保证发布过程中不出现告警、业务不连续等现象。
3.目前对于应用发布,在发布前会先制定发布方案以描述本次发布涉及到的部署服务,以及发布过程中的操作步骤,并在发布时刻一般通过以下两种方式进行:
4.1、手工发布
5.发布过程中即使知道各服务的发布顺序,但不同任务间的串并行执行操作、失败异常的跳过、重新执行,下一步骤的开始执行等所有操作均通过手工人为去控制。
6.2、借助开源工具(如jenkins)
7.一般会在发布前期根据发布方案的操作内容及步骤,把一切考虑到的情况通过编码的方式提前形成可发布执行的任务,在发布阶段则按照任务中的逻辑方法进行发布。但是现有技术依赖于人工控制,效率低下,且准确性不可控。


技术实现要素:

8.本发明所要解决的技术问题是提供一种基于作业调度的软件应用自动化发布方法,无需人工管理,过程高效且能保证准确性,解决大型系统的复杂发布场景。
9.本发明为解决上述技术问题而采用的技术方案是提供一种基于作业调度的软件应用自动化发布方法,包括如下步骤:s1)按软件应用的发布场景编排设置至少一个发布节点;s2)将发布期间的每一个操作步骤设为一个原子化任务,为每个发布节点设置发布任务,所述发布任务包括至少一个原子化任务;s3)按作业调度方式执行所有发布节点中的原子化任务,完成软件应用发布。
10.上述的基于作业调度的软件应用自动化发布方法,其中,每个原子化任务存在以下过程状态:
11.状态0:初始化;
12.状态1:执行中;
13.状态2:成功;
14.状态3:失败;
15.状态4:终止;
16.状态5:人为暂停;
17.状态6:待执行。
18.上述的基于作业调度的软件应用自动化发布方法,其中,所述步骤s3还包括在发
布前,将所有节点中的原子化任务置为“待执行”状态。
19.上述的基于作业调度的软件应用自动化发布方法,其中,所述步骤s3中发布开始,按如下作业调度方式执行所有发布节点中的原子化任务:
20.s31:发布人员点开始执行操作时,将所有节点的原子化任务置为“初始化”状态;
21.s32:将当前节点中的所有任务状态全部设置为“执行中”;
22.s33:并行执行状态为“执行中”的所有任务;
23.s34:循环获取状态为“执行中”的任务执行结果;
24.如果执行结果为成功,将原子化任务的状态置为“成功”并转到s35,否则状态置为“失败”并转到s37;
25.s35:实时检查当前节点中所有任务的状态是否都为“成功”;
26.如果都为成功状态,转到s36,否则转到s34;
27.s36:检查是否还存在下一发布节点;
28.如存在,转到s32,否则转到s38结束发布;
29.s37:对于失败的任务提供三种处理方式:
30.i、进行“重新执行”该原子化任务操作,转到s34;
31.ii、进行“跳过”当前原子化任务操作,并将此原子任务状态置为“成功”,表示对失败的问题已进行线下处理,并转到s35;
32.iii、进行“终止发布”操作,则转到s38;
33.s38:结束发布。
34.上述的基于作业调度的软件应用自动化发布方法,其中,所述软件应用的发布过程中涉及到多个服务的发布部署,且服务与服务间存在串行与并行的发布依赖关系。
35.本发明对比现有技术有如下的有益效果:本发明提供的基于作业调度的软件应用自动化发布方法,原子化任务的状态按作业调度方式进行管控,通过不同状态决定后续操作,无需人工管理;系统只需根据不同的状态做出不同的操作,其过程高效且准确性得到保证。
附图说明
36.图1为本发明的软件应用发布部署示意图;
37.图2为本发明基于作业调度的软件应用自动化发布流程图。
具体实施方式
38.下面结合附图和实施例对本发明作进一步的描述。
39.本发明提供的基于作业调度的软件应用自动化发布方法,包括如下步骤:
40.s1)按软件应用的发布场景编排设置至少一个发布节点;
41.s2)将发布期间的每一个操作步骤设为一个原子化任务,为每个发布节点设置发布任务,所述发布任务包括至少一个原子化任务;
42.s3)按作业调度方式执行所有发布节点中的原子化任务,完成软件应用发布。
43.在发布期间的每一个操作步骤为一个原子化任务,如何控制和保证每个原子化任务间的开始、终止、等待、等待重新执行、异常跳过,失败重新执行等准确性对应用发布过程
及其结果至关重要。本发明在发布前期由相应人员准备好各环节的发布任务并将其按实际情况进行编排如图1所示。
44.应用发布从开始到结束,根据发布执行情况的不同,本发明的原子化任务存在以下过程状态:
45.状态0:初始化;
46.状态1:执行中;
47.状态2:成功;
48.状态3:失败;
49.状态4:终止;
50.状态5:人为暂停;
51.状态6:待执行。
52.请继续参见图2,本发明发布过程中通过以下调度方法实现发布过程的管控:
53.发布前将所有节点中的原子化任务置为6
‑“
待执行”状态。
54.发布开始:
55.【s31】发布人员点开始执行操作时,将所有节点的原子任务置为0
‑“
初始化”状态;
56.【s32】将当前节点中的所有任务状态全部设置为1
‑“
执行中”;
57.【s33】并行执行状态为1
‑“
执行中”的所有任务;
58.【s34】循环获取状态为1
‑“
执行中”的任务执行结果;
59.如执行结果为成功,将原子任务的状态置为2
‑“
成功”并转到【s35】,否则状态置为3
‑“
失败”并转到【s37】
60.【s35】实时检查当前节点中所有任务的状态是否都为2
‑“
成功”;
61.如都为成功状态,转到【s36】,否则转到【s34】
62.【s36】检查是否还存在下一发布节点;
63.如存在,转到【s32】,否则转到【s38】结束发布。
64.【s37】对于失败的任务提供三种处理方式
65.如,进行“重新执行”该原子化任务操作,则转到【s34】;
66.如,进行“跳过”当前原子化任务操作,并将此原子化任务状态置为2
‑“
成功”,表示对失败的问题已进行线下处理,并转到【s35】;
67.如,进行“终止发布”操作,则转到【s38】;
68.【s38】结束发布。
69.本发明通过作业调度的思想或方法解决现有在自动化发布过程中高度依赖于人工控制每个发布原子化任务的串并行执行、何时执行下一阶段的原子任务、原子任务失败的异常操作处理的问题;无需人工管理,过程高效且能保证准确性,解决大型系统的复杂发布场景。
70.虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1