本发明实施例涉及软件开发,尤其涉及一种流水线式功能服务的发布方法、装置、设备及介质。
背景技术:
1、服务发布是企业的重要流程之一。服务发布表示企业的系统进行新功能的上线以及旧功能的迭代优化。服务发布的质量直接影响用户的使用体验,因此服务在正式发布前,需要进行测试、校验等一系列环节,确保无问题后才能进行最终的发布。但随着信息化的不断发展,b(企业)端和c(消费者)端系统都呈爆发式的增加。用户个性化需求日益增多,带来系统功能优化、改进的服务上线也越来越多。单个系统的单个功能模块的上线,都需要进行复杂的上线流程,多个系统多个功能的集中上线给开发、测试人员带来了极大的工作量和发布压力。尤其是结算服务领域、基础服务领域的功能迭代次数更多、迭代难度更大。其中,结算服务领域由于涉及到政策变更需要及时调整开票模式、税率,系统需要及时上线优化计算模式。
2、当前市面的服务发布系统大多是进行代码库中拉取代码、进行代码编辑、发布的流程,无法整体对发布质量进行系统性全局把关,缺少服务发布的审核校验兜底;容易出现服务发布异常的场景,缺少发布依赖关系的校验;发布监控依赖于开发人员、测试人员的专家经验进行识别和研判,导致整个服务发布的效率较低;整个发布流程依赖各个流水线的开发人员进行把控、单线操作的流程以及最终多线发布的聚合,给发布系统带来极大的压力。
3、因此,如何保障服务发布的稳定性、减少发布事故问题、提升整个服务发布流水线的发布效率,成为了目前亟待解决的技术问题。
技术实现思路
1、本发明实施例提供一种流水线式功能服务的发布方法、装置、设备及介质,以解决相关技术中服务发布系统的流程操作繁琐、效率较低,且发布质量无法保障的技术问题。
2、第一方面,本发明实施例提供一种流水线式功能服务的发布方法,所述方法应用于软件开发的过程中,所述方法包括:
3、在软件开发的发布候选阶段,接收测试人员的工单新建指令,其中,所述工单新建指令携带有与目标工单所对应的功能服务相关的配置信息;
4、根据所述工单新建指令新建所述目标工单;其中,所述目标工单用于指示所述功能服务的配置;
5、接收所述测试人员针对于所述目标工单的审批指令;
6、若所述审批指令为审批通过,则进入软件开发的生产模拟阶段;
7、在所述生产模拟阶段,根据所述测试人员的打标记tag指令,为所述目标工单所对应的功能服务的当前版本打tag,并发布所述功能服务被打tag后的目标工单;
8、接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令;
9、若所述第一测试指令为测试通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布成功,并进入软件开发的生产阶段;
10、若所述第一测试指令为测试未通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布失败,根据所述测试人员的修改操作,对所述功能服务的相关代码进行修改,并根据所述测试人员的打tag指令,为所述目标工单所对应的功能服务的当前版本重新打tag后,重新发布所述功能服务被打tag后的目标工单,并进入所述接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令的步骤,直至确定所述功能服务在所述生产模拟阶段的发布结果为发布成功;
11、在所述生产阶段,发布所述功能服务被打tag后的目标工单;
12、接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令;
13、若所述第二测试指令为测试未通过,则确定所述功能服务在所述生产阶段的发布结果为发布失败,将所述功能服务的当前版本回滚至初始版本;
14、若所述第二测试指令为测试通过,则确定所述功能服务在所述生产阶段的发布结果为发布成功。
15、可选的,在所述生产阶段,发布所述功能服务被打tag后的目标工单包括:
16、以第一预设发布比例,发布所述功能服务被打tag后的目标工单,并基于所述功能服务的使用情况,判断所述功能服务是否正常发布;
17、如果是,则以第二预设发布比例,发布所述功能服务被打tag后的目标工单。
18、可选的,在以第二预设发布比例,发布所述功能服务被打tag后的目标工单之后,所述方法还包括:
19、基于所述功能服务的使用情况,判断所述功能服务是否正常发布;
20、在所述功能服务正常发布的情况下,所述接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令包括:
21、接收所述测试人员针对于以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的第二测试指令;
22、确定所述功能服务在所述生产阶段的发布结果为发布成功包括:
23、确定以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的发布结果为发布成功;
24、其中,所述第二预设发布比例大于所述第一预设发布比例;所述第一预设发布比例和所述第二预设发布比例均表示在所述生产阶段,所述功能服务所面向的目标客户群体占总目标客户群体的百分比。
25、可选的,确定以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的发布结果为发布成功之后,所述方法还包括:
26、将所述第二预设发布比例更改为全流量发布方式;
27、以所述全流量发布方式发布所述功能服务被打tag后的目标工单;其中,所述全流量发布方式为在所述生产阶段,所述功能服务面向所述总目标客户群体进行全体发布的发布方式。
28、可选的,在所述生产模拟阶段,所述方法还包括:
29、校验不同的目标工单所对应的功能服务之间是否存在先后依赖关系;
30、如果是,则根据所述先后依赖关系,确定不同的目标工单的先后发布顺序。
31、可选的,在所述生产模拟阶段,发布所述功能服务被打tag后的目标工单包括:
32、在所述生产模拟阶段,根据所述先后发布顺序,发布所述功能服务被打tag后的目标工单。
33、可选的,所述第一测试指令和/或所述第二测试指令用于指示对所述功能服务被打tag后的目标工单进行以下测试中的至少一项:
34、基于预先配置的测试用例,对所述功能服务被打tag后的目标工单进行测试;
35、基于所述测试人员的手动测试操作,对所述功能服务被打tag后的目标工单进行测试。
36、第二方面,本发明实施例提供一种流水线式功能服务的发布装置,所述装置应用于软件开发的过程中,所述装置包括:
37、接收模块,用于在软件开发的发布候选阶段,接收测试人员的工单新建指令,其中,所述工单新建指令携带有与目标工单所对应的功能服务相关的配置信息;
38、执行模块,用于根据所述工单新建指令新建所述目标工单;其中,所述目标工单用于指示所述功能服务的配置;
39、接收所述测试人员针对于所述目标工单的审批指令;
40、若所述审批指令为审批通过,则进入软件开发的生产模拟阶段;
41、在所述生产模拟阶段,根据所述测试人员的打标记tag指令,为所述目标工单所对应的功能服务的当前版本打tag,并发布所述功能服务被打tag后的目标工单;
42、接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令;
43、若所述第一测试指令为测试通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布成功,并进入软件开发的生产阶段;
44、若所述第一测试指令为测试未通过,则确定所述功能服务在所述生产模拟阶段的发布结果为发布失败,根据所述测试人员的修改操作,对所述功能服务的相关代码进行修改,并根据所述测试人员的打tag指令,为所述目标工单所对应的功能服务的当前版本重新打tag后,重新发布所述功能服务被打tag后的目标工单,并进入所述接收所述测试人员针对于所述功能服务被打tag后的目标工单的第一测试指令的步骤,直至确定所述功能服务在所述生产模拟阶段的发布结果为发布成功;
45、在所述生产阶段,发布所述功能服务被打tag后的目标工单;
46、接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令;
47、若所述第二测试指令为测试未通过,则确定所述功能服务在所述生产阶段的发布结果为发布失败,将所述功能服务的当前版本回滚至初始版本;
48、若所述第二测试指令为测试通过,则确定所述功能服务在所述生产阶段的发布结果为发布成功。
49、可选的,所述执行模块,还用于以第一预设发布比例,发布所述功能服务被打tag后的目标工单,并基于所述功能服务的使用情况,判断所述功能服务是否正常发布;
50、如果是,则以第二预设发布比例,发布所述功能服务被打tag后的目标工单。
51、可选的,所述执行模块,还用于在以第二预设发布比例,发布所述功能服务被打tag后的目标工单之后,基于所述功能服务的使用情况,判断所述功能服务是否正常发布;
52、在所述功能服务正常发布的情况下,所述接收所述测试人员针对于所述功能服务被打tag后的目标工单的第二测试指令包括:
53、接收所述测试人员针对于以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的第二测试指令;
54、确定所述功能服务在所述生产阶段的发布结果为发布成功包括:
55、确定以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的发布结果为发布成功;
56、其中,所述第二预设发布比例大于所述第一预设发布比例;所述第一预设发布比例和所述第二预设发布比例均表示在所述生产阶段,所述功能服务所面向的目标客户群体占总目标客户群体的百分比。
57、可选的,所述执行模块,还用于在确定以所述第二预设发布比例发布的所述功能服务被打tag后的目标工单的发布结果为发布成功之后,将所述第二预设发布比例更改为全流量发布方式;
58、以所述全流量发布方式发布所述功能服务被打tag后的目标工单;其中,所述全流量发布方式为在所述生产阶段,所述功能服务面向所述总目标客户群体进行全体发布的发布方式。
59、可选的,所述执行模块,还用于在所述生产模拟阶段,校验不同的目标工单所对应的功能服务之间是否存在先后依赖关系;
60、如果是,则根据所述先后依赖关系,确定不同的目标工单的先后发布顺序。
61、可选的,所述执行模块,还用于在所述生产模拟阶段,根据所述先后发布顺序,发布所述功能服务被打tag后的目标工单。
62、可选的,所述第一测试指令和/或所述第二测试指令用于指示对所述功能服务被打tag后的目标工单进行以下测试中的至少一项:基于预先配置的测试用例,对所述功能服务被打tag后的目标工单进行测试;基于所述测试人员的手动测试操作,对所述功能服务被打tag后的目标工单进行测试。
63、第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的流水线式功能服务的发布方法的步骤。
64、第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的流水线式功能服务的发布方法的步骤。
65、由此,本发明实施例通过建立流水线式发布方法及装置,实现了将各个系统各个人员的发布任务集成至同一平台进行处理;通过对服务发布的发布候选阶段、生产模拟阶段、生产阶段的流程卡点的发布校验,实现了提单、发布、测试的滚动式发布流程;通过对功能服务进行测试,保障了服务发布的质量,减少了服务发布的异常问题;在生产阶段,若第二测试指令为测试未通过,则将功能服务的当前版本回滚至初始版本,以避免影响客户的使用体验;解决了单线程发布风险、多线程并行发布压力的问题,提升了服务发布的效率,提高了项目发布的稳定性。